1 00:00:00,230 --> 00:00:05,810 Hello, my name is Stephen and moving forward with our exploration, let's delve into the subsequent 2 00:00:05,810 --> 00:00:07,790 stages of our program development. 3 00:00:07,790 --> 00:00:14,180 So we will be deciphering each steps involved in detail, enabling you to gain an in-depth understanding 4 00:00:14,180 --> 00:00:16,040 of the underlying mechanisms. 5 00:00:16,040 --> 00:00:21,590 So without further ado, let's break down the our code here, which is going to be. 6 00:00:22,610 --> 00:00:25,730 We will need this port to convert it into bytes. 7 00:00:26,090 --> 00:00:29,750 Uh, so in order to do that, we will again use the Python tool. 8 00:00:29,900 --> 00:00:33,590 And what we're going to do is we will import sockets. 9 00:00:33,620 --> 00:00:37,340 Import socket and hex here. 10 00:00:37,340 --> 00:00:40,820 Socket socket dot h. 11 00:00:40,940 --> 00:00:43,790 So I will explain why what we why we did that. 12 00:00:43,790 --> 00:00:47,060 So 7331. 13 00:00:47,210 --> 00:00:50,060 This is this was our port number and that's it. 14 00:00:50,060 --> 00:00:51,680 So this is our output here. 15 00:00:51,680 --> 00:00:53,630 Let's take this and write it. 16 00:00:53,630 --> 00:00:57,020 Note it down somewhere like here. 17 00:00:57,020 --> 00:00:57,950 So. 18 00:01:00,050 --> 00:01:00,830 And. 19 00:01:01,550 --> 00:01:04,340 In this, um, phase. 20 00:01:04,340 --> 00:01:11,390 Here we are translating the port number to a format that suits networking requirements. 21 00:01:11,390 --> 00:01:15,980 So this is a crucial for ensuring the consistent communication across different systems. 22 00:01:15,980 --> 00:01:31,370 So the port number uh uh 7331 uh when converted to it it's H turns which is uh host to network short 23 00:01:31,370 --> 00:01:35,570 form becomes 0XA uh 31 C. 24 00:01:35,570 --> 00:01:37,670 So basically E 31 z. 25 00:01:37,670 --> 00:01:42,770 And this zero x uh tells us that this is a hexadecimal character. 26 00:01:42,770 --> 00:01:49,280 So this transformation serves as important step in preparing our program for efficient networking operations. 27 00:01:49,910 --> 00:01:53,210 And now we will create our, um, here. 28 00:01:53,210 --> 00:01:56,090 Yeah, we will create our assembly code. 29 00:01:56,090 --> 00:01:59,690 So this code is going to be long and interesting way to do so. 30 00:01:59,690 --> 00:02:02,300 We will write it down phase by phase. 31 00:02:02,300 --> 00:02:10,640 So now what we're going to do is we will let's actually name this the TCP bind dot asm here. 32 00:02:10,640 --> 00:02:17,450 And uh without anything we will just xor uh XOR. 33 00:02:18,690 --> 00:02:19,680 Racks. 34 00:02:19,710 --> 00:02:20,550 Racks. 35 00:02:20,550 --> 00:02:24,120 So we will push the racks here again. 36 00:02:25,170 --> 00:02:28,980 And after that we will push the world here. 37 00:02:28,980 --> 00:02:31,200 So we will push this as world here. 38 00:02:31,200 --> 00:02:34,440 And a 30 1CI guess. 39 00:02:34,440 --> 00:02:36,450 Yeah a 31 C. 40 00:02:37,510 --> 00:02:39,580 And after that we will pass the word. 41 00:02:41,080 --> 00:02:42,190 0X02. 42 00:02:42,430 --> 00:02:49,540 So here we are preparing the groundwork for setting up our circuit structure by encoding the necessary 43 00:02:49,540 --> 00:02:50,230 values. 44 00:02:50,230 --> 00:02:57,880 So but before that let's actually write it down that uh passing port here port number. 45 00:02:58,360 --> 00:03:04,960 Now here we start by setting Rax register to zero using x or x rax. 46 00:03:04,960 --> 00:03:10,480 And this initializes rax to serve as a holder for upcoming values. 47 00:03:10,480 --> 00:03:14,740 And we then push the value of rax onto the stack. 48 00:03:14,830 --> 00:03:20,770 This action ensures that the stack remains aligned as we perform further operations, and following 49 00:03:20,770 --> 00:03:29,410 this, we push the uh, a 31 C value onto the stack using the push word uh 0X8 31 C. 50 00:03:29,410 --> 00:03:35,380 So this value represents our previously converted port number in H two format. 51 00:03:35,380 --> 00:03:41,950 And uh, after that, finally we push the value 0X0 stack onto the stack. 52 00:03:42,100 --> 00:03:47,320 So this value corresponds to the protocol identifier for AF init. 53 00:03:47,320 --> 00:03:51,520 So indicating that we are working with the IP version uh for here. 54 00:03:51,520 --> 00:03:56,020 So actually I want to note this down here and this two here. 55 00:03:56,020 --> 00:04:00,100 So port h I think. 56 00:04:00,310 --> 00:04:05,620 Yeah h h turns h turn format to three. 57 00:04:05,620 --> 00:04:08,140 No 77331. 58 00:04:09,030 --> 00:04:12,600 And after that we have this, which is. 59 00:04:14,010 --> 00:04:14,880 We are. 60 00:04:17,450 --> 00:04:22,460 Indicating that we are working with IP version four and that's why. 61 00:04:25,150 --> 00:04:30,400 Indicator for IP version. 62 00:04:30,910 --> 00:04:32,860 IP version four. 63 00:04:34,350 --> 00:04:37,110 Which is also called af init. 64 00:04:38,150 --> 00:04:41,390 And after that, having our structure set. 65 00:04:41,390 --> 00:04:43,970 Let's prepare the bind function here. 66 00:04:44,180 --> 00:04:48,260 So with this bind function we will go to. 67 00:04:49,920 --> 00:04:53,760 Now, um, this see here again. 68 00:04:53,760 --> 00:04:57,540 And now what we're going to do is we will. 69 00:04:59,880 --> 00:05:00,300 Here. 70 00:05:00,300 --> 00:05:01,560 We have already, actually. 71 00:05:02,700 --> 00:05:07,500 And mice and mice the size of my socket address. 72 00:05:09,840 --> 00:05:10,530 Yes. 73 00:05:10,530 --> 00:05:13,950 So we actually already developed this band mind function here. 74 00:05:13,950 --> 00:05:16,410 This function takes three arguments. 75 00:05:16,410 --> 00:05:25,020 The first one is my sock, my socket feed here, which is already stored in the RDA register. 76 00:05:25,020 --> 00:05:30,030 The second is our structure in the form of a reference here. 77 00:05:31,150 --> 00:05:41,770 And the third is length of the length of the length of our structure, which is somewhere like 816. 78 00:05:41,770 --> 00:05:47,650 So now what's left is um, to do get the bind fiscal number. 79 00:05:47,650 --> 00:05:51,730 So you learned how we need to get this bind fiscal number. 80 00:05:52,300 --> 00:05:59,350 And uh here we will use cat again create here clear cat. 81 00:06:00,620 --> 00:06:06,290 USR include x86 64 Linux GNU here. 82 00:06:06,320 --> 00:06:08,120 ASM here. 83 00:06:08,510 --> 00:06:11,660 Uh en este en este de. 84 00:06:11,780 --> 00:06:12,440 Yeah. 85 00:06:12,440 --> 00:06:15,110 Uh NIST 64 dot h. 86 00:06:15,410 --> 00:06:17,690 Uh pip here grep bind. 87 00:06:17,840 --> 00:06:19,760 Now this is our bind here. 88 00:06:19,760 --> 00:06:26,120 So this command is instrumental in pinpointing the precise numeric code assigned to the bind system 89 00:06:26,120 --> 00:06:26,510 call. 90 00:06:26,510 --> 00:06:31,370 So this numeric code serves as the key to unlocking the functionality of the operating system. 91 00:06:31,370 --> 00:06:39,380 So throughout the explanation of the output we can extract the essential information we require here. 92 00:06:39,380 --> 00:06:43,130 And let's uh continue noting down here. 93 00:06:43,130 --> 00:06:47,600 So syscall for um. 94 00:06:49,200 --> 00:06:50,130 Bind. 95 00:06:50,160 --> 00:06:53,460 Bind is 49. 96 00:06:55,520 --> 00:06:57,350 And after that. 97 00:06:58,630 --> 00:07:05,920 Uh, as we advance, uh, let's let's transition our focus to the creation of bind system call. 98 00:07:05,920 --> 00:07:10,900 It is a pivotal step in orchestrating our communication infrastructure. 99 00:07:10,900 --> 00:07:13,810 So the bind system call acts as linchpin. 100 00:07:13,810 --> 00:07:18,790 So bridging the gap between our programming realm and the underlying operating system. 101 00:07:18,790 --> 00:07:21,790 So let's go through the code step by step here. 102 00:07:21,790 --> 00:07:25,240 So now we will also um sorry here. 103 00:07:25,270 --> 00:07:30,610 Now we will also here bind here which is 49. 104 00:07:31,030 --> 00:07:48,580 Now we will move the we will move the RSI, RSP, the XOR, RDX, RDX and add RDX 16 now 16 and XOR 105 00:07:48,580 --> 00:07:55,420 racks racks again and add racks 49. 106 00:07:56,290 --> 00:07:57,280 And Cisco. 107 00:07:57,640 --> 00:08:04,030 And here we are assembling the ingredients over for the bind system call. 108 00:08:04,030 --> 00:08:12,070 So we are preparing the RSI Register here to hold the address of our socket socket infrastructure. 109 00:08:12,580 --> 00:08:13,600 Socket structure. 110 00:08:13,600 --> 00:08:18,220 So this structure houses information important to our networking operation. 111 00:08:18,580 --> 00:08:25,930 And by executing uh ECS or RDX, RDX, we are efficiently and effectively clearing the RDX register, 112 00:08:25,930 --> 00:08:29,530 ensuring that it's ready to serve its purpose. 113 00:08:29,530 --> 00:08:33,250 And subsequently we are adding 16 to the RDX register. 114 00:08:33,250 --> 00:08:40,180 So this value corresponds to the size of our socket structure, aligning it appropriately for the subsequent 115 00:08:40,180 --> 00:08:47,350 system call and to initiate bind system call, we are setting the Rax register to zero using Xrx rax. 116 00:08:47,350 --> 00:08:55,420 So we are then adding the uh bind syscall number, which is 49 as we've seen, and to the Rax register. 117 00:08:55,420 --> 00:09:02,590 So with all the components aligned, we finalized, uh, we finalize this phase by executing this syscall 118 00:09:02,590 --> 00:09:08,020 instruction, triggering the operation operating system to carry out the bind operation. 119 00:09:08,020 --> 00:09:14,290 Now, uh, let's set the listen function, which takes the two arguments here. 120 00:09:14,410 --> 00:09:16,090 Um, it should be. 121 00:09:16,090 --> 00:09:16,390 Yeah. 122 00:09:16,390 --> 00:09:16,720 We are. 123 00:09:16,720 --> 00:09:16,990 Yeah. 124 00:09:16,990 --> 00:09:19,570 And here this is our listen here. 125 00:09:19,570 --> 00:09:21,910 That's actually why we do that. 126 00:09:23,740 --> 00:09:25,450 Completed in assembly. 127 00:09:25,450 --> 00:09:29,200 So completed in assembly here. 128 00:09:29,200 --> 00:09:31,000 We also do that. 129 00:09:31,000 --> 00:09:34,900 So why we are writing converting this code into the assembly code. 130 00:09:34,900 --> 00:09:37,870 So let's actually add comments that we have completed it. 131 00:09:37,870 --> 00:09:40,780 So no this hasn't completed yet. 132 00:09:42,150 --> 00:09:42,780 Here. 133 00:09:45,450 --> 00:09:45,720 Yeah. 134 00:09:45,720 --> 00:09:48,810 Also, this line of code also completed here. 135 00:09:49,170 --> 00:09:49,680 Perfect. 136 00:09:53,000 --> 00:09:55,880 And here we need to. 137 00:09:56,890 --> 00:10:00,490 And this step on our journey is to configure the listen function. 138 00:10:00,490 --> 00:10:08,260 This is a key element in refining um to access like for listening here. 139 00:10:08,260 --> 00:10:12,670 And this is actually very important for service behavior. 140 00:10:12,670 --> 00:10:15,520 And now let's uh breaking down break. 141 00:10:16,630 --> 00:10:16,750 Okay. 142 00:10:16,750 --> 00:10:19,420 Let's break down the arguments of the lesson function. 143 00:10:19,420 --> 00:10:28,600 So the first argument my feet my feet here refers to the socket file descriptor descriptor, our gateway 144 00:10:28,600 --> 00:10:30,730 to networking interactions here. 145 00:10:30,730 --> 00:10:34,510 And we already stored this in this RDA register. 146 00:10:34,690 --> 00:10:40,000 Remember somewhere this here right. 147 00:10:41,410 --> 00:10:43,570 And also we have won. 148 00:10:43,570 --> 00:10:50,050 The second argument one signifies the maximum number of connections the server is ready to accept, 149 00:10:50,050 --> 00:10:57,550 and in this concept, we are allowing only one incoming connections because we don't want to be two 150 00:10:57,580 --> 00:10:59,230 hackers in one target here. 151 00:10:59,230 --> 00:10:59,800 Right. 152 00:10:59,800 --> 00:11:06,040 So, uh, and what we're going to do here, uh, we will need to call the. 153 00:11:07,000 --> 00:11:08,080 Listen here. 154 00:11:08,080 --> 00:11:12,040 So we will need to get listen Siskel number here. 155 00:11:12,040 --> 00:11:14,260 So we will do the same procedure here. 156 00:11:14,260 --> 00:11:20,800 This we will need to change bind to listen here list not list. 157 00:11:20,800 --> 00:11:21,220 Listen. 158 00:11:21,760 --> 00:11:23,920 And this is 50. 159 00:11:24,040 --> 00:11:24,640 That's it. 160 00:11:24,640 --> 00:11:24,940 Right. 161 00:11:24,940 --> 00:11:28,360 So the bind was 49 and listen was 50. 162 00:11:28,360 --> 00:11:29,140 Yeah that's okay. 163 00:11:29,140 --> 00:11:34,630 So by executing this command we pinpoint the number code associated with the listen system call. 164 00:11:34,630 --> 00:11:40,960 So this code acts as a trigger for operating system to facilitate the listen action, setting the stage 165 00:11:40,960 --> 00:11:44,740 for the server to anticipate and manage incoming connections. 166 00:11:44,740 --> 00:11:54,730 And uh, now let's actually write that, uh, keep this knot somewhere here. 167 00:11:54,730 --> 00:12:03,250 So remember listen for listen or Cisco Cisco or listen. 168 00:12:07,180 --> 00:12:08,770 And that's it. 169 00:12:08,770 --> 00:12:16,480 So we can go to back, go back to our assembly and we will use the listen, listen. 170 00:12:17,450 --> 00:12:18,260 15. 171 00:12:19,670 --> 00:12:23,720 And here we will build our assembly code here. 172 00:12:23,780 --> 00:12:29,720 Now yeah, we did bind and we just need to write our, um. 173 00:12:29,720 --> 00:12:33,710 Listen, uh, before except of course. 174 00:12:39,630 --> 00:12:43,920 And yeah, we will do the same with the bind. 175 00:12:43,920 --> 00:12:47,550 And yes, yeah, we will do the same with the bind. 176 00:12:47,550 --> 00:12:52,260 But we will use to resize so we will. 177 00:12:56,730 --> 00:13:00,780 We will like define our size as zero before. 178 00:13:00,780 --> 00:13:01,260 Yeah. 179 00:13:01,590 --> 00:13:08,550 So xor xor are racks racks here again. 180 00:13:08,610 --> 00:13:09,270 Mhm. 181 00:13:11,880 --> 00:13:12,720 Mm mm mm mm. 182 00:13:13,530 --> 00:13:14,370 And that's it. 183 00:13:14,550 --> 00:13:19,170 So we will add uh we will make racks. 184 00:13:20,980 --> 00:13:21,640 Where is it? 185 00:13:21,640 --> 00:13:23,440 Should be Rax or RDX? 186 00:13:23,440 --> 00:13:24,070 No. 187 00:13:24,070 --> 00:13:25,180 It's 50. 188 00:13:26,240 --> 00:13:27,470 Because of the lesson. 189 00:13:28,510 --> 00:13:30,670 Yeah, we did the same here, remember? 190 00:13:30,730 --> 00:13:34,090 Now we will use XOR. 191 00:13:34,390 --> 00:13:36,370 I will explain all of this here right now. 192 00:13:36,400 --> 00:13:39,730 RSI, RSI and inverse. 193 00:13:39,730 --> 00:13:42,340 Here we will know I and C. 194 00:13:47,040 --> 00:13:50,400 Just yeah Inc RSI. 195 00:13:53,030 --> 00:13:55,100 And after that, uh, Cisco. 196 00:13:58,430 --> 00:13:59,240 That's it. 197 00:13:59,630 --> 00:14:07,100 And now in this, uh, example, let's, uh, actually explain this. 198 00:14:07,100 --> 00:14:15,920 So here we are constructing the here, here we are constructing the ingredients for invoking the bind 199 00:14:15,950 --> 00:14:16,730 system call. 200 00:14:16,730 --> 00:14:22,580 So by executing XOR rax rax we are ensuring that Rax register is set to zero. 201 00:14:22,580 --> 00:14:27,470 This is a foundational step in the Cisco system call processes. 202 00:14:28,430 --> 00:14:39,950 And we have the incrementing a value in racks by 50, effectively assigning it the listen syscall number 203 00:14:40,250 --> 00:14:43,130 and to prepare the RSA register. 204 00:14:43,880 --> 00:14:52,040 Um, to prepare the RSA register for usage, we execute XOR, rsa, rc, ensuring it's initialized for 205 00:14:52,040 --> 00:14:53,480 forthcoming actions. 206 00:14:53,480 --> 00:14:55,280 Furthermore, RSA was. 207 00:14:55,990 --> 00:15:00,370 Incremented its value by one using ink. 208 00:15:01,990 --> 00:15:06,520 RSI, so this action aligns RSI to serve as a placeholder for arguments. 209 00:15:06,520 --> 00:15:13,120 And finally, syscall instruction is executed, serving as the conduit through which the operating system 210 00:15:13,120 --> 00:15:15,670 enacts the bind. 211 00:15:16,870 --> 00:15:17,080 Uh. 212 00:15:17,080 --> 00:15:17,830 Listen. 213 00:15:17,950 --> 00:15:18,640 Action! 214 00:15:19,680 --> 00:15:24,390 Aligning our, uh, server for interaction. 215 00:15:25,660 --> 00:15:29,350 And here, uh, now we will need to write the. 216 00:15:29,350 --> 00:15:30,430 Except here. 217 00:15:30,430 --> 00:15:35,740 So except let's see what is except here. 218 00:15:35,740 --> 00:15:37,390 So also let's. 219 00:15:38,950 --> 00:15:39,610 Listen. 220 00:15:39,610 --> 00:15:40,930 We have and accept. 221 00:15:40,930 --> 00:15:42,670 So complete an assembly. 222 00:15:42,670 --> 00:15:43,720 Not yet. 223 00:15:44,170 --> 00:15:45,610 But actually we will do that. 224 00:15:45,880 --> 00:15:53,740 Now, what we're going to do is, um, as a progress, the accept function takes the center stage. 225 00:15:53,740 --> 00:15:56,380 So driving the evolution of our program. 226 00:15:56,380 --> 00:16:02,860 So let's delve into the intricacies of the arguments and implications of implications of this function. 227 00:16:02,860 --> 00:16:07,660 So the first argument here, uh, my client Ph.D.. 228 00:16:09,130 --> 00:16:10,690 Signifies that. 229 00:16:10,690 --> 00:16:11,170 No. 230 00:16:11,170 --> 00:16:17,290 Actually, um, do we need to use this for the clients or. 231 00:16:17,290 --> 00:16:19,120 I think we previously we. 232 00:16:20,320 --> 00:16:21,850 Client if the except. 233 00:16:23,990 --> 00:16:25,220 My secret. 234 00:16:25,250 --> 00:16:26,840 Yeah, this is correct code here. 235 00:16:26,960 --> 00:16:31,880 So here, uh, my client. 236 00:16:33,020 --> 00:16:35,570 If we are creating this new variable. 237 00:16:35,570 --> 00:16:36,590 This is not new. 238 00:16:36,620 --> 00:16:40,880 We actually created this somewhere here. 239 00:16:41,570 --> 00:16:43,070 We defined this here. 240 00:16:43,070 --> 00:16:43,670 Yeah. 241 00:16:44,030 --> 00:16:44,930 My circle. 242 00:16:44,930 --> 00:16:46,010 My client. 243 00:16:46,010 --> 00:16:46,700 My. 244 00:16:46,700 --> 00:16:46,970 Yeah. 245 00:16:46,970 --> 00:16:47,660 My client. 246 00:16:47,960 --> 00:16:48,770 Where are you? 247 00:16:48,770 --> 00:16:49,580 Yeah. 248 00:16:49,580 --> 00:16:51,080 My client display here. 249 00:16:51,080 --> 00:16:52,700 So this is integer. 250 00:16:53,610 --> 00:16:55,950 But here we are accepting. 251 00:16:57,150 --> 00:16:58,080 Hear this? 252 00:16:58,080 --> 00:17:03,750 My socket, my sock feet signifies the file descriptor. 253 00:17:03,750 --> 00:17:06,780 This is a gateway to our networking endeavors. 254 00:17:06,780 --> 00:17:14,730 So this parameter has been that will be stored in the RDA register positioning us for seamless interaction. 255 00:17:14,730 --> 00:17:18,660 And the second and third argument are deliberately set to null. 256 00:17:18,660 --> 00:17:24,300 By doing so, we are essentially indicating that we are not providing specific client information or 257 00:17:24,300 --> 00:17:26,700 additional context at this stage. 258 00:17:26,880 --> 00:17:32,850 So now we will do the same to get the accept syscall number. 259 00:17:32,850 --> 00:17:33,300 We will. 260 00:17:33,300 --> 00:17:36,150 Let's actually accept I think it will. 261 00:17:36,150 --> 00:17:38,640 It should be like 51 I think. 262 00:17:38,640 --> 00:17:39,480 Let's try this. 263 00:17:40,170 --> 00:17:41,100 Accept. 264 00:17:41,580 --> 00:17:44,100 Oh no 43. 265 00:17:46,490 --> 00:17:47,720 So, Siskel. 266 00:17:49,150 --> 00:17:50,350 Or accept. 267 00:17:51,450 --> 00:17:53,790 And 43. 268 00:17:53,790 --> 00:18:00,780 So executing this command here in the terminal and label is enables us to identify the numeric code 269 00:18:00,780 --> 00:18:02,760 assigned to the accept system call. 270 00:18:02,760 --> 00:18:10,320 So this numeric representation plays a pivotal role in conveying our intentions to the programming and 271 00:18:10,500 --> 00:18:12,420 know the intentions the operating system. 272 00:18:12,420 --> 00:18:17,220 So facilitating the accept operation with precision. 273 00:18:17,220 --> 00:18:23,340 So with each step we are delving deeper into the intricacies of networking programming and system system 274 00:18:23,340 --> 00:18:23,670 calls. 275 00:18:23,670 --> 00:18:28,980 Now let's proceed to analyze the subsequent uh, sections of code here. 276 00:18:28,980 --> 00:18:36,090 So now what we're going to do is we will also create our accepts here. 277 00:18:36,090 --> 00:18:38,970 Um, let's bind accept. 278 00:18:38,970 --> 00:18:40,740 It was 43 I think. 279 00:18:40,740 --> 00:18:41,640 Yeah 43. 280 00:18:44,690 --> 00:18:47,870 Now we will do X or. 281 00:18:48,690 --> 00:18:49,710 Rags. 282 00:18:50,690 --> 00:18:51,860 Racks again. 283 00:18:52,460 --> 00:18:52,970 Here. 284 00:18:53,000 --> 00:18:54,380 No, no. 285 00:18:54,380 --> 00:18:54,680 Here. 286 00:18:54,680 --> 00:18:55,190 Yeah. 287 00:18:55,850 --> 00:18:56,540 Exo racks. 288 00:18:56,540 --> 00:19:03,230 Racks and racks 43 and exo RSI. 289 00:19:03,260 --> 00:19:05,510 RSI X or. 290 00:19:06,900 --> 00:19:08,040 RDX. 291 00:19:09,990 --> 00:19:10,770 RDX. 292 00:19:10,770 --> 00:19:11,310 That's it. 293 00:19:12,420 --> 00:19:13,320 And that's that. 294 00:19:13,320 --> 00:19:16,710 Of course, we need to call this fiscal as we always do. 295 00:19:16,740 --> 00:19:25,080 Now here in this code, we are moving the output of the accept function, which is stored in the Rax 296 00:19:25,080 --> 00:19:34,320 register and represents the client, my client feet to more secure location, the RDX register. 297 00:19:34,320 --> 00:19:42,000 So, um, this maneuver ensures that the data is safeguarded, allowing us to work with it more efficiently. 298 00:19:42,210 --> 00:19:44,280 And after that. 299 00:19:45,970 --> 00:19:49,270 What are we going to do here is let's actually. 300 00:19:49,270 --> 00:19:51,640 Yeah, we're done with this here. 301 00:19:52,760 --> 00:19:53,630 And. 302 00:19:56,860 --> 00:20:00,670 Remember we had this course here in TCP bind. 303 00:20:00,700 --> 00:20:01,120 See? 304 00:20:03,120 --> 00:20:03,990 Here. 305 00:20:07,360 --> 00:20:09,850 Uh, the DUP two, DUP two here. 306 00:20:09,850 --> 00:20:11,590 So we set set this. 307 00:20:11,590 --> 00:20:14,680 My client left my client left my client F10 012. 308 00:20:14,890 --> 00:20:20,860 And each of these parameters means something uh, to our C program here to our system. 309 00:20:20,860 --> 00:20:23,560 And which we will do that in next lecture. 310 00:20:23,560 --> 00:20:24,940 So I'm waiting to the next lecture.