OSS-forge/Extended_Shellcode_IA32 huggingface dataset:
; subtract 1663 from bx and save the result into bx
sub bx, 1663
; subtract 1663 from the contents of the bx register
sub bx, 1663
; subtract the contents of bx register by 1663 and save the result in bx
sub bx, 1663
; subtract the contents of bx from the contents of bx
sub bx, bx
; subtract dx = 13 to bx = 256
sub bx, dx
; subtract the contents of the dx register from the contents of the bx register
sub bx, dx
; subtract 20h from the 8-bit at memory location buff
sub byte [buff],20h
; subtract 20h from the 8-bit at memory location ebp+ecx
sub byte [ebp+ecx],20h
; subtract 0x4 from the byte at the address edi and negate the result
sub byte [edi], 0x4
not byte [edi]
; negate the byte at the address edi after subtracting the value 7
sub byte [edi], 7
not byte [edi]
; subtract the value 8 from the byte in edi and negate it
sub byte [edi], 8
not byte [edi]
; subtract 0x1 from the current byte of the shellcode and negate the result
sub byte [esi], 0x1
not byte [esi]
; subtract 0x1 from the byte at the address esi and negate the result
sub byte [esi], 0x1
not byte [esi]
; subtract the value 0x9 from the current byte of the shellcode and then negate the result
sub byte [esi], 0x9
not byte [esi]
; subtract 13 to esi content
sub byte [esi], 0xd
; subtract 0xd from the byte at the address esi
sub byte [esi], 0xd
; undo rot13
sub byte [esi], 13
; subtract 13 from the byte at the address esi
sub byte [esi], 13
; subtract 13 from the byte in esi and save the result in esi
sub byte [esi], 13
; negate the byte at the address esi after subtracting the value 2
sub byte [esi], 2
not byte [esi]
; subtract the value 3 from the byte in esi and negate it
sub byte [esi], 3
not byte [esi]
; subtract the decimal value 8 from the byte esi in memory
sub byte [esi], 8
; subtract 8 from the byte in esi and then negate the result
sub byte [esi], 8
not byte [esi]
; dec count by 1
sub cl, 1
; subtract 1 from the contents of the cl register
sub cl, 1
; subtract the value 1 from the contents of the cl register and jump to the decode label if the result is not zero
sub cl, 1
jnz decode
; subtract the contents of the bl register from the contents of the cl register and jump to the l3 label if the result is not negative
sub cl, bl
jns l3
; subtract the contents of dl register from the contents of cl register and save the result in cl
sub cl, dl
; subtract the contents of dl from the cl register
sub cl, dl
; subtract 0x7ff from the contents in cx and save the result in cx
sub cx, 0x7ff
; subtract 0x7ff from the contents of cx register value and save the result in cx
sub cx, 0x7ff
; subtract the contents of cx from the contents of cx
sub cx, cx
; subtract the value 5 from the contents of the dl register and jump to the l4 label if the result is not negative
sub dl, 5
jns l4
; subtract the contents of al register from the contents of dl register and save the result in dl
sub dl, al
; subtract the contents of the al register from the contents of the dl register and jump to the decode_pr label if the result is not negative
sub dl, al
jns decode_pr
; subtract al from dl and jump to decode_pr if the sign flag is zero
sub dl, al
jns decode_pr
; subtract shellcode byte value to dl = 13
sub dl, byte [esi]
; subtract the byte at the address esi from the contents of the dl register
sub dl, byte [esi]
; subtract 15444 from dx and save the result into dx
sub dx, 15444
; subtract 15444 from the contents of the dx register
sub dx, 15444
; subtract the contents of bx from the contents of dx
sub dx, bx
; subtract bx from dx
sub dx, bx
; subtract the value of the memory at address esp from eax and store into eax
sub eax, [esp]
; subtract 0x013ffeff from the contents in eax and save the result in eax
sub eax, 0x013ffeff
; push Ô in/cÕ on stack
sub eax, 0x013ffeff
push eax
; subtract 0x04feca01 from the contents in eax and save the result in eax
sub eax, 0x04feca01
; push Ô/etcÕ on stack
sub eax, 0x04feca01
inc eax
push eax
; subtract 0x0efc3532 from the contents in eax and save the result in eax
sub eax, 0x0efc3532
; push Ô//shÕ on stack
sub eax, 0x0efc3532
push eax
; subtract 0x10 from eax
sub eax, 0x10
; subtract 0x2c3d2dff from the contents in eax and save the result in eax
sub eax, 0x2c3d2dff
; push 0777 on stack
sub eax, 0x2c3d2dff
push eax
; subtract 0x3217d6d2 from the contents in eax and save the result in eax
sub eax, 0x3217d6d2
; push Ô///bÕ on stack
sub eax, 0x3217d6d2
add eax, 0x31179798
push eax
; subtract 0x3bd04ede from the contents in eax and save the result in eax
sub eax, 0x3bd04ede
; subtract 0x70445eaf from the contents in eax and save the result in eax
sub eax, 0x70445eaf
; subtract 216 from the value stored in eax
sub eax, 216
; decrease eax by 3
sub eax, 3
; subtract 3e716230 from the contents of the eax register
sub eax, 3e716230
; subtract 5d455523 from the contents of the eax register
sub eax, 5d455523
; subtract 5e5d7722 from the contents of the eax register
sub eax, 5e5d7722
; subtract 8 from the contents of eax register and save the result in eax
sub eax, 8
; subtract 8 from the contents of the eax register
sub eax, 8
; zero out eax
sub eax, eax
; subtract the contents of eax from the contents of eax
sub eax, eax
; subtract ebx from eax
sub eax, ebx
; subtract the address in ebx from the address in eax
sub eax, ebx
; subtract 20000h from eax register
sub eax,20000h
; subtract 0x2e2aa163 from ebx and save the result into ebx
sub ebx, 0x2e2aa163
; subtract 0x2e2aa163 from the contents in ebx and save the result in ebx
sub ebx, 0x2e2aa163
; subtract the hexadecimal value 0x2e2aa163 to ebx content, then push it on stack
sub ebx, 0x2e2aa163
push ebx
; decrease ebx by 2
sub ebx, 2
; subtract the byte 3 from the contents of the ebx register
sub ebx, byte 3
; subtract the byte value 3 from the contents of ebx and save the result in ebx
sub ebx, byte 3
; subtract the byte 8 from the contents of the ebx register
sub ebx, byte 8
; subtract the byte value 8 from the contents of ebx and save the result in ebx
sub ebx, byte 8
; zero out ebx and ecx content
sub ebx,ebx
xor ecx,ecx
; subtract 3.3.3.3 from ip address
sub ecx, 0x03030303
; subtract 0x04baca01 from the contents in ecx and save the result in ecx
sub ecx, 0x04baca01
; push Ô/etcÕ on stack
sub ecx, 0x04baca01
inc ecx
push ecx
; subtract 0x0b454440 from the contents in ecx and save the result in ecx
sub ecx, 0x0b454440
; push Ô///hÕ on stack
sub ecx, 0x0b454440
push ecx
; subtract 0x1525152a from the contents in ecx and save the result in ecx
sub ecx, 0x1525152a
; subtract hexadecimal value 0x6374612e to ecx content
sub ecx, 0x6374612e
; subtract 0x6374612e from the contents in ecx and save the result in ecx
sub ecx, 0x6374612e
; decrease ecx by 1
sub ecx, 1
; move addr ptr back
sub ecx, 23
; subtract 23 from the contents of the ecx register
sub ecx, 23
; zero out ecx
sub ecx, ecx
; zero out the counter ecx register
sub ecx, ecx
; subtract the contents of the ecx register from the contents of the ecx register
sub ecx, ecx
; subtract the contents of ecx from the contents of ecx
sub ecx, ecx
; subtract ecx from ecx and save the result into ecx
sub ecx, ecx
; clear ecx
sub ecx,ecx
; zero out ecx register and push its content on stack
sub ecx,ecx
push ecx
; clear ecx and push ints content on stack
sub ecx,ecx
push ecx
; subtract the hexadecimal value 0x44444444 from edi content
sub edi, 0x44444444
; subtract 0x44444444 from edi and save the result in edi
sub edi, 0x44444444
; subtract 0xffffffdf from edi
sub edi, 0xffffffdf
; subtract 1768009314 from the contents of the edi register
sub edi, 1768009314
; subtract 1768009314 from the edi register and save the result in edi
sub edi, 1768009314
; subtract hexadecimal value 0x11111111 to edi content
sub edi,0x11111111
; decrease edx by 4
sub edx, 4
; clear edx
sub edx, edx
; subtract the contents of the edx register from the contents of the edx register
sub edx, edx
; zero out edx and push it on stack
sub edx, edx
push edx
; subtract 0x24 from the contents in esp and save the result in esp
sub esp, 0x24
; subtract the value 0x28 from the esp register
sub esp, 0x28
; subtract 0x7f from the stack
sub esp, 0x7f
; subtract 0x7f from esp
sub esp, 0x7f
; subtract 12 from esp register and save the result in esp
sub esp, 12
; subtract 12 from the contents of the esp register
sub esp, 12
; subtract 4 from the esp content
sub esp, 4
; allocate memory for variable
sub esp, 4
; make room for one 4-byte local variable
sub esp, 4
; make room on the stack for local variable
sub esp, 4
; allocate memory for local variables
sub esp, 4
; subtract the value 4 from the esp register and save the result in esp
sub esp, 4
; allocate space on the stack for local variable
sub esp, 4
; make space on stack
sub esp, 4
; allocate memory for a variable
sub esp, 4
; subtract 8 value to esp content
sub esp, 8
; subtract 8 from esp and save the result in esp
sub esp, 8
; subtract the byte 0x1 from the contents of the esp register
sub esp, byte 0x1
; subtract the byte value 0x1 from esp register and save the result in esp
sub esp, byte 0x1
; esp points to the top of the stack
sub esp,0x4
sub esp,0x4
; declare _switch label
switch:
; define the switch function
switch:
; define sys_execve equal to 0x0b
sys_execve equ 0x0b
; make the syscall
syscall
; define syscall_execve = 11
syscall_execve equ 11
; define syscall_execve equal to 11
syscall_execve equ 11
; test the value of the al register
test al, al
; jump to the label found if the contents of the al register is zero else increment the contents of the ecx register
test al, al
jz found
inc ecx
; if the contents of the al register is zero then jump to the label found else increment the contents of the ecx register
test al, al
jz found
inc ecx
; perform a bitwise and of the contents of ax and the contents of ax
test ax, ax
; jump to the label exeunt if the contents of the ax register is not zero else jump to the label carryon
test ax, ax
jnz exeunt
jmp carryon
; if the contents of the ax register is not zero then jump to the label exeunt else jump to the label carryon
test ax, ax
jnz exeunt
jmp carryon
; jump to the label not_found if the contents of the bl register is not zero
test bl, bl
jz not_found
; if the contents of the bl register is not zero then jump to the label not_found
test bl, bl
jz not_found
; test the value of cl
test cl, cl
; jump to the label ready_to_proxy if the contents of the dl register is not zero
test dl, 0x1
jnz ready_to_proxy
; if the contents of the dl register is not zero then jump to the label ready_to_proxy
test dl, 0x1
jnz ready_to_proxy
; check if eax is zero
test eax, eax
; perform a bitwise and on the contents of the eax register
test eax, eax
; test the value of eax
test eax, eax
; jump to the label _convert if the contents of the eax register is not zero
test eax, eax
jnz _convert
; if the contents of the eax register is not zero then jump to the label _convert
test eax, eax
jnz _convert
; jump to the label _parent if the contents of the eax register is not zero else restore the top of the stack into the ecx register
test eax, eax
jnz _parent
pop ecx
; if the contents of the eax register is not zero then jump to the label _parent else restore the top of the stack into the ecx register
test eax, eax
jnz _parent
pop ecx
; jump to the label _recv_http_request if the contents of the eax register is not zero else subtract the value 0x6 from the contents of the ecx register
test eax, eax
jnz _recv_http_request
sub ecx, 0x6
; if the contents of the eax register is not zero then jump to the label _recv_http_request else subtract the value 0x6 from the contents of the ecx register
test eax, eax
jnz _recv_http_request
sub ecx, 0x6
; jump to the label checkforfile if the contents of the eax register is not zero
test eax, eax
jnz checkforfile
; if the contents of the eax register is not zero then jump to the label checkforfile
test eax, eax
jnz checkforfile
; jump to the label do_next_accept if the contents of the eax register is not zero
test eax, eax
jnz do_next_accept
; if the contents of the eax register is not zero then jump to the label do_next_accept
test eax, eax
jnz do_next_accept
; jump to the label exit_on_error if the contents of the eax register is not zero
test eax, eax
jnz exit_on_error
; if the contents of the eax register is not zero then jump to the label exit_on_error
test eax, eax
jnz exit_on_error
; jump to the label l1 if the contents of the eax register is not zero
test eax, eax
jnz l1
; if the contents of the eax register is not zero then jump to the label l1
test eax, eax
jnz l1
; jump to the label l1 if the contents of the eax register is not zero else call the function myfunct
test eax, eax
jnz l1
call myfunct
; if the contents of the eax register is not zero then jump to the label l1 else call the function myfunct
test eax, eax
jnz l1
call myfunct
; jump to the label l4 if the contents of the eax register is not zero else call the function search
test eax, eax
jnz l4
call search
; if the contents of the eax register is not zero then jump to the label l4 else call the function search
test eax, eax
jnz l4
call search
; jump short to the label _parent if the contents of the eax register is not zero
test eax, eax
jnz short _parent
; if the contents of the eax register is not zero then jump short to the label _parent
test eax, eax
jnz short _parent
; jump to the label _while_loop if the contents of the eax register is negative
test eax, eax
js _while_loop
; if the contents of the eax register is negative then jump to the label _while_loop
test eax, eax
js _while_loop
; jump to the label close if the contents of the eax register is negative
test eax, eax
js close
; if the contents of the eax register is negative then jump to the label close
test eax, eax
js close
; jump to the label old_dirent if the contents of the eax register is negative
test eax, eax
js old_dirent
; if the contents of the eax register is negative then jump to the label old_dirent
test eax, eax
js old_dirent
; jump short to the label socket if the contents of the eax register is negative
test eax, eax
js short socket
; if the contents of the eax register is negative then jump short to the label socket
test eax, eax
js short socket
; jump to the label check_html if the contents of the eax register is zero
test eax, eax
jz check_html
; if the contents of the eax register is zero then jump to the label check_html
test eax, eax
jz check_html
; jump to the label check_html if the contents of the eax register is zero else jump to the while label
test eax, eax
jz check_html
jmp while
; if the contents of the eax register is zero then jump to the label check_html else jump to the while label
test eax, eax
jz check_html
jmp while
; jump to the label close if the contents of the eax register is zero
test eax, eax
jz close
; if the contents of the eax register is zero then jump to the label close
test eax, eax
jz close
; jump to the label close if the contents of the eax register is zero else move the contents of the edx register into the ebx register
test eax, eax
jz close
mov ebx, edx
; if the contents of the eax register is zero then jump to the label close else move the contents of the edx register into the ebx register
test eax, eax
jz close
mov ebx, edx
; jump to the label proc_name if the contents of the eax register is zero
test eax, eax
jz proc_name
; if the contents of the eax register is zero then jump to the label proc_name
test eax, eax
jz proc_name
; jump to the label ready_to_proxy if the contents of the eax register is zero
test eax, eax
jz ready_to_proxy
; if the contents of the eax register is zero then jump to the label ready_to_proxy
test eax, eax
jz ready_to_proxy
; jump short to the memory location loc_402B13 if the contents of the eax register is zero
test eax, eax
jz short loc_402B13
; if the contents of the eax register is zero then jump short to the memory location loc_402B13
test eax, eax
jz short loc_402B13
; jump short to the memory location loc_402C13 if the contents of the eax register is zero
test eax, eax
jz short loc_402C13
; if the contents of the eax register is zero then jump short to the memory location loc_402C13
test eax, eax
jz short loc_402C13
; jump to the label socket if the contents of the eax register is zero
test eax, eax
jz socket
; if the contents of the eax register is zero then jump to the label socket
test eax, eax
jz socket
; jump to the label socket if the contents of the eax register is zero else zero out the contents of the eax register
test eax, eax
jz socket
xor eax, eax
; if the contents of the eax register is zero then jump to the label socket else zero out the contents of the eax register
test eax, eax
jz socket
xor eax, eax
; jump to the label write if the contents of the eax register is zero, else zero out the contents of the eax register
test eax, eax
jz write
xor eax, eax
; if the contents of the eax register is zero then jump to the label write else zero out the contents of the eax register
test eax, eax
jz write
xor eax, eax
; test the contents of the ebx register
test ebx, ebx
; jump short to the label l1 if the contents of the ebx register is negative
test ebx, ebx
js short l1
; test the contents of the ecx register
test ecx, ecx
; test the contents of the edx register
test edx, edx
; jump to even_number is the contents in esi is even
test esi, 01h
je even_number
; perform and operation between si and 01h
test si, 01h
; perform si & 01h discarding the result but set the zero flag to 1 if the least significant but of si is 0, even set the zero flag to 0 if the and operation between the leas singificant bit of si and 01h is zero, while set the zero flag = 1 if the and operation result is 1. if the si == 0 go to even_number label ese go to odd_number label
test si, 01h
je even_number
; define _three label
three:
; declare the three label
three:
; declare todo_label
todo:
; declare the todo label
todo:
; define constant total_students equal to 50
total_students equ 50
; define two_label
two:
; define _two label
two:
; define two label
two:
; declare the two label
two:
; declare the up label
up:
; declare var byte variable and initialize it to 32
var db 32
; declare a byte containing the value 64 at label the memory location var
var db 64
; allocate one byte of memory for var_a variable and initialize it to 232
var_a db 232
; create the doubleword variable var_a in memory and initialize it to zero
var_a: dd 0x0
; allocate one byte of memory for var_b variable and initialize it to 'c'
var_b db 'c'
; declare an uninitialized byte labeled var2
var2 db ?
; declare an uninitialized byte referred to as location var2
var2 db ?
; reserve 1 byte for variableName1
variablename1: resb 1
; reserve 1 word for variableName2
variablename2: resw 1
; reserve 1 double word for variableName3
variablename3: resd 1
; declare the array of words word_table initialized to 134 345 564 and 123
word_table dw 134, 345, 564, 123
; define the word value word_value and initialize it to 300
word_value dw 300
; define word1 unsigned word and initialize it to 65535
word1 word 65535
; define word2 signed word and initialize it to -32768
word2 sword Ð32768
; define word3 uninitialized unsigned word
word3 word ?
; reserve a word for wordvar
wordvar: resw 1
; define _wrap_around label
wrap_around:
; declare the wrap_around label
wrap_around:
; define weite_syscall =4
write_syscall equ 4
; define write_syscall equal to 4
write_syscall equ 4
; delcare _write label
write:
; define write_label
write:
; define write label
write:
; declare the write label
write:
; define _writestring label
writestring:
; define writestring function
writestring:
; declare the writestring label
writestring:
; declare a word uninitialized value referred to as location x
x dw ?
; declare an uninitialized word labeled x
x dw ?
; swap the address [ebp+16] with the contents of the ecx register
xchg [ebp+16], ecx
; swap the contents in ebp+16 and ecx
xchg [ebp+16], ecx
; swap al value with next byte value (esi+1)
xchg byte [esi+1], al
; exchange ebx with eax content
xchg eax, ebx
; put socket descriptor in ebx and 0x5 in eax
xchg eax, ebx
; exchange ebx with eax contents
xchg eax, ebx
; exchange eax with ebx contents
xchg eax, ebx
; swap the contents of eax and ebx
xchg eax, ebx
; swap the contents of the eax register with the contents of the ebx register
xchg eax, ebx
; exchange eax with ebx
xchg eax, ebx
; exchange ecx with eax content
xchg eax, ecx
; swap the contents of the eax register with the contents of the ecx register
xchg eax, ecx
; exchange edx with eax contents
xchg eax, edx
; swap the contents of the eax register with the contents of the edx register
xchg eax, edx
; save sockfd
xchg eax, esi
; swap the contents of eax and esi
xchg eax, esi
; swap the contents of the eax register with the contents of the esi register
xchg eax, esi
; execute close syscall
xchg eax, esi
int 0x80
; save the socket descriptor stored in eax in ebx
xchg ebx, eax
; move the return value of socket from eax to ebx ready for the next syscalls
xchg ebx, eax
; exchange the content of eax with ebx so now ebx holds the new sockfd that was accepted
xchg ebx, eax
; exchange ebx with eax contents
xchg ebx, eax
; save fd in ebx
xchg ebx, eax
; transfer the descriptor for the accepted socket from eax into ebx
xchg ebx, eax
; store sockfd from eax in ebx
xchg ebx, eax
; swap the contents of the ebx register with the contents of the eax register
xchg ebx, eax
; swap the values of ebx and eax
xchg ebx, eax
; swap the values of ebx and eax registers
xchg ebx, eax
; exchange the contents of the ebx register with the contents of the eax register
xchg ebx, eax
; execute no operation
xchg ebx, ebx
; exchange ebx with ecx
xchg ebx, ecx
; exchange ebx with edx content
xchg ebx, edx
; set ebx=2 and edx=sockfd
xchg ebx, edx
; swap the contents of the ebx register with the contents of the edx register
xchg ebx, edx
; swap the contents of the ebx register with the contents of the esp register
xchg ebx, esp
; swap the values of ebx and esp registers
xchg ebx, esp
; exchange eax content with ebx content
xchg ebx,eax
; save client_sockfd exchanging eax content with ebx content
xchg ebx,eax
; save clientfd from eax to ebx
xchg ebx,eax
; exchange eax content with ebx content (save clientfd from eax to ebx)
xchg ebx,eax
; exchange eax contet with ebx content
xchg ebx,eax
; exchange esp content with ebx content
xchg ebx,esp
; save stack pointer to ebx
xchg ebx,esp
; exchange edx with ecx content
xchg ecx, edx
; exchange ecx with edx
xchg ecx, edx
; swap the contents of the ecx register with the contents of the edx register
xchg ecx, edx
; exchange eax content with ecx content
xchg ecx,eax
; exchange edx contents with ecx contents
xchg ecx,edx
; transfer file descriptor to edi
xchg edi, eax
; swap the contents of the edi register with the contents of the eax register
xchg edi, eax
; swap the values of edi and eax registers
xchg edi, eax
; exchange eax content with edi content
xchg edi,eax
; save the socket descriptor stored in eax in edi
xchg edi,eax
; swap the values of edx and eax registers
xchg edx, eax
; exchange edx with eax
xchg edx, eax
; swap the values of edx and ebx registers
xchg edx, ebx
; exchange eax with edx content
xchg edx,eax
; exchange eax and edx content
xchg edx,eax
; execute no operation
xchg edx,eax
; save the socket descriptor stored in eax in esi
xchg esi, eax
; load the socket file desriptor from eax into esi register
xchg esi, eax
; save sock result from eax into esi
xchg esi, eax
; saving sockfd
xchg esi, eax
; swap the contents of the esi register with the contents of the eax register
xchg esi, eax
; swap the values of esi and eax
xchg esi, eax
; execute exit syscall
xchg esi, eax
int 0x80
; swap the values of esi and ebx
xchg esi, ebx
; save the socket descriptor stored in eax in esi
xchg esi,eax
; load host_sockfd stored in eax to esi
xchg esi,eax
; load the sockfd sotred in eax to esi register and then clean eax register
xchg esi,eax
xor eax,eax
; swap the values of esp and esi registers
xchg esp, esi
; exchange eax and esp content
xchg esp,eax
; swap the values si ebx and bx registers
xchg si, bx
; perform xor operation between ebx register and the word __flag_byte and save the result in ebx
xor [ebx], word __flag_byte
; perform xor operation between the value stored at the location ecx+116 and bh
xor [ecx + 116], bh
; perform a logical xor between the address specified by [ecx + 116] and the bh register and save the result in [ecx + 116]
xor [ecx + 116], bh
; perform xor operation between the value stored at the location ecx+116 and dh
xor [ecx + 116], dh
; perform a logical xor between the address specified by [ecx + 116] and the dh register and save the result in [ecx + 116]
xor [ecx + 116], dh
; perform the xor operation between the value stored at the location ecx and bh
xor [ecx], bh
; perform the xor operation between the value stored at the location ecx and dh
xor [ecx], dh
; zero out ah register
xor ah, ah
; clear the ah register
xor ah, ah
; xoring al content with 0xe9
xor al, 0e9h
; perform a logical xor between the al register and 0e9h and save the result in al
xor al, 0e9h
; run xor operation between the value 48 and al register contents
xor al, 0x30
; run xor operation between al regsiter and the hexadeciaml value 0x30
xor al, 0x30
; perform the xor operation between the al register and the value 0x30
xor al, 0x30
; perform the xor operation between the al register and the value 0x41
xor al, 0x41
; perform the xor operation between the al register and the value 0x4a
xor al, 0x4a
; run xor operation between al regsiter and the hexadecimal values 0x4a and 0x41
xor al, 0x4a
xor al, 0x41
; xoring al register with bl register
xor al, bl
; perform xor between al and bl and jump short to shellcode if the result is zero
xor al, bl
jz short shellcode
; xoring hexadecimal value 0x12 with al register
xor al,0x12
; perform the xor operation between the ax register and the value 0x3041
xor ax, 0x3041
; perform the xor operation between the ax register and the value 0x4f73
xor ax, 0x4f73
; run xor operation between ax register and 20339 value then between the same register and 12353 value
xor ax, 0x4f73
xor ax, 0x3041
; xor encoded_shellcode with 1337, one word at a time
xor ax, 0x539
; perform a xor operation between ax and 0x539 and save the result in ax
xor ax, 0x539
; perform xor between ax and 0x539 and store the result in ax
xor ax, 0x539
; jump to the decoded_shellcode label if the result of the logical xor between the ax register and the value 0x539 is zero
xor ax, 0x539
jz decoded_shellcode
; run xor operation between ax regsiter and the hexadeciaml value 0x7777
xor ax, 0x7777
; perform the xor operation between the contents of the ax register and the value 0x7777
xor ax, 0x7777
; clear the ax register
xor ax, ax
; zero out ax register
xor ax, ax
; perform a logical xor between the bx register and the ax register and save the result in ax
xor ax, bx
; perform xor between ax and bx
xor ax, bx
; xoring bx and ax register and if the result is 0 go to call_decoder
xor ax, bx
jz call_decoded
; jump to the call_decoded label if the result of the logical xor between the ax register and the bx register is zero
xor ax, bx
jz call_decoded
; perform xor between ax and bx and jump to call decoded if the result is zero
xor ax, bx
jz call_decoded
; perform the xor between bh and the byte in esi+edx
xor bh, byte [esi + edx]
; perform xor between bl and 0xaa and jump to encodedshellcode if the result is not zero
xor bl, 0xaa
jne encodedshellcode
; perform a logical xor between the bl register and 0xbb and save the result in bl
xor bl, 0xbb
; zero out bl register
xor bl, 0xbb
; jump to the encoded label if the result of the logical xor between the bl register and the value 0xBB is zero
xor bl, 0xBB
jz encoded
; perform xor between bl and 0xbb and jump to encoded if the result is zero
xor bl, 0xbb
jz encoded
; jump to the formatting label if the result of the logical xor between the bl register and the value 0xBB is zero
xor bl, 0xBB
jz formatting
; perform the xor between bl and 0xbb and jump to formatting if it is zero else move the byte of the shellcode in cl
xor bl, 0xbb
jz formatting
mov cl, byte [esi]
; perform the xor between bl and the byte in esi+edx
xor bl, byte [esi + edx]
; perform xor between bl and dl and jump short to shellcode if the result is not zero
xor bl, dl
jz short shellcode
; xoring bl with hexadeimal value 0x90
xor bl,0x90
; xoring hexadecimal value 0xaa wih bl register
xor bl,0xaa
; initialize bx to 0
xor bx, bx
; clear the bx register
xor bx, bx
; zero out bx register
xor bx,bx
; xoring the 0xdd value that represent the xor operation with the contents of the memory adddress edi
xor byte [edi], 0xdd
; xoring 0x3 with esi +ecx-1 content
xor byte [esi + ecx - 1], 0x3
; perform a logical xor between the byte at the address specified by [esi + ecx - 1] and the bh register and save the result in [esi + ecx - 1]
xor byte [esi + ecx - 1], 0x3
; run a xor operation between 0x2c and the first character pointed from esi
xor byte [esi], 0x2c
; perform the xor operation between the byte starting at the addess in esi and the value 0x2c
xor byte [esi], 0x2c
; xor between the current byte in esi and 0x88
xor byte [esi], 0x88
; xor between current byte in esi and 0x97
xor byte [esi], 0x97
; xoring cl content with the byte contained into esi register
xor byte [esi], cl
; perform a logical xor between the byte at the address specified by [esi] and the cl register and save the result in [esi]
xor byte [esi], cl
; perform a xor operation between a byte in esi and cl
xor byte [esi], cl
; perform the xor between the current byte of the shellcode and the dl register
xor byte [esi], dl
; perform the xor between the byte in esi and dl
xor byte [esi], dl
; perform the xor between the current byte in esi and dl
xor byte [esi], dl
; perform the xor between the next byte of the shellcode and the dl register
xor byte [esi+1], dl
; perform the xor operation between the byte at memory location esi+ecx and 0x0f
xor byte [esi+ecx],0x0f
; xoring al register with the byte contained into the space memory at the adress edi
xor byte ptr [edi],al
; xoring hexadecimal value 0xaa with the byste at the adress esi
xor byte ptr [esi],0xaa
; perform the xor between ch and the byte in esi+edx
xor ch, byte [esi + edx]
; perform the xor operation between cl and 0x32 and store the resut in cl
xor cl, 0x32
; perform xor between cl and 0x32 and jump short to encodedshellcode is the result is zero
xor cl, 0x32
je short encodedshellcode
; jump short to the EncodedShellcode label if the result of the logical xor between the cl register and the value 0x32 is zero
xor cl, 0x32
jz short EncodedShellcode
; perform a logical xor between the cl register and 0xaa and save the result in cl
xor cl, 0xaa
; perform the xor operation between cl and 0xaa and store the result in cl
xor cl, 0xaa
; jump to the Next_Cycle label if the result of the logical xor between the cl register and the value 0xAA is not zero
xor cl, 0xAA
jnz Next_Cycle
; perform xor between cl and 0xaa and jump to next_cycle if the result is not zero
xor cl, 0xaa
jnz next_cycle
; jump to the shift_decode label if the result of the logical xor between the cl register and the value 0xAA is zero
xor cl, 0XAA
jz shift_decode
; perform xor between cl and 0xaa and jump to shift decode if the result is zero
xor cl, 0xaa
jz shift_decode
; perform the xor between cl and the byte in esi+edx
xor cl, byte [esi + edx]
; perform a logical xor between the dl register and 0xbb and save the result in dl
xor dl, 0xbb
; perform the xor operation between dl and 0xbb and store the result in dl
xor dl, 0xbb
; jump to the Next_Cycle label if the result of the logical xor between the dl register and the value 0xBB is zero
xor dl, 0xBB
jz Next_Cycle
; perform xor between dl and 0xbb and jump to next_cycle if the result is zero
xor dl, 0xbb
jz next_cycle
; perform the xor operation between eax register and edi register and store the result in eax
xor eax, [edi]
; perform xor operation between eax register and esi register and store the result in eax
xor eax, [esi]
; perform the xor operation between eax and 0x58494741 value and store the result in eax
xor eax, 0x58494741
; perform a logical xor between the eax register and 0x58494741 and save the result in eax
xor eax, 0x58494741
; run xor operation between ax regsiter and the hexadeciaml value 0x6e696230
xor eax, 0x6e696230
; perform the xor operation between the eax register and the value 0x6e696230
xor eax, 0x6e696230
; perform a logical xor operation between eax and 0x7575
xor eax, 0x7575
; xoring hexadecimal value 0xffffffff with eax register
xor eax, 0xffffffff
; perform a logical xor between the eax register and 0xffffffff and save the result in eax
xor eax, 0xffffffff
; zero out eax register and push its contents on the stack
xor eax, ea
push eax
; zero out ecx register
xor eax, eax
; clear eax
xor eax, eax
; zero out eax
xor eax, eax
; reseting eax register
xor eax, eax
; zero out eax register
xor eax, eax
; zero-ing eax
xor eax, eax
; clear eax register
xor eax, eax
; 0's our eax
xor eax, eax
; 0's out eax
xor eax, eax
; initialize eax with decimal value 0
xor eax, eax
; perform xor operation between eax and eax
xor eax, eax
; reset both lower and uppper bytes of eax to be 0
xor eax, eax
; reset eax
xor eax, eax
; set the eax register to null
xor eax, eax
; zero out the eax register
xor eax, eax
; init eax 0
xor eax, eax
; clear the eax register
xor eax, eax
; set eax to 0
xor eax, eax
; zero out the eax register and jump to the l3 label if the contents of the edx register is equal to the contents of the eax register
xor eax, eax
cmp edx, eax
je l3
; zero out the eax register and jump to the l3 label if the contents of the edx register is not equal to the contents of the eax register
xor eax, eax
cmp edx, eax
jne l3
; clear eax and execute exit syscall
xor eax, eax
inc al
int 0x80
; clean the eax register and move the next byte of the shellcode into the lower byte of the register
xor eax, eax
mov al, [esi+1]
; clear the eax register and move the next byte of the shellcode into the lower byte of the register
xor eax, eax
mov al, [esi+1]
; clear the eax register and move 0x1 in the lowest byte of the register
xor eax, eax
mov al, 0x1
; clear eax register the load exit syscall number in it and call kernel
xor eax, eax
mov al, 0x1
int 0x80
; zero out eax and move 0x3 in the lowest byte of the register
xor eax, eax
mov al, 0x3
; clear eax and save in it the number of syscall dup2
xor eax, eax
mov al, 0x3f
; clear eax and move 0x4 in the lowest byte of the register
xor eax, eax
mov al, 0x4
; clear eax and execute execve syscall
xor eax, eax
mov al, 0xb
int 0x80
; execute __nr_chmod syscall
xor eax, eax
mov al, 0xf
int 0x80
; clear the eax register and move 2 in the lowest byte of the register
xor eax, eax
mov al, 2
; clear the eax register and move 22 into the lower byte of the register
xor eax, eax
mov al, 22
; clear eax and put the number of syscall open in it
xor eax, eax
mov al, 5
; clean the eax register and move 5 in the lowest byte of the register
xor eax, eax
mov al, 5
; clear eax and copy the numebr of the syscall close in its last byte
xor eax, eax
mov al, 6
; execute __nr_exit syscall
xor eax, eax
mov al,0x1
int 0x80
; zero out eax, ebx, ecx and edx registers
xor eax, eax
mov ebx, eax
mov ecx, eax
mov edx, eax
; zero out eax register and push its contents on the stack stack
xor eax, eax
push eax
; clear eax register and push its contents on the stack
xor eax, eax
push eax
; zero out eax register and insert it on the stack
xor eax, eax
push eax
; clear eax and push it on the stack
xor eax, eax
push eax
; put null bytes in the stack
xor eax, eax
push eax
; clear eax register and push ita content on the stack
xor eax, eax
push eax
; clear eax and push its content on the stack
xor eax, eax
push eax
; clear aex and push its content on the stack
xor eax, eax
push eax
; push null into the stack
xor eax, eax
push eax
; zero out eax register and push it on stack
xor eax, eax
push eax
; push zero onto the stack
xor eax, eax
push eax
; zero out the eax register and push zero onto the stack
xor eax, eax
push eax
; clear the eax register and push its contents onto the stack
xor eax, eax
push eax
; zero out eax and ebx registers
xor eax, eax
xor ebx, ebx
; clear eax and ebx registers
xor eax, eax
xor ebx, ebx
; clear eax and ebx register
xor eax, eax
xor ebx, ebx
; cleaning eax and ebx registers
xor eax, eax
xor ebx, ebx
; zero out eax and ebx registers using xor operation
xor eax, eax
xor ebx, ebx
; 0's our eax and ebx
xor eax, eax
xor ebx, ebx
; 0's out eax and ebx
xor eax, eax
xor ebx, ebx
; zero out eax adn ebx registers
xor eax, eax
xor ebx, ebx
; zero out eax and ebx
xor eax, eax
xor ebx, ebx
; clean eax and ebx registers
xor eax, eax
xor ebx, ebx
; clear the eax and the ebx registers
xor eax, eax
xor ebx, ebx
; clear eax and ebx
xor eax, eax
xor ebx, ebx
; clear eax, ebx and edx registers
xor eax, eax
xor ebx, ebx
cdq
; zero out eax, ebx, ecx
xor eax, eax
xor ebx, ebx
xor ecx, ecx
; zero out eax,ebx and ecx registers
xor eax, eax
xor ebx, ebx
xor ecx, ecx
; clear eax, ebx and ecx
xor eax, eax
xor ebx, ebx
xor ecx, ecx
; zero out eax, ebx and ecx
xor eax, eax
xor ebx, ebx
xor ecx, ecx
; clearing the eax, ebx, ecx, edx registers
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; zero out eax, ebx, ecx and edx register
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; zero out eax,ebx, ecx and edx registers
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; zero out eax, ebx, ecx and edx
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; clear eax, ebx, ecx and edx registers
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; clean eax, ebx, ecx and edx
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; zero out eax, ebx, ecx and edx registers
xor eax, eax
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; clear eax, ebx and edx
xor eax, eax
xor ebx, ebx
xor edx, edx
; cleaning eax, ebx, edx and edi registers
xor eax, eax
xor ebx, ebx
xor edx, edx
xor edi, edi
; clear eax and ecx
xor eax, eax
xor ecx, ecx
; zero out eax and ecx register
xor eax, eax
xor ecx, ecx
; 0's out eax and ecx register
xor eax, eax
xor ecx, ecx
; clear eax and edx
xor eax, eax
xor edx, edx
; zeroing eax and edx reisters
xor eax, eax
xor edx, edx
; zero out eax and edx registers
xor eax, eax
xor edx, edx
; zero out eax and edx register
xor eax, eax
xor edx, edx
; zero out eax and esi registers
xor eax, eax
xor esi, esi
; clear eax
xor eax, eax,
; perform a logical xor between the eax register and the ebx register and save the result in eax
xor eax, ebx
; perform xor operation between eax register and ebx register and store the result in eax
xor eax, ebx
; perform a logical xor between the eax register and the edi register and save the result in eax
xor eax, edi
; perform a logical xor between the eax register and the esi register and save the result in eax
xor eax, esi
; clear eax
xor eax,eax
; zero out eax register
xor eax,eax
; zero out eaz
xor eax,eax
; zero out eax
xor eax,eax
; clear eax register
xor eax,eax
; initiliaze eax to 0
xor eax,eax
; zero out eax regsiter
xor eax,eax
; clear eax and load the code of syscall fork in it, then call kernel
xor eax,eax
mov al,0x2
int 0x80
; clear eax then execute dork syscall
xor eax,eax
mov al,0x2
int 0x80
; clear eax and load the codeof syscall waitpid in it and then call kernel
xor eax,eax
mov al,0x7
int 0x80
; clear eax, then execute exit syscall
xor eax,eax
mov al,1
int 80h
; clear eax and push it on the stack
xor eax,eax
push eax
; clear eax and ebx registers
xor eax,eax
xor ebx,ebx
; zero out eax and ebx register
xor eax,eax
xor ebx,ebx
; zero out eax and ecx register
xor eax,eax
xor ecx,ecx
; zeroing eax and edx registers
xor eax,eax
xor edx,edx
; xoring eax with ebx
xor eax,ebx
; clear ebp register
xor ebp, ebp
; zero the value on ebp
xor ebp, ebp
; perform a logical xor between the ebx register and the ebp register and save the result in ebx
xor ebx, ebp
; clear ebx
xor ebx, ebx
; xoring ebx
xor ebx, ebx
; zero out ebx register
xor ebx, ebx
; zero out ebx
xor ebx, ebx
; clear ebx, setuid(0)
xor ebx, ebx
; clear ebx, setgid(0)
xor ebx, ebx
; 0's out ebx
xor ebx, ebx
; clear ebx register
xor ebx, ebx
; initialize ebx with 0
xor ebx, ebx
; reset both lower and uppper bytes of ebx to be 0
xor ebx, ebx
; clear the ebx register
xor ebx, ebx
; init ebx 0
xor ebx, ebx
; reset ebx to 0
xor ebx, ebx
; set the ebx register to null
xor ebx, ebx
; zero out the ebx register
xor ebx, ebx
; zero out the ebx register and jump to the exit label if the contents of the eax register is equal to the contents of the ebx register
xor ebx, ebx
cmp eax, ebx
je exit
; zero out the ebx register and jump to the exit label if the contents of the eax register is not equal to the contents of the ebx register
xor ebx, ebx
cmp eax, ebx
jne exit
; zero out the ebx register and move the next byte of the shellcode into the lower byte of the register
xor ebx, ebx
mov bl, [esi+1]
; clean the ebx register and move the next byte of the shellcode into the lower byte of the register
xor ebx, ebx
mov bl, [esi+1]
; clear the ebx register and move the next byte of the shellcode into the lower byte of the register
xor ebx, ebx
mov bl, [esi+1]
; set ebx to the old socket fd = 3
xor ebx, ebx
mov bl, 0x3
; zero out ebx and move 0x3 in the lowest byte of the register
xor ebx, ebx
mov bl, 0x3
; clear ebx and move 0x4 in the lowest byte of the register
xor ebx, ebx
mov bl, 0x4
; clear the ebx register and move 2 in the lowest byte of the register
xor ebx, ebx
mov bl, 2
; clean the ebx register and move 5 in the lowest byte of the register
xor ebx, ebx
mov bl, 5
; clear ebx and copy the eax contents in it
xor ebx, ebx
mov ebx, eax
; zero out ebx and eax
xor ebx, ebx
mul ebx
; zero out ebx, eax and edx
xor ebx, ebx
mul ebx
; zero out the eax and ebx register
xor ebx, ebx
mul ebx
; zero out the eax register and the ebx register
xor ebx, ebx
mul ebx
; clear ecx and eax
xor ebx, ebx
mul ebx
; zero out ecx, edx and eax
xor ebx, ebx
mul ebx
; clean eax and edx
xor ebx, ebx
mul ebx
; zero out eax and edx
xor ebx, ebx
mul ebx
; clear ebx and pop it from the stack
xor ebx, ebx
pop ebx
; clear ebx register and put its content as a double word on stack
xor ebx, ebx
push dword ebx
; zero out the ebx register and push zero onto the stack
xor ebx, ebx
push ebx
; push zero onto the stack
xor ebx, ebx
push ebx
; clear the ebx register and push its contents onto the stack
xor ebx, ebx
push ebx
; zro out ebx and ecx register
xor ebx, ebx
xor ecx, ecx
; clean ebx and ecx
xor ebx, ebx
xor ecx, ecx
; clear ebx, ecx and eax regsiters
xor ebx, ebx
xor ecx, ecx
mul ecx
; clear ebx, ecx, edx
xor ebx, ebx
xor ecx, ecx
xor edx, edx
; clear the ebx and edx registers
xor ebx, ebx
xor edx, edx
; zero out ebx and edx
xor ebx, ebx
xor edx, edx
; perform a logical xor between the ebx register and the word __flag_byte and save the result in ebx
xor ebx, word __flag_byte
; xoring ebx with eax
xor ebx,eax
; clear ebx
xor ebx,ebx
; zero out ebx register
xor ebx,ebx
; cler ebx
xor ebx,ebx
; clear ebx regsiter
xor ebx,ebx
; zero out ebx
xor ebx,ebx
; clear ebx register
xor ebx,ebx
; put zero into ebx and eax
xor ebx,ebx
mul ebx
; clear ebx and eax register
xor ebx,ebx
xor eax,eax
; perform a logical xor between the ecx register and the bh register and save the result in ecx
xor ecx, bh
; perform a logical xor between the ecx register and the dh register and save the result in ecx
xor ecx, dh
; zero out ecx register
xor ecx, ecx
; clear ecx
xor ecx, ecx
; cleat ecx
xor ecx, ecx
; xoring ecx
xor ecx, ecx
; clear ecx register
xor ecx, ecx
; zero out ecx
xor ecx, ecx
; define o_rdonly, ecx = 0
xor ecx, ecx
; null ecx
xor ecx, ecx
; zeroing ecx register
xor ecx, ecx
; xor to clear out ecx
xor ecx, ecx
; clean ecx
xor ecx, ecx
; zero out loop counter ecx
xor ecx, ecx
; initialize ecx to zero
xor ecx, ecx
; initialize ecx with decimal value 0
xor ecx, ecx
; reset both lower and uppper bytes of ecx to be 0
xor ecx, ecx
; set the ecx register to null
xor ecx, ecx
; zero out the ecx register
xor ecx, ecx
; reset ecx to 0
xor ecx, ecx
; clear the ecx register
xor ecx, ecx
; zero out the ecx register and jump to the l1 label if the contents of the ebx register is equal to the contents of the ecx register
xor ecx, ecx
cmp ebx, ecx
je l1
; zero out the ecx register and jump to the l1 label if the contents of the ebx register is not equal to the contents of the ecx register
xor ecx, ecx
cmp ebx, ecx
jne l1
; clean the ecx register and move the next byte of the shellcode into the lower byte of the register
xor ecx, ecx
mov cl, [esi+1]
; clear the ecx register and move the next byte of the shellcode into the lower byte of the register
xor ecx, ecx
mov cl, [esi+1]
; zero out the ecx register and move the next byte of the shellcode into the lower byte of the register
xor ecx, ecx
mov cl, [esi+1]
; zero out the ecx register and move 0x19 into the lower byte of the register
xor ecx, ecx
mov cl, 0x19
; clear the counter and move 0x1e into the first byte of the register
xor ecx, ecx
mov cl, 0x1e
; init new socket fd
xor ecx, ecx
mov cl, 0x3
; clear ecx and save the number of loops, 3, in it
xor ecx, ecx
mov cl, 0x3
; zero out ecx and move 0x3 in the lowest byte of the register
xor ecx, ecx
mov cl, 0x3
; clear ecx and move 0x4 in the lowest byte of the register
xor ecx, ecx
mov cl, 0x4
; clear the ecx register and move 2 in the lowest byte of the register
xor ecx, ecx
mov cl, 2
; zero out the ecx register and move 23 into the lower byte of the register
xor ecx, ecx
mov cl, 23
; zero out the ecx register and move 25 in the lower 8 bits of the register
xor ecx, ecx
mov cl, 25
; clear ecx and move the value 3 in it
xor ecx, ecx
mov cl, 3
; clean the ecx register and move 5 in the lowest byte of the register
xor ecx, ecx
mov cl, 5
; zero out the loop counter and move shellcode_length in the first byte
xor ecx, ecx
mov cl, shellcode_length
; clear ecx and move the value 0777 in it ( set file permissions to 777 so anyone can do anything (read, write, or execute))
xor ecx, ecx
mov cx, 0x1ff
; clear ecx and set file permissions to 777
xor ecx, ecx
mov cx, 0x1ff
; zero out ecx and eax register
xor ecx, ecx
mul ecx
; zero out eax ecx register
xor ecx, ecx
mul ecx
; zero out ecx and eax registers
xor ecx, ecx
mul ecx
; clear ecx and eax register
xor ecx, ecx
mul ecx
; clear eax and ebx registers
xor ecx, ecx
mul ecx
; trick to clear eax and ecx
xor ecx, ecx
mul ecx
; zero out eax and ecx
xor ecx, ecx
mul ecx
; zero out the eax register and the ecx register
xor ecx, ecx
mul ecx
; cause both eax and edx to become zero
xor ecx, ecx
mul ecx
; zero out eax and edx registers
xor ecx, ecx
mul ecx
; clear ecx and eax
xor ecx, ecx
mul ecx
; zero out ecx, edx and eax
xor ecx, ecx
mul ecx
; clean eax and edx
xor ecx, ecx
mul ecx
; zero out eax and edx
xor ecx, ecx
mul ecx
; push zero onto the stack
xor ecx, ecx
push ecx
; clear the ecx register and push its contents onto the stack
xor ecx, ecx
push ecx
; zero out the ecx register and push zero onto the stack
xor ecx, ecx
push ecx
; zero out ecx and eax register
xor ecx, ecx
xor eax, eax
; zero out ecx and eax
xor ecx, ecx
xor eax, eax
; clear ecx, eax and edx
xor ecx, ecx
xor eax, eax
xor edx, edx
; clear ecx, ebx and eax
xor ecx, ecx
xor ebx, ebx
xor eax, eax
; zero out ecx and edx register
xor ecx, ecx
xor edx, edx
; zero out ecx register
xor ecx,ecx
; clear ecx
xor ecx,ecx
; zero out ecx
xor ecx,ecx
; clear ecx and eax
xor ecx,ecx
mul ecx
; clear ecx and eax register
xor ecx,ecx
mul ecx
; clear ecx and eax registers
xor ecx,ecx
mul ecx
; clear eax and ebx registers
xor ecx,ecx
mul ecx
; clear eax and ecx registers
xor ecx,ecx
xor eax, eax
; xoring ebp with edi register
xor edi, ebp
; zero out edi register
xor edi, edi
; initialize edi with 0
xor edi, edi
; clear the edi register
xor edi, edi
; init edi 0
xor edi, edi
; zero out the edi, eax, ebx and edx registers
xor edi, edi
xor eax, eax
xor ebx, ebx
xor edx, edx
; clean the edx register and move the next byte of the shellcode into the lower byte of the register
xor edx, ecx
mov dl, [esi+1]
; clear the edx register and move the next byte of the shellcode into the lower byte of the register
xor edx, ecx
mov dl, [esi+1]
; zero out the edx register and move the next byte of the shellcode into the lower byte of the register
xor edx, ecx
mov dl, [esi+1]
; clear edx
xor edx, edx
; clear edx register
xor edx, edx
; zero out edx register
xor edx, edx
; zero out edx
xor edx, edx
; zero out edx register using xor operation
xor edx, edx
; initialize edx with the decimal value 0
xor edx, edx
; initialize edx with the hexadecimal value 0x0
xor edx, edx
; clear the edx register
xor edx, edx
; set the contents of edx to zero
xor edx, edx
; set the edx register to null
xor edx, edx
; zero out the edx register
xor edx, edx
; reset edx to 0
xor edx, edx