joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4067e0
Capabilities:
Get common file path

Disassembly:
push ecx
push ebp
push esi
push 0x548c98
xor ebp, ebp
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x4067fa
pop esi
pop ebp
pop ecx
ret
push ebx
push edi
push str.LoadLibraryExA
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebx, dword [esp + 0x18]
mov edi, eax
push 0x548c84
push ebx
mov dword [esp + 0x18], edi
call fcn.0050bf10
add esp, 8
test eax, eax
je 0x406846
test edi, edi
je 0x406837
push 8
push 0
push ebx
call edi
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
push ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
test edi, edi
je 0x40686c
push str.AddDllDirectory
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40686c
push 0x800
push 0
push ebx
call edi
pop edi
pop ebx
pop esi
mov ebp, eax
pop ebp
pop ecx
ret
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, eax
test edi, edi
je 0x406920
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406885
sub eax, edx
lea eax, [eax + edi + 1]
push eax
call dword [0x58e0bc]
mov esi, eax
add esp, 4
test esi, esi
je 0x406916
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x406916
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4068b3
sub eax, edx
mov ecx, 0x5c
mov word [eax + esi], cx
mov eax, esi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4068d0
sub eax, edx
lea edx, [eax + esi]
mov ecx, ebx
sub edx, ebx
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x4068e0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40690d
push 8
push 0
push esi
call eax
push esi
mov ebp, eax
call dword [0x58e0c0]
add esp, 4
pop edi
pop ebx
pop esi
mov eax, ebp
pop ebp
pop ecx
ret
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebp, eax
push esi
call dword [0x58e0c0]
add esp, 4
pop edi
pop ebx
pop esi
mov eax, ebp
pop ebp
pop ecx
ret

Function at 0x406930
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x190
test byte [esp + 0x194], 2
je 0x406973
lea eax, [esp]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x406967
mov eax, dword [esp]
cmp al, 2
jne 0x406961
shr eax, 8
cmp al, 2
je 0x406973
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, 2
add esp, 0x190
ret
call fcn.0041afd0
test eax, eax
jne 0x4069cf
push str.iphlpapi.dll
call fcn.004067e0
add esp, 4
mov dword [0x593c50], eax
test eax, eax
je 0x4069a7
push str.if_nametoindex
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4069a7
mov dword [0x593c54], eax
push 3
push 2
push 0
push 6
call fcn.0041b1a0
add esp, 0x10
neg eax
sbb eax, eax
neg eax
push 0x596800
mov dword [0x596808], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xor eax, eax
add esp, 0x190
ret
Function at 0x40d960
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
mov esi, dword [esp + 0x30]
mov eax, dword [esi + 0x78]
push edi
mov dword [esp + 0x34], eax
test eax, eax
je 0x40db35
lea eax, [esp + 0x20]
push eax
call fcn.0041adc0
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov ebp, dword [eax]
mov ebx, dword [eax + 8]
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
add esp, 4
push 0
push 0x3e8
push eax
push edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
call fcn.0050b3b0
add ebp, eax
adc dword [esp + 0x14], edx
imul eax, eax, 0x3e8
sub edi, eax
imul edi, edi, 0x3e8
add ebx, edi
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebx
cmp ebx, 0xf4240
jl 0x40d9ec
add ebp, 1
adc dword [esp + 0x14], 0
sub ebx, 0xf4240
mov dword [esp + 0x10], ebp
mov dword [esp + 0x18], ebx
mov eax, dword [esi + 0xf60]
mov edi, dword [esp + 0x40]
lea ecx, [esi + 0xf60]
test eax, eax
je 0x40da1c
mov edx, dword [eax]
cmp dword [edx + 0x20], edi
je 0x40da10
mov eax, dword [eax + 8]
test eax, eax
jne 0x40da00
jmp 0x40da1c
push 0
push eax
push ecx
call fcn.004372f0
add esp, 0xc
mov ecx, edi
lea eax, [esp + 0x10]
mov edx, esi
call fcn.0040d8b0
mov eax, dword [esi + 0xf28]
or eax, dword [esi + 0xf2c]
jne 0x40da43
cmp dword [esi + 0xf30], eax
je 0x40dacd
mov ecx, dword [esi + 0xf28]
mov edx, dword [esi + 0xf2c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esi + 0xf30]
mov dword [eax + 4], edx
mov edx, dword [esi + 0xf34]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], ecx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
call fcn.0041ae60
add esp, 0x20
test edx, edx
jg 0x40db35
jl 0x40da9d
test eax, eax
jne 0x40db35
mov edi, dword [esp + 0x34]
mov edx, dword [edi + 0x5c]
lea eax, [edi + 0x5c]
push eax
lea ecx, [esi + 0xf38]
push ecx
push edx
call fcn.0043dca0
add esp, 0xc
test eax, eax
je 0x40dad1
push eax
push str.Internal_error_removing_splay_node___d_n
push esi
call fcn.0040ffc0
add esp, 0xc
jmp 0x40dad1
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov dword [esi + 0xf28], ebp
mov dword [esi + 0xf2c], eax
mov dword [esi + 0xf30], ebx
mov dword [esi + 0xf34], ecx
mov dword [esi + 0xf58], esi
mov eax, dword [edi + 0x5c]
mov ecx, dword [esi + 0xf28]
lea edx, [esi + 0xf38]
push edx
mov edx, dword [esi + 0xf2c]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esi + 0xf30]
mov dword [eax + 4], edx
mov edx, dword [esi + 0xf34]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.0043da80
add esp, 0x18
mov dword [edi + 0x5c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
Function at 0x40fe60
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push 0
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x40fea3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esp + 0x10]
xor ecx, ecx
cmp eax, 0x2733
sete cl
mov dword [edx], 0
mov eax, ecx
neg eax
sbb eax, eax
and eax, 0x19
add eax, 0x38
ret
mov ecx, dword [esp + 0x10]
mov dword [ecx], eax
xor eax, eax
ret

Function at 0x40ff20
Capabilities:
Write file on windows

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
xor edi, edi
cmp dword [esi + 0xbfc], edi
je 0x40ffb5
cmp dword [esi + 0x620], edi
je 0x40ff75
push 1
push esi
call fcn.0040dc60
mov eax, dword [esi + 0x5b4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esi + 0x620]
push edx
push eax
push esi
call ecx
push 0
push esi
mov edi, eax
call fcn.0040dc60
add esp, 0x24
mov eax, edi
pop edi
pop esi
ret
mov eax, dword [esp + 0x10]
test eax, eax
js 0x40ffb5
cmp eax, 2
jg 0x40ffb5
mov edx, dword [esi + 0x5b0]
push edx
push 1
lea eax, [eax + eax*2 + 0x549824]
push 2
push eax
call fcn.00504cde
mov ecx, dword [esi + 0x5b0]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push ecx
push 1
push edx
push eax
call fcn.00504cde
add esp, 0x20
mov eax, edi
pop edi
pop esi
ret

Function at 0x410090
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x104
push esi
mov esi, dword [esp + 0x10c]
cmp dword [esi + 0xbfc], 0
jne 0x4100b4
cmp dword [esi + 0x5b8], 0
je 0x410190
mov ecx, dword [esp + 0x110]
lea eax, [esp + 0x114]
push eax
push ecx
lea edx, [esp + 0xc]
push 0x100
push edx
call fcn.00419960
lea eax, [esp + 0x14]
add esp, 0x10
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4100e0
sub eax, edx
mov edx, dword [esi + 0x5b8]
push edi
mov edi, eax
test edx, edx
je 0x410117
cmp dword [esi + 0x1230], 0
jne 0x410117
lea ecx, [esp + 8]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x410103
mov dword [esi + 0x1230], 1
mov byte [esp + edi + 8], 0xa
inc edi
cmp dword [esi + 0xbfc], 0
je 0x41018f
cmp dword [esi + 0x620], 0
je 0x410163
push 1
push esi
call fcn.0040dc60
mov eax, dword [esi + 0x5b4]
mov edx, dword [esi + 0x620]
push eax
push edi
lea ecx, [esp + 0x18]
push ecx
push 0
push esi
call edx
push 0
push esi
call fcn.0040dc60
add esp, 0x24
pop edi
pop esi
add esp, 0x104
ret
mov eax, dword [esi + 0x5b0]
push eax
push 1
push 2
push 0x549824
call fcn.00504cde
mov ecx, dword [esi + 0x5b0]
push ecx
push 1
lea edx, [esp + 0x20]
push edi
push edx
call fcn.00504cde
add esp, 0x20
pop edi
pop esi
add esp, 0x104
ret
Function at 0x410490
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov edx, dword [ebx + 0x5f0]
push ebp
mov ebp, dword [ebx + eax*4 + 0x420]
mov ecx, eax
add ecx, ecx
push esi
lea esi, [ebx + ecx*8 + 0x448]
push edi
mov edi, dword [esi + 4]
sub edi, dword [esi + 8]
test byte [edx + 0x40], 3
je 0x410532
cmp dword [ebx + eax*4 + 0x438], 0x4101a0
jne 0x410532
cmp dword [esi], 0
je 0x4104cd
test edi, edi
je 0x410532
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push ebp
call fcn.00437830
add esp, 0x14
cmp eax, 0xffffffff
je 0x410532
test al, 1
je 0x410532
cmp dword [esi], 0
jne 0x41051b
mov eax, dword [ebx]
mov eax, dword [eax + 0x97c]
add eax, eax
push eax
mov dword [esi + 4], eax
call dword [0x58e0bc]
xor ecx, ecx
add esp, 4
mov dword [esi], eax
cmp eax, ecx
jne 0x410512
pop edi
pop esi
lea eax, [ecx + 0x1b]
pop ebp
ret
mov edi, dword [esi + 4]
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov ecx, dword [esi]
add ecx, dword [esi + 8]
push 0
push edi
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x410532
add dword [esi + 8], eax
pop edi
pop esi
xor eax, eax
pop ebp
ret

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

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x100
push ebx
mov ebx, dword [esp + 0x108]
push esi
mov esi, dword [ebx + eax*4 + 0x420]
call fcn.00410490
test eax, eax
je 0x41057c
mov eax, dword [esp + 0x11c]
pop esi
mov dword [eax], 0x1b
or eax, 0xffffffff
pop ebx
add esp, 0x100
ret
mov ecx, dword [esp + 0x118]
mov edx, dword [esp + 0x114]
push edi
push 0
push ecx
push edx
push esi
call dword [sym.imp.WS2_32.dll_send]
mov edi, dword [esp + 0x120]
mov esi, eax
mov dword [edi], 0
cmp esi, 0xffffffff
jne 0x410600
push ebp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, eax
cmp ebp, 0x2733
jne 0x4105d0
pop ebp
xor esi, esi
mov dword [edi], 0x51
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x100
ret
push 0x100
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.00405770
mov ecx, dword [ebx]
push eax
push str.Send_failure:__s
push ecx
call fcn.00410090
mov edx, dword [ebx]
add esp, 0x18
mov dword [edx + 0xec4], ebp
mov dword [edi], 0x37
pop ebp
pop edi
mov eax, esi
pop esi
pop ebx
add esp, 0x100
ret

Function at 0x4142e0
Capabilities:
Hash data using djb2

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + eax]
mov ebx, 0x1505
cmp esi, edi
jae 0x41430e
movzx eax, byte [esi]
push eax
call fcn.00418b20
mov edx, ebx
shl edx, 5
movsx ecx, al
add ebx, edx
inc esi
add esp, 4
xor ebx, ecx
cmp esi, edi
jb 0x4142f1
pop edi
pop esi
movzx eax, bl
pop ebx
ret

Function at 0x414320
Capabilities:
Encode data using xor
Hash data using djb2

Disassembly:
sub esp, 0x14
push esi
mov esi, eax
test esi, esi
je 0x41436e
lea eax, [esp + 4]
push eax
push esi
push 2
call fcn.0043e9e0
add esp, 0xc
test eax, eax
jne 0x41436e
lea ecx, [esp + 8]
push ecx
push esi
push 0x17
call fcn.0043e9e0
add esp, 0xc
test eax, eax
jne 0x41436e
lea edx, [esp + 4]
push edx
call fcn.00414280
add esp, 4
mov ecx, eax
mov eax, dword [esp + 4]
pop esi
add esp, 0x14
jmp fcn.004142e0
xor eax, eax
pop esi
add esp, 0x14
ret
Function at 0x416430
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x14
xor eax, eax
cmp dword [esi + 0xc34], eax
push 4
lea ecx, [esp + 4]
push ecx
setne al
push 8
push 0xffff
push edi
mov dword [esp + 0x14], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x41646e
push edi
push str.Failed_to_set_SO_KEEPALIVE_on_fd__d_n
push esi
call fcn.0040ffc0
add esp, 0xc
add esp, 0x14
ret
mov edx, dword [esi + 0xb48]
push edx
mov dword [esp + 0xc], 1
call fcn.004131e0
imul eax, eax, 0x3e8
mov dword [esp + 4], eax
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xb4c]
push eax
call fcn.004131e0
imul eax, eax, 0x3e8
add esp, 8
push 0
push 0
lea ecx, [esp + 0xc]
push ecx
push 0
push 0
push 0xc
lea edx, [esp + 0x20]
push edx
push 0x98000004
push edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], eax
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x4164e7
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
push str.Failed_to_set_SIO_KEEPALIVE_VALS_on_fd__d:__d_n
push esi
call fcn.0040ffc0
add esp, 0x10
add esp, 0x14
ret
Function at 0x416dc0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
sub esp, 0x184
push esi
push 0x80
lea eax, [esp + 0xc]
push 0
push eax
mov dword [esp + 0x10], 0x80
call fcn.005071f0
mov eax, dword [esp + 0x19c]
add esp, 0xc
lea ecx, [esp + 4]
push ecx
lea edx, [esp + 0xc]
push edx
push eax
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x416e3b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push 0x100
lea ecx, [esp + 0x8c]
mov esi, eax
push ecx
push esi
call fcn.00405770
mov edx, dword [esp + 0x198]
push eax
mov eax, dword [edx]
push esi
push str.getsockname___failed_with_errno__d:__s
push eax
call fcn.00410090
add esp, 0x1c
pop esi
add esp, 0x184
ret
mov eax, dword [esp + 4]
push ebx
mov ebx, dword [esp + 0x190]
lea ecx, [ebx + 0x3d4]
push ecx
lea edx, [ebx + 0x3a4]
push edx
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.00416c10
add esp, 0x10
test eax, eax
jne 0x416ea0
push edi
call fcn.00505d44
mov esi, eax
call fcn.00505d44
push 0x100
lea edx, [esp + 0x94]
mov edi, eax
mov eax, dword [esi]
push edx
push eax
call fcn.00405770
mov ecx, dword [edi]
mov edx, dword [ebx]
push eax
push ecx
push str.ssloc_inet_ntop___failed_with_errno__d:__s
push edx
call fcn.00410090
add esp, 0x1c
pop edi
pop ebx
pop esi
add esp, 0x184
ret

Function at 0x417080
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x104
push esi
mov esi, dword [eax]
push 4
lea ecx, [esp + 8]
push ecx
push 1
push 6
push edx
mov dword [esp + 0x18], 1
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x4170cc
push 0x100
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
call fcn.00405770
push eax
push str.Could_not_set_TCP_NODELAY:__s_n
push esi
call fcn.0040ffc0
add esp, 0x18
pop esi
add esp, 0x104
ret

Function at 0x417220
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov eax, dword [esp + 4]
cmp dword [eax + 0x474], 0
je 0x41723d
push eax
call fcn.004077d0
add esp, 4
test eax, eax
jne 0x41725d
xor eax, eax
ret
mov eax, dword [eax + 0x420]
cmp eax, 0xffffffff
je 0x41723a
push 2
push 1
lea ecx, [esp + 0xc]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jne 0x41725d
ret
mov eax, 1
ret
Function at 0x41a570
Capabilities:
Resolve dns

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0xc]
push ecx
mov ecx, dword [esp + 0x18]
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
push edx
push eax
push ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov dword [esp + 4], eax
test eax, eax
jne 0x41a729
push esi
push edi
mov edi, dword [esp + 0x14]
test edi, edi
je 0x41a706
push ebx
push ebp
mov eax, dword [edi + 0x14]
test eax, eax
je 0x41a5de
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41a5d0
sub eax, edx
lea ebx, [eax + 1]
jmp 0x41a5e0
xor ebx, ebx
mov eax, dword [edi + 4]
cmp eax, 2
jne 0x41a5ed
lea ebp, [eax + 0xe]
jmp 0x41a5f9
cmp eax, 0x17
jne 0x41a693
lea ebp, [eax + 5]
cmp dword [edi + 0x18], 0
je 0x41a693
mov eax, dword [edi + 0x10]
test eax, eax
je 0x41a693
cmp eax, ebp
jb 0x41a693
lea edx, [ebx + ebp + 0x20]
push edx
call dword [0x58e0bc]
mov esi, eax
xor eax, eax
add esp, 4
cmp esi, eax
je 0x41a6a0
mov ecx, dword [edi]
mov dword [esi], ecx
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
mov ecx, dword [edi + 8]
mov dword [esi + 8], ecx
mov edx, dword [edi + 0xc]
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], eax
lea eax, [esi + 0x20]
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], ebp
mov dword [esi + 0x18], eax
mov ecx, dword [edi + 0x18]
push ebp
push ecx
push eax
call fcn.00506ba0
add esp, 0xc
test ebx, ebx
je 0x41a679
mov eax, dword [esi + 0x18]
add eax, ebp
mov dword [esi + 0x14], eax
mov ecx, dword [edi + 0x14]
push ebx
push ecx
push eax
call fcn.00506ba0
add esp, 0xc
cmp dword [esp + 0x10], 0
jne 0x41a684
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x41a68f
mov dword [eax + 0x1c], esi
mov dword [esp + 0x18], esi
mov edi, dword [edi + 0x1c]
test edi, edi
jne 0x41a5c3
jmp 0x41a6a8
mov dword [esp + 0x14], 8
mov eax, dword [esp + 0x1c]
pop ebp
pop ebx
test eax, eax
je 0x41a6b9
push eax
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
cmp dword [esp + 0xc], 0
je 0x41a6ff
mov eax, dword [esp + 8]
test eax, eax
je 0x41a6e3
jmp 0x41a6d0
mov esi, dword [eax + 0x1c]
push eax
call dword [0x58e0c0]
add esp, 4
mov eax, esi
test esi, esi
jne 0x41a6d0
mov eax, dword [esp + 0x28]
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
pop edi
mov dword [eax], edx
mov eax, dword [esp + 8]
pop esi
add esp, 0x10
ret
cmp dword [esp + 8], 0
jne 0x41a719
push 0x2af9
mov dword [esp + 0x10], 0x2af9
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 8]
pop edi
mov dword [eax], edx
mov eax, dword [esp + 8]
pop esi
add esp, 0x10
ret
Function at 0x41aab0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration
Start tcp server

Disassembly:
sub esp, 0x30
push ebx
push esi
mov esi, dword [sym.imp.WS2_32.dll_socket]
push 6
push 1
push 2
mov dword [esp + 0x18], 0x10
mov dword [esp + 0x14], 1
call esi
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x41aae2
pop esi
or eax, eax
pop ebx
add esp, 0x30
ret
xor eax, eax
push ebp
mov dword [esp + 0x14], eax
push edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, 2
push 0x7f000001
mov word [esp + 0x1c], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov edi, dword [esp + 0x50]
push 4
lea edx, [esp + 0x14]
push edx
push 4
push 0xffff
xor ecx, ecx
push ebx
mov dword [esp + 0x30], eax
mov word [esp + 0x2e], cx
mov dword [edi + 4], 0xffffffff
mov dword [edi], 0xffffffff
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x41ac6a
push 0x10
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x41ac6a
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
push ebx
call dword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x41ac6a
push 1
push ebx
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x41ac6a
push 0
push 1
push 2
call esi
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x41ac6a
push 0x10
lea ecx, [esp + 0x1c]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x41ac6a
push 0
push 0
push ebx
call dword [sym.imp.WS2_32.dll_accept]
mov dword [edi + 4], eax
cmp eax, 0xffffffff
je 0x41ac6a
push edi
push 0x572fd4
lea edx, [esp + 0x30]
push 0xc
push edx
call fcn.004199c0
lea eax, [esp + 0x38]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41abe5
mov ecx, dword [edi]
sub eax, edx
push 0
mov esi, eax
push esi
lea eax, [esp + 0x30]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_send]
cmp eax, esi
jne 0x41ac6a
mov eax, dword [edi + 4]
push 0
push 0xc
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, esi
jne 0x41ac6a
mov eax, esi
lea ecx, [esp + 0x34]
lea ebp, [esp + 0x28]
cmp esi, 4
jb 0x41ac45
jmp 0x41ac30
mov edx, dword [ebp]
cmp edx, dword [ecx]
jne 0x41ac6a
sub eax, 4
add ecx, 4
add ebp, 4
cmp eax, 4
jae 0x41ac30
test eax, eax
je 0x41ac89
mov dl, byte [ecx]
cmp dl, byte [ebp]
jne 0x41ac6a
cmp eax, 1
jbe 0x41ac89
mov dl, byte [ecx + 1]
cmp dl, byte [ebp + 1]
jne 0x41ac6a
cmp eax, 2
jbe 0x41ac89
mov al, byte [ecx + 2]
cmp al, byte [ebp + 2]
je 0x41ac89
mov esi, dword [sym.imp.WS2_32.dll_closesocket]
push ebx
call esi
mov ecx, dword [edi]
push ecx
call esi
mov edx, dword [edi + 4]
push edx
call esi
pop edi
pop ebp
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x30
ret
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0x30
ret
Function at 0x41ad50
Capabilities:
Create thread

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
push 0
push 0
push eax
push ecx
push 0
push 0
call fcn.00505376
add esp, 0x18
test eax, eax
je 0x41ad73
cmp eax, 0xffffffff
jne 0x41ad75
xor eax, eax
ret

Function at 0x41afb0
Capabilities:
Create udp socket

Disassembly:
mov eax, dword [esp + 4]
cmp dword [eax + 0x5f8], 2
jne 0x41afc6
mov dword [esp + 4], eax
jmp fcn.0041af60
mov eax, 1
ret
Function at 0x41dc50
Capabilities:
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
sub esp, 0x14
push esi
push 0
push ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 4
mov dword [esp + 0x1c], esi
call fcn.005071f0
mov eax, dword [esp + 0x2c]
add esp, 0xc
push 0xf0000040
push eax
push 0
push 0
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
test eax, eax
je 0x41dd30
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 4]
lea edx, [esp]
push edx
push 0
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x41dd11
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp]
push 0
push edx
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x41dd11
mov ecx, dword [esp]
push ebp
mov ebp, dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
push 0
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
push 4
push ecx
call ebp
test eax, eax
je 0x41dd10
cmp esi, dword [esp + 0xc]
jb 0x41dd10
mov eax, dword [esp + 4]
push 0
lea edx, [esp + 0x18]
push edx
push ebx
push 2
push eax
call ebp
pop ebp
mov eax, dword [esp]
test eax, eax
je 0x41dd1f
push eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [esp + 4]
test eax, eax
je 0x41dd30
push 0
push eax
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
add esp, 0x14
ret

Function at 0x4201a0
Capabilities:
Query environment variable

Disassembly:
push ebx
push ebp
push esi
xor ebp, ebp
push edi
lea esi, [ebp + 1]
push esi
push ebp
call dword [0x58e0c4]
mov edi, eax
add esp, 8
test edi, edi
je 0x420168
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
push esi
push edi
push eax
mov ebp, edi
mov ebx, esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov esi, eax
test esi, esi
je 0x420180
cmp esi, ebx
je 0x420180
cmp esi, 0x8000
ja 0x420180
cmp esi, ebx
jb 0x420179
push esi
push edi
call dword [0x58e0c4]
mov edi, eax
add esp, 8
test edi, edi
jne 0x420130
push ebp
call dword [0x58e0c0]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
ret
push edi
call dword [0x58e0c0]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
jmp 0x420110
Function at 0x4251e0
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push str.Connected_for_receive
push 0x5496a8
push ecx
call fcn.0040ffc0
add esp, 0xc
mov eax, esi
mov dword [esi], 1
call fcn.004242b0
test eax, eax
jne 0x425210
mov eax, esi
jmp fcn.004246e0
ret