joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41dc17
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov edi, ecx
xor esi, esi
mov ebx, edx
cmp byte [edi + 0x722], 0
je 0x41dca9
cmp dword [edi + 0x1b0], esi
je 0x41dc69
mov dl, 1
call fcn.00419622
push dword [edi + 0x14c]
mov esi, dword [edi + 0x1b0]
mov ecx, esi
push dword [ebp + 0xc]
push dword [ebp + 8]
push ebx
push edi
call dword [0x4553fc]
call esi
add esp, 0x14
xor dl, dl
mov ecx, edi
mov esi, eax
call fcn.00419622
jmp 0x41dca9
mov eax, ebx
sub eax, esi
je 0x41dc79
sub eax, 1
je 0x41dc79
sub eax, 1
jne 0x41dca9
push dword [edi + 0x148]
imul eax, ebx, 3
push 1
push 2
add eax, 0x464638
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push dword [edi + 0x148]
push 1
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
add esp, 0x20
pop edi
mov eax, esi
pop esi
pop ebx
pop ebp
ret

Function at 0x41dcb0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
xor eax, eax
push edi
push 4
mov edi, edx
cmp byte [esi + 0x730], al
setne al
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push 8
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x41dcfd
push edi
push str.Failed_to_set_SO_KEEPALIVE_on_fd__d
push esi
call fcn.0041d632
add esp, 0xc
jmp 0x41dd5e
mov eax, dword [esi + 0x6c8]
xor ecx, ecx
and eax, 0x7fffffff
mov dword [ebp - 0x10], 1
imul eax, eax, 0x3e8
push ecx
push ecx
mov dword [ebp - 0xc], eax
imul eax, dword [esi + 0x6cc], 0x3e8
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0x18]
push eax
push ecx
push ecx
push 0xc
lea eax, [ebp - 0x10]
push eax
push 0x98000004
push edi
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x41dd5e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
push str.Failed_to_set_SIO_KEEPALIVE_VALS_on_fd__d:__d
push esi
call fcn.0041d632
add esp, 0x10
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00450ca6
leave
ret
Function at 0x41e574
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x194
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, edx
mov dword [ebp - 0x190], eax
mov ebx, ecx
mov eax, 0x80
push eax
mov dword [ebp - 0x18c], eax
lea eax, [ebp - 0x188]
push 0
push eax
call fcn.004520c0
add esp, 0xc
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x188]
push eax
push esi
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x41e5f0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
lea edx, [ebp - 0x108]
push ecx
mov ecx, esi
call fcn.0041a0b8
pop ecx
push eax
push esi
push str.getsockname___failed_with_errno__d:__s
jmp 0x41e635
push dword [ebp - 0x190]
mov edx, dword [ebp - 0x18c]
lea ecx, [ebp - 0x188]
push edi
call fcn.0041e407
pop ecx
pop ecx
test al, al
jne 0x41e63e
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov esi, dword [eax]
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
push ecx
lea edx, [ebp - 0x108]
mov ecx, esi
mov edi, eax
call fcn.0041a0b8
pop ecx
push eax
push dword [edi]
push str.ssloc_inet_ntop___failed_with_errno__d:__s
push ebx
call fcn.0041d6ad
add esp, 0x10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret

Function at 0x41ed5e
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 4
mov esi, ecx
lea eax, [ebp - 0x10c]
xor ecx, ecx
push eax
inc ecx
push ecx
push 6
push edx
mov dword [ebp - 0x10c], ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x41edb8
push ecx
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea edx, [ebp - 0x108]
mov ecx, eax
call fcn.0041a0b8
pop ecx
push eax
push str.Could_not_set_TCP_NODELAY:__s
push esi
call fcn.0041d632
add esp, 0xc
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00450ca6
leave
ret

Function at 0x41edc5
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
and dword [ebp - 4], 0
mov eax, dword [0x46f548]
mov dword [ebp - 8], 0x4020
mov dword [ebp - 0xc], 4
push ebx
push esi
mov esi, ecx
test eax, eax
jne 0x41ee13
push 3
push ecx
push ecx
push 6
xor edx, edx
pop ecx
call fcn.00410b38
add esp, 0xc
test al, al
je 0x41ee0b
mov dword [0x46f548], 2
jmp 0x41ee51
xor eax, eax
inc eax
mov dword [0x46f548], eax
cmp eax, 2
je 0x41ee51
lea eax, [ebp - 0xc]
mov ebx, 0x1001
push eax
lea eax, [ebp - 4]
push eax
push ebx
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x41ee3e
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 8]
jg 0x41ee51
push 4
lea eax, [ebp - 8]
push eax
push ebx
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
pop esi
pop ebx
leave
ret
Function at 0x41f472
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9c
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
test eax, eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
lea esi, [ebp - 0x98]
cmovne esi, eax
mov eax, dword [edx + 4]
mov ecx, dword [edi + 0xc]
mov dword [esi], eax
xor eax, eax
mov dword [ebp - 0x9c], ecx
cmp dword [ecx + 0x58], 3
setne al
inc eax
mov dword [esi + 4], eax
cmp dword [ecx + 0x58], 3
je 0x41f4c1
push 0x11
pop eax
jmp 0x41f4c4
mov eax, dword [edx + 0xc]
mov dword [esi + 8], eax
mov eax, 0x80
mov ecx, dword [edx + 0x10]
mov dword [esi + 0xc], ecx
cmp ecx, eax
jbe 0x41f4db
mov dword [esi + 0xc], eax
jmp 0x41f4dd
mov eax, ecx
push eax
push dword [edx + 0x18]
lea eax, [esi + 0x10]
push eax
call fcn.00452780
add esp, 0xc
cmp dword [edi + 0x1c0], 0
je 0x41f528
mov dl, 1
mov ecx, edi
call fcn.00419622
push esi
mov esi, dword [edi + 0x1c0]
mov ecx, esi
push 0
push dword [edi + 0x1c4]
call dword [0x4553fc]
call esi
add esp, 0xc
mov dword [ebx], eax
xor dl, dl
mov ecx, edi
call fcn.00419622
jmp 0x41f538
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebx], eax
cmp dword [ebx], 0xffffffff
jne 0x41f542
push 7
pop eax
jmp 0x41f56e
mov eax, dword [ebp - 0x9c]
cmp dword [eax + 0x58], 5
jne 0x41f56c
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x9c], 1
push eax
push 0x8004667e
push dword [ebx]
call dword [sym.imp.WS2_32.dll_ioctlsocket]
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret

Function at 0x41f892
Capabilities:
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
test esi, esi
je 0x41f8d9
call fcn.0042e9be
test al, al
jne 0x41f8d9
push ebx
lea edx, [ebp - 4]
mov ecx, esi
call fcn.0041f833
mov esi, dword [ebp - 4]
mov edx, eax
add esi, edx
mov ebx, 0x1505
jmp 0x41f8cf
mov cl, byte [edx]
call fcn.00412510
imul ebx, ebx, 0x21
movsx ecx, al
xor ebx, ecx
inc edx
cmp edx, esi
jb 0x41f8bf
movzx eax, bl
pop ebx
jmp 0x41f8db
xor eax, eax
pop esi
leave
ret
Function at 0x428b9f
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [sub.api_ms_win_crt_heap_l1_1_0.dll_calloc]
push edi
push 0x58
mov edi, ecx
mov dword [ebp - 4], edx
push 1
mov ecx, esi
call dword [0x4553fc]
call esi
mov ebx, eax
mov dword [ebp - 8], 0xc
mov dword [edi + 0x9d0], ebx
lea esi, [edi + 0x9c8]
pop ecx
pop ecx
test ebx, ebx
je 0x428c96
mov eax, dword [ebp + 8]
xor ecx, ecx
push dword [ebp + 0xc]
mov edx, dword [ebp - 4]
mov byte [esi + 0x18], cl
mov dword [esi + 0x14], ecx
mov dword [esi + 4], ecx
mov dword [esi + 0x10], eax
mov dword [ebx], ecx
mov ecx, ebx
push eax
call fcn.004288e1
pop ecx
pop ecx
test eax, eax
jne 0x428c1e
and dword [esi + 8], eax
mov esi, dword [sub.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, esi
push ebx
call dword [0x4553fc]
call esi
pop ecx
jmp 0x428c96
push dword [esi]
mov esi, dword [sub.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, esi
call dword [0x4553fc]
call esi
mov esi, dword [sub.api_ms_win_crt_string_l1_1_0.dll__strdup]
pop ecx
push dword [ebp - 4]
mov ecx, esi
call dword [0x4553fc]
call esi
lea esi, [edi + 0x9c8]
mov dword [esi], eax
pop ecx
test eax, eax
je 0x428c8f
xor edi, edi
lea eax, [ebx + 0x10]
push edi
push edi
push eax
push 0x428a20
push edi
push edi
mov dword [ebx + 0x14], edi
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
add esp, 0x18
test eax, eax
je 0x428c7b
cmp eax, 0xffffffff
je 0x428c7b
mov dword [ebx], eax
mov al, 1
jmp 0x428ca3
mov dword [ebx], edi
mov dword [ebx + 0x14], 1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov eax, dword [eax]
mov dword [ebp - 8], eax
mov ecx, esi
call fcn.00428afd
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov ecx, dword [ebp - 8]
mov dword [eax], ecx
xor al, al
pop edi
pop esi
pop ebx
leave
ret
Function at 0x42e822
Capabilities:
Convert ip address from string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sub.api_ms_win_crt_heap_l1_1_0.dll_calloc]
push edi
push 1
mov edi, ecx
mov ecx, esi
push 0x46
call dword [0x4553fc]
call esi
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x42e8d0
push 0x17
pop esi
push edi
mov word [ebp - 0x30], si
call dword [sym.imp.WS2_32.dll_htons]
and dword [ebp - 0x2c], 0
and dword [ebp - 0x18], 0
mov word [ebp - 0x2e], ax
lea eax, [ebp - 0x14]
push eax
push 0x4669e0
push esi
call dword [sym.imp.WS2_32.dll_inet_pton]
xor ecx, ecx
inc ecx
cmp eax, ecx
jl 0x42e8d0
lea esi, [ebp - 0x14]
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
lea eax, [ebx + 0x20]
push 7
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
and dword [ebx], 0
lea esi, [ebp - 0x30]
and dword [ebx + 0x1c], 0
mov edi, eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0x18], eax
mov dword [ebx + 4], 0x17
mov dword [ebx + 0xc], 6
mov dword [ebx + 0x10], 0x1c
pop ecx
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x1c]
mov esi, str.localhost
mov dword [ebx + 0x14], edi
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x42e8d2
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret

Function at 0x42e8e1
Capabilities:
Convert ip address from string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
push 2
mov eax, ecx
xorps xmm0, xmm0
pop ebx
push eax
mov dword [ebp - 8], eax
movlpd qword [ebp - 0x10], xmm0
mov word [ebp - 0x18], bx
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x16], ax
lea eax, [ebp - 4]
push eax
push str.127.0.0.1
push ebx
call dword [sym.imp.WS2_32.dll_inet_pton]
xor edi, edi
inc edi
cmp eax, edi
jl 0x42e989
mov eax, dword [ebp - 4]
mov esi, dword [sub.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov ecx, esi
push edi
push 0x3a
mov dword [ebp - 0x14], eax
call dword [0x4553fc]
call esi
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x42e989
and dword [ebx], 0
lea ecx, [ebx + 0x20]
mov dword [ebx + 8], edi
lea esi, [ebp - 0x18]
mov dword [ebx + 0x18], ecx
mov edi, ecx
mov dword [ebx + 4], 2
mov dword [ebx + 0xc], 6
mov dword [ebx + 0x10], 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea edi, [ecx + 0x10]
mov esi, str.localhost
mov ecx, dword [ebp - 8]
mov dword [ebx + 0x14], edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
call fcn.0042e822
mov dword [ebx + 0x1c], eax
mov eax, ebx
jmp 0x42e98b
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x42e9be
Capabilities:
Convert ip address from string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp - 0x18]
mov esi, ecx
push eax
push esi
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jg 0x42e9f7
lea eax, [ebp - 0x14]
push eax
push esi
push 0x17
call dword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jg 0x42e9f7
xor al, al
jmp 0x42e9f9
mov al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00450ca6
leave
ret
Function at 0x4350de
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
lea eax, [ebp - 0x30]
mov dword [ebp - 0xc], edx
push edi
push eax
mov ebx, ecx
call fcn.0043480b
mov esi, eax
lea edi, [ebp - 0x20]
pop ecx
push ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call sub.api_ms_win_crt_string_l1_1_0.dll__strdup
pop ecx
push dword [ebp - 0xc]
mov esi, eax
mov dword [ebp - 8], esi
call sub.api_ms_win_crt_string_l1_1_0.dll__strdup
pop ecx
mov ebx, eax
jmp 0x435162
lea eax, [ebp - 0x30]
push eax
call fcn.0043480b
sub esp, 0xc
lea esi, [ebp - 0x20]
mov edi, esp
sub esp, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, eax
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0043489d
add esp, 0x20
test edx, edx
ja 0x435199
jb 0x435157
cmp eax, 0x3e8
ja 0x435199
push 1
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_Sleep]
mov esi, dword [ebp - 8]
push 1
push ebx
push esi
call dword [sym.imp.api_ms_win_core_kernel32_legacy_l1_1_0.dll_MoveFileExA]
test eax, eax
je 0x435122
test esi, esi
je 0x43517c
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test ebx, ebx
je 0x435188
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret
mov eax, dword [ebp - 8]
test eax, eax
je 0x4351a8
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
test ebx, ebx
je 0x4351b4
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
pop ecx
xor eax, eax
inc eax
jmp 0x43518a

Function at 0x4372c9
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x408
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ecx + 0xc]
xor ebx, ebx
mov ecx, dword [ecx + 0xc98]
inc ecx
cmp byte [ecx], bl
jne 0x437330
push 0x401
lea eax, [ebp - 0x408]
mov byte [ebp - 0x408], bl
push eax
call dword [sym.imp.WS2_32.dll_gethostname]
mov byte [ebp - 8], bl
test eax, eax
jne 0x43732b
lea eax, [ebp - 0x408]
push 0x2e
push eax
call fcn.00451a20
pop ecx
pop ecx
test eax, eax
je 0x437323
mov byte [eax], bl
lea ecx, [ebp - 0x408]
jmp 0x437330
mov ecx, str.localhost
push 3
lea eax, [esi + 0x4a8]
xor edx, edx
push ebx
push eax
call fcn.00412813
mov ecx, dword [ebp - 4]
add esp, 0xc
xor ecx, ebp
pop esi
pop ebx
call fcn.00450ca6
leave
ret
Function at 0x4386b6
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0xc]
mov edi, dword [eax + 0x450]
lea eax, [ebp - 0x8c]
push eax
mov dword [ebp - 0x8c], 0x80
lea eax, [ebp - 0x88]
push eax
mov eax, dword [edi + 0x13c]
push 0
add eax, 4
push eax
push dword [edi + 0x148]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp dword [edi + 0x130], 0
mov dword [edi + 0x134], eax
jne 0x438741
push dword [ebp - 0x8c]
lea eax, [ebp - 0x88]
push eax
lea eax, [edi + 0xb0]
push eax
call fcn.00452780
mov eax, dword [ebp - 0x8c]
add esp, 0xc
mov dword [edi + 0x130], eax
mov esi, dword [edi + 0x134]
cmp esi, 4
jge 0x438771
push str.Received_too_short_packet
push ebx
call fcn.0041d6ad
pop ecx
pop ecx
mov dword [edi + 0xc], 7
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret
mov edx, dword [edi + 0x148]
movzx eax, byte [edx]
movzx ecx, byte [edx + 1]
shl eax, 8
or ecx, eax
mov dword [edi + 0xc], ecx
sub ecx, 1
je 0x4388ab
sub ecx, 1
je 0x4388ab
sub ecx, 1
je 0x438829
sub ecx, 1
je 0x4388be
sub ecx, 1
je 0x4387d1
sub ecx, 1
jne 0x4388ab
lea eax, [esi - 2]
add edx, 2
push eax
mov ecx, edi
call fcn.004376af
pop ecx
test eax, eax
je 0x4388be
jmp 0x438762
movzx ecx, byte [edx + 2]
lea eax, [edx + 4]
mov dword [ebp - 0x90], eax
add esi, 0xfffffffc
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
lea eax, [edx + 4]
push esi
push 0
push eax
mov dword [edi + 8], ecx
call fcn.004533b0
mov edx, eax
add esp, 0xc
sub edx, dword [ebp - 0x90]
mov ecx, esi
test eax, eax
cmovne ecx, edx
cmp ecx, esi
jae 0x4388be
push dword [ebp - 0x90]
push str.TFTP_error:__s
push ebx
call fcn.0041d632
jmp 0x4388bb
cmp esi, 4
jle 0x4388be
movzx ecx, byte [edx + 2]
movzx eax, byte [edx + 3]
shl ecx, 8
or ecx, eax
movzx eax, word [edi + 0x144]
inc eax
movzx eax, ax
cmp eax, ecx
jne 0x4388be
add esi, 0xfffffffc
je 0x43887b
lea eax, [edx + 4]
mov ecx, ebx
xor edx, edx
push esi
push eax
inc edx
call fcn.0041da02
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x43887b
push 5
pop edx
mov ecx, edi
call fcn.004383a8
mov eax, esi
jmp 0x438762
mov eax, dword [edi + 0x134]
sub eax, 4
cdq
add dword [ebx + 0x90], eax
mov eax, dword [ebx + 0x90]
adc dword [ebx + 0x94], edx
mov ecx, dword [ebx + 0x94]
mov dword [ebx + 0x768], eax
mov dword [ebx + 0x76c], ecx
jmp 0x4388be
push str.Internal_error:_Unexpected_packet
push 0x45fe94
push ebx
call fcn.0041d6ad
add esp, 0xc
mov ecx, ebx
call fcn.00430211
test eax, eax
je 0x438760
push 5
pop edx
mov ecx, edi
call fcn.004383a8
push 0x2a
pop eax
jmp 0x438762
Function at 0x43a10a
Capabilities:
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x46f008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
or esi, 0xffffffff
lea ecx, [ebp - 0x90]
push ecx
lea ecx, [ebp - 0x88]
mov ebx, dword [edi + 0xc]
push ecx
mov eax, dword [ebx + 0x154]
push eax
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x90], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x43a17d
lea eax, [ebp - 0x90]
mov dword [ebp - 0x90], 0x80
push eax
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x8c]
call dword [sym.imp.WS2_32.dll_accept]
mov esi, eax
push dword [ebp - 0x8c]
mov edx, ebx
mov ecx, edi
call fcn.0041f3fc
pop ecx
cmp esi, 0xffffffff
jne 0x43a1a7
push str.Error_accept__ing_server_connect
push edi
call fcn.0041d6ad
pop ecx
pop ecx
push 0x1e
pop eax
jmp 0x43a232
push str.Connection_accepted_from_server
push edi
call fcn.0041d632
pop ecx
pop ecx
lea eax, [ebp - 0x8c]
mov byte [ebx + 0x27d], 0
push eax
push 0x8004667e
push esi
mov dword [ebx + 0x154], esi
mov dword [ebp - 0x8c], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov byte [ebx + 0x290], 1
cmp dword [edi + 0x1b8], 0
je 0x43a230
mov dl, 1
mov ecx, edi
call fcn.00419622
push 1
push esi
mov esi, dword [edi + 0x1b8]
mov ecx, esi
push dword [edi + 0x1bc]
call dword [0x4553fc]
call esi
add esp, 0xc
xor dl, dl
mov ecx, edi
mov esi, eax
call fcn.00419622
test esi, esi
je 0x43a230
mov edx, ebx
call fcn.0043a056
push 0x2a
jmp 0x43a1a1
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00450ca6
leave
ret
Function at 0x43c0d5
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, ecx
lea eax, [edx - 0xc8]
push edi
xor edi, edi
mov ebx, dword [esi + 0xc]
cmp eax, 0x64
jb 0x43c0ff
push str.Couldnt_set_desired_mode
push esi
call fcn.0041d6ad
pop ecx
pop ecx
push 0x11
pop eax
jmp 0x43c155
cmp edx, 0xc8
je 0x43c116
push edx
push str.Got_a__03d_response_code_instead_of_the_assumed_200
push esi
call fcn.0041d632
add esp, 0xc
mov eax, dword [ebp + 8]
cmp eax, 0x13
jne 0x43c129
mov edx, ebx
mov ecx, esi
call fcn.0043b227
jmp 0x43c151
cmp eax, 0x14
jne 0x43c137
mov ecx, esi
call fcn.0043b26f
jmp 0x43c151
cmp eax, 0x15
jne 0x43c140
push 0xd
jmp 0x43c147
cmp eax, 0x16
jne 0x43c153
push 0xe
mov dl, 1
mov ecx, esi
call fcn.0043b696
pop ecx
mov edi, eax
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x43e886
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
mov byte [ebp - 4], 0xff
mov ecx, dword [ebp + 8]
mov ebx, edx
push 0
mov byte [ebp - 2], cl
lea ecx, [ebp - 4]
mov eax, dword [esi + 0xc]
push 3
push ecx
mov byte [ebp - 3], bl
push dword [eax + 0x150]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x43e8cd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push esi
call fcn.0041d6ad
add esp, 0xc
push dword [ebp + 8]
mov edx, str.SENT
mov ecx, esi
push ebx
call fcn.0043e7a0
pop ecx
pop ecx
pop esi
pop ebx
leave
ret
Function at 0x43f42a
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 0x134]
mov dword [ebp - 8], eax
cmp edx, 0x1f
jne 0x43f579
lea eax, [ebx + 0x1cb4]
lea esi, [ebx + 0x1eb4]
mov dword [esi], eax
cmp eax, esi
jae 0x43f475
mov byte [eax], 0xff
inc eax
mov dword [esi], eax
cmp eax, esi
jae 0x43f475
mov byte [eax], 0xfa
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43f475
mov byte [eax], dl
inc dword [esi]
movzx eax, word [ebx + 0x1ca8]
push eax
call dword [sym.imp.WS2_32.dll_htons]
movzx eax, ax
mov dword [ebp - 4], eax
movzx eax, word [ebx + 0x1caa]
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov edx, dword [ebp - 4]
movzx ecx, ax
mov eax, dword [esi]
cmp eax, esi
jae 0x43f4df
mov byte [eax], dl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43f4df
mov byte [eax], dh
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43f4df
mov byte [eax], cl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43f4df
shr ecx, 8
mov byte [eax], cl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43f4df
mov byte [eax], 0xff
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43f4df
mov byte [eax], 0xf0
mov eax, dword [esi]
inc eax
mov dword [ebx + 0x1eb8], eax
lea ecx, [ebx + 0x1cb4]
sub eax, ecx
mov dword [esi], ecx
sub eax, 2
mov ecx, edi
push eax
lea eax, [ebx + 0x1cb6]
push eax
push 0x3e
pop edx
call fcn.0043eb8a
mov esi, dword [ebp - 8]
lea eax, [ebx + 0x1cb4]
pop ecx
pop ecx
push 0
push 3
push eax
push dword [esi + 0x150]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x43f539
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push edi
call fcn.0041d6ad
add esp, 0xc
push 4
lea edx, [ebx + 0x1cb7]
mov ecx, edi
call fcn.0043f8fd
pop ecx
push 0
push 2
lea eax, [ebx + 0x1cbb]
push eax
push dword [esi + 0x150]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x43f579
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push edi
call fcn.0041d6ad
add esp, 0xc
pop edi
pop esi
pop ebx
leave
ret