joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46065b
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x1c], eax
call fcn.00453795
and dword [ebp - 0x14], 0
cmp dword [0x4c20e0], 0
mov dword [ebp - 0x18], eax
jne 0x46070e
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, eax
test ebx, ebx
je 0x4607b6
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x4a7fcc
push ebx
call edi
test eax, eax
je 0x4607b6
mov esi, dword [sym.imp.KERNEL32.dll_EncodePointer]
push eax
call esi
push 0x4a7fbc
push ebx
mov dword [0x4c20e0], eax
call edi
push eax
call esi
push str.GetLastActivePopup
push ebx
mov dword [0x4c20e4], eax
call edi
push eax
call esi
push str.GetUserObjectInformationW
push ebx
mov dword [0x4c20e8], eax
call edi
push eax
call esi
mov dword [0x4c20f0], eax
test eax, eax
je 0x46070e
push str.GetProcessWindowStation
push ebx
call edi
push eax
call esi
mov dword [0x4c20ec], eax
mov eax, dword [0x4c20ec]
mov ecx, dword [ebp - 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, ecx
je 0x460767
cmp dword [0x4c20f0], ecx
je 0x460767
push eax
call esi
push dword [0x4c20f0]
mov edi, eax
call esi
mov ebx, eax
test edi, edi
je 0x460767
test ebx, ebx
je 0x460767
call edi
test eax, eax
je 0x46075e
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call ebx
test eax, eax
je 0x46075e
test byte [ebp - 8], 1
jne 0x460767
or dword [ebp + 0x10], 0x200000
jmp 0x46079a
mov eax, dword [0x4c20e4]
cmp eax, dword [ebp - 0x18]
je 0x46079a
push eax
call esi
test eax, eax
je 0x46079a
call eax
mov dword [ebp - 0x14], eax
test eax, eax
je 0x46079a
mov eax, dword [0x4c20e8]
cmp eax, dword [ebp - 0x18]
je 0x46079a
push eax
call esi
test eax, eax
je 0x46079a
push dword [ebp - 0x14]
call eax
mov dword [ebp - 0x14], eax
push dword [0x4c20e0]
call esi
test eax, eax
je 0x4607b6
push dword [ebp + 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push dword [ebp - 0x14]
call eax
jmp 0x4607b8
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0044de17
leave
ret
Function at 0x46a990
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x194
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x194]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x46a9e0
mov eax, dword [ebp - 0x194]
cmp al, 2
jne 0x46a9da
shr eax, 8
cmp al, 2
jne 0x46a9da
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov eax, 2
call fcn.0044de17
mov esp, ebp
pop ebp
ret
Function at 0x474c40
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
xor esi, esi
xor edi, edi
call fcn.00474ea0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
cmp dword [ebp + 8], esi
je 0x474c90
mov eax, dword [ebp + 0x14]
push eax
push ebx
call sym.miniweather.exe_curl_multi_perform
mov edi, eax
add esp, 8
cmp edi, 1
je 0x474c88
mov esi, dword [ebx + 4]
test esi, esi
je 0x474c88
push ebx
mov ecx, esi
call fcn.004739c0
mov esi, dword [esi]
add esp, 4
test esi, esi
jne 0x474c77
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xc], 0xffffffff
je 0x474d75
mov edx, dword [ebx + 0x28]
push 4
lea ecx, [ebp + 0xc]
push ecx
push edx
call fcn.0047b230
add esp, 0xc
test eax, eax
je 0x474d80
mov edi, dword [eax]
cmp dword [edi + 0x879c], 0xc0dedbad
je 0x474ccd
pop edi
mov eax, 4
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 8]
mov edx, dword [ebp + 0x10]
test ecx, ecx
je 0x474d07
test dl, 2
je 0x474cf0
mov eax, dword [ecx + 0x288]
test eax, eax
je 0x474cf0
cmp dword [eax], esi
je 0x474cf0
mov eax, dword [eax]
mov edi, dword [eax]
jmp 0x474d07
test dl, 1
je 0x474d07
mov eax, dword [ecx + 0x28c]
test eax, eax
je 0x474d07
cmp dword [eax], esi
je 0x474d07
mov ecx, dword [eax]
mov edi, dword [ecx]
mov eax, dword [edi + 8]
test eax, eax
je 0x474d20
mov ecx, dword [eax + 0x240]
test byte [ecx + 0x40], 8
jne 0x474d20
mov dword [eax + 0x4d0], edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
push edx
push eax
push ebx
mov esi, edi
call fcn.00473e00
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x474d20
mov eax, dword [edi + 8]
test eax, eax
je 0x474d57
mov ecx, dword [eax + 0x240]
test byte [ecx + 0x40], 8
jne 0x474d57
mov dword [eax + 0x4d0], 0
test esi, esi
jg 0x474d66
push ebx
mov ecx, edi
call fcn.004739c0
add esp, 4
xor edi, edi
call fcn.00474ea0
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], edx
jmp 0x474d80
xor eax, eax
mov dword [ebx + 0x60], eax
mov dword [ebx + 0x64], eax
lea ecx, [ecx]
test edi, edi
je 0x474dad
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
push edx
push eax
push ebx
mov esi, edi
call fcn.00473e00
mov esi, eax
add esp, 0xc
cmp esi, 0xffffffff
je 0x474d84
test esi, esi
jg 0x474dad
push ebx
mov ecx, edi
call fcn.004739c0
add esp, 4
mov edx, dword [ebx + 0x24]
mov eax, dword [ebp - 8]
lea ecx, [ebp - 4]
push ecx
mov ecx, dword [ebp - 0xc]
push edx
push eax
push ecx
call fcn.00495ca0
mov dword [ebx + 0x24], eax
mov eax, dword [ebp - 4]
add esp, 0x10
test eax, eax
je 0x474de9
mov edx, dword [ebp - 8]
mov edi, dword [eax + 0x14]
mov eax, dword [ebp - 0xc]
push ebx
push edx
push eax
call fcn.00472f10
add esp, 0xc
cmp dword [ebp - 4], 0
jne 0x474d80
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebp + 0x14]
pop edi
mov eax, esi
mov dword [edx], ecx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x475000
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
push 0
push eax
push ecx
push edx
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x475033
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
sub eax, 0x2733
neg eax
sbb eax, eax
and eax, 0xffffffe7
add eax, 0x51
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
xor eax, eax
pop ebp
ret

Function at 0x475170
Capabilities:
Write file on windows

Disassembly:
mov ecx, dword [esi + 0x1a8]
test ecx, ecx
je 0x47518b
mov edx, dword [esi + 0x134]
push edx
push edi
push ebx
push eax
push esi
call ecx
add esp, 0x14
ret
test eax, eax
js 0x4751bf
cmp eax, 2
jg 0x4751bf
mov ecx, dword [esi + 0x130]
push ecx
push 1
lea edx, [eax + eax*2 + 0x4ab3c0]
push 2
push edx
call fcn.0044f465
mov eax, dword [esi + 0x130]
push eax
push 1
push edi
push ebx
call fcn.0044f465
add esp, 0x20
xor eax, eax
ret

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

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + eax*4 + 0x154]
push edi
push 0
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_send]
mov ebx, dword [ebp + 0x18]
mov edi, eax
mov dword [ebx], 0
cmp edi, 0xffffffff
jne 0x47551c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp + 8], eax
cmp eax, 0x2733
jne 0x4754f1
pop edi
pop esi
mov dword [ebx], 0x51
xor eax, eax
pop ebx
pop ebp
ret
push eax
push esi
call fcn.0047ac30
push eax
mov eax, dword [esi]
push str.Send_failure:__s
push eax
call fcn.00475330
mov ecx, dword [esi]
mov edx, dword [ebp + 8]
mov dword [ecx + 0x85e4], edx
add esp, 0x14
mov dword [ebx], 0x37
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x477380
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
cmp dword [esi + 0x454], eax
push 4
lea ecx, [ebp - 0x14]
push ecx
setne al
push 8
push 0xffff
push edi
mov dword [ebp - 0x14], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x4773d3
push edi
push str.Failed_to_set_SO_KEEPALIVE_on_fd__d_n
push esi
call fcn.004752b0
add esp, 0xc
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x458]
push edx
mov dword [ebp - 0x10], 1
call fcn.00491ad0
imul eax, eax, 0x3e8
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x45c]
push eax
call fcn.00491ad0
imul eax, eax, 0x3e8
add esp, 8
push 0
push 0
lea ecx, [ebp - 0x18]
push ecx
push 0
push 0
push 0xc
lea edx, [ebp - 0x10]
push edx
push 0x98000004
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], eax
call dword [sym.imp.WS2_32.dll_WSAIoctl]
test eax, eax
je 0x477445
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.004752b0
add esp, 0x10
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
Function at 0x477a90
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x114
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
cmp dword [esi + 0x8c], 2
mov ebx, dword [esi]
mov dword [ebp - 0x108], esi
mov dword [ebp - 0x110], ebx
je 0x477c56
cmp dword [esi + 0x1d0], 0
push edi
jne 0x477c4c
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x10c]
push eax
lea ecx, [ebp - 0x104]
push ecx
push edi
mov dword [ebp - 0x10c], 0x80
call dword [sym.imp.WS2_32.dll_getpeername]
test eax, eax
je 0x477b27
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
push esi
call fcn.0047ac30
push eax
push edi
push str.getpeername___failed_with_errno__d:__s
push ebx
call fcn.00475330
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x10c]
push edx
lea eax, [ebp - 0x84]
push eax
push edi
mov dword [ebp - 0x10c], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x477b7a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
push esi
call fcn.0047ac30
push eax
push edi
push str.getsockname___failed_with_errno__d:__s
push ebx
call fcn.00475330
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
lea edi, [esi + 0xb8]
lea ebx, [esi + 0xe8]
lea esi, [ebp - 0x104]
mov dword [ebp - 0x114], edi
call fcn.00477a50
test eax, eax
jne 0x477bd7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x108]
mov esi, eax
push esi
push ecx
call fcn.0047ac30
mov edx, dword [ebp - 0x110]
push eax
push esi
push str.ssrem_inet_ntop___failed_with_errno__d:__s
push edx
call fcn.00475330
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x108]
mov esi, dword [ebp - 0x114]
lea edi, [eax + 0x58]
mov ecx, 0xb
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ebx, [eax + 0x11c]
lea edi, [eax + 0xec]
lea esi, [ebp - 0x84]
call fcn.00477a50
test eax, eax
jne 0x477c46
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebp - 0x108]
push esi
push eax
call fcn.0047ac30
mov ecx, dword [ebp - 0x110]
push eax
push esi
push str.ssloc_inet_ntop___failed_with_errno__d:__s
push ecx
call fcn.00475330
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x108]
push esi
call fcn.004779f0
add esp, 4
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0044de17
mov esp, ebp
pop ebp
ret
Function at 0x477c70
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [edi]
mov eax, dword [esi + 0x354]
push 4
lea ecx, [ebp - 4]
push ecx
push 1
push 6
push edx
mov dword [ebp - 4], eax
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x477cb6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.0047ac30
push eax
push str.Could_not_set_TCP_NODELAY:__s_n
push esi
call fcn.004752b0
add esp, 0x14
pop esi
mov esp, ebp
pop ebp
ret
push str.TCP_NODELAY_set_n
push esi
call fcn.004752b0
add esp, 8
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x477cd0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xac
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4c2130]
mov dword [ebp - 0xa4], 0x4020
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xac], 4
test eax, eax
jne 0x477d7a
push 0x9c
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00458dc0
add esp, 0xc
push 3
push 2
push 0
push 0
mov dword [ebp - 0xa0], 0x9c
mov dword [ebp - 0x9c], 6
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
push 2
lea ecx, [ebp - 0xa0]
push ecx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
test eax, eax
je 0x477d6e
mov dword [0x4c2130], 2
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
mov dword [0x4c2130], 1
jmp 0x477d7f
cmp eax, 2
je 0x477dcf
push esi
mov esi, dword [ebp + 8]
lea edx, [ebp - 0xac]
push edx
lea eax, [ebp - 0xa8]
push eax
push 0x1001
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_getsockopt]
test eax, eax
jne 0x477db4
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0xa4]
jg 0x477dce
push 4
lea edx, [ebp - 0xa4]
push edx
push 0x1001
push 0xffff
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 0x5a8]
test esi, esi
je 0x477e4b
mov eax, dword [edi + 0x44]
test eax, eax
je 0x477e4b
push 0x477de0
lea ecx, [ebp - 8]
mov dword [ebp - 8], esi
mov dword [ebp - 4], 0
mov edx, dword [eax + 0x30]
push ecx
push edx
call fcn.0048fb20
add esp, 0xc
cmp dword [ebp - 4], 0
jne 0x477e54
mov dword [edi + 0x5a8], 0
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x477e5d
mov dword [eax], esi
cmp dword [esi + 0x17c], 0
mov edi, dword [esi + 0x154]
jne 0x477e4b
push 2
push 1
lea eax, [ebp + 0xb]
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
je 0x477e4b
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4787c0
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ebx
xor ebx, ebx
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp + 8]
mov dword [eax], ebx
mov eax, dword [ebp + 0xc]
push edx
push eax
push ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov dword [ebp - 8], eax
cmp eax, ebx
jne 0x478956
push edi
mov edi, dword [ebp - 0x10]
cmp edi, ebx
je 0x478938
push esi
cmp dword [edi + 4], 2
jne 0x4788bc
cmp dword [edi + 0x18], ebx
je 0x4788bc
mov eax, dword [edi + 0x10]
cmp eax, ebx
jbe 0x4788bc
cmp eax, 0x10
jb 0x4788bc
push 0x20
call dword [0x4bf394]
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4788c9
mov edx, dword [edi]
mov dword [esi], edx
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov ecx, dword [edi + 8]
mov dword [esi + 8], ecx
mov edx, dword [edi + 0xc]
push 0x10
mov dword [esi + 0xc], edx
mov dword [esi + 0x10], 0x10
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x1c], ebx
call dword [0x4bf394]
add esp, 4
mov dword [esi + 0x18], eax
cmp eax, ebx
je 0x4788d2
mov ecx, dword [edi + 0x18]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [edi + 0x14]
cmp eax, ebx
je 0x4788a7
push eax
call dword [0x4bf3a0]
add esp, 4
mov dword [esi + 0x14], eax
cmp eax, ebx
je 0x4788e5
cmp dword [ebp - 4], ebx
jne 0x4788af
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0xc]
cmp eax, ebx
je 0x4788b9
mov dword [eax + 0x1c], esi
mov dword [ebp - 0xc], esi
mov edi, dword [edi + 0x1c]
cmp edi, ebx
jne 0x478802
jmp 0x478900
mov dword [ebp - 8], 8
jmp 0x478900
push esi
mov dword [ebp - 8], 8
call dword [0x4bf398]
add esp, 4
jmp 0x478900
mov edx, dword [esi + 0x18]
push edx
mov dword [ebp - 8], 8
call dword [0x4bf398]
push esi
call dword [0x4bf398]
add esp, 8
mov eax, dword [ebp - 0x10]
pop esi
cmp eax, ebx
je 0x47890f
push eax
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
cmp dword [ebp - 8], ebx
je 0x478933
mov eax, dword [ebp - 4]
push eax
call fcn.00478770
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
add esp, 4
mov ecx, ebx
pop edi
mov dword [ebp - 4], ebx
mov dword [edx], ecx
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 4], ebx
jne 0x47894a
push 0x2af9
mov dword [ebp - 8], 0x2af9
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp - 8]
mov dword [edx], ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x47a110
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
push 0
push 0
push eax
push ecx
push 0
push 0
call fcn.0044e8a3
add esp, 0x18
test eax, eax
je 0x47a134
cmp eax, 0xffffffff
jne 0x47a136
xor eax, eax
pop ebp
ret
Function at 0x483810
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push str.Connected_for_receive
push 0x4ab5d0
push ecx
call fcn.004752b0
add esp, 0xc
mov eax, esi
mov dword [esi], 1
call fcn.00482990
test eax, eax
jne 0x483844
mov eax, esi
pop ebp
jmp fcn.00482e10
pop ebp
ret
Function at 0x483c40
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [eax]
push esi
mov esi, dword [eax + 0x400]
push edi
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x88]
push eax
mov dword [ebp - 0x88], 0x80
mov edx, dword [esi + 0x154]
mov eax, dword [esi + 0x15c]
lea ecx, [ebp - 0x84]
push ecx
mov ecx, dword [esi + 0x14]
push 0
add edx, 4
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp dword [esi + 0x148], 0
mov dword [esi + 0x14c], eax
jne 0x483cd4
mov edx, dword [ebp - 0x88]
push edx
lea eax, [ebp - 0x84]
push eax
lea ecx, [esi + 0xc8]
push ecx
call fcn.00456d70
mov edx, dword [ebp - 0x88]
add esp, 0xc
mov dword [esi + 0x148], edx
mov edx, dword [esi + 0x14c]
cmp edx, 4
jge 0x483d07
push str.Received_too_short_packet
push ebx
call fcn.00475330
add esp, 8
mov dword [esi + 0xc], 7
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
lea eax, [esi + 0x15c]
call fcn.00482b30
movzx eax, ax
mov dword [esi + 0xc], eax
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x483d24
jmp dword [eax*4 + 0x483e54]
cmp edx, 4
jle case.0x483d24.4
lea eax, [esi + 0x15c]
call fcn.00482b40
movzx ecx, word [esi + 0x40]
inc ecx
cmp cx, ax
jne case.0x483d24.4
mov eax, dword [ebp - 0x8c]
add edx, 0xfffffffc
push edx
mov edx, dword [esi + 0x15c]
add edx, 4
push edx
push 1
push eax
call fcn.00475600
mov edi, eax
add esp, 0x10
test edi, edi
je 0x483d91
mov ecx, 5
mov eax, esi
call fcn.00483bc0
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14c]
sub eax, 4
cdq
add dword [ebx + 0x70], eax
adc dword [ebx + 0x74], edx
mov ecx, dword [ebx + 0x74]
mov edx, dword [ebx + 0x70]
push ecx
push edx
push ebx
call fcn.00492350
jmp 0x483e15
lea eax, [esi + 0x15c]
call fcn.00482b40
mov ecx, dword [esi + 0x15c]
add ecx, 4
push ecx
movzx eax, ax
push 0x4ab5d0
push ebx
mov dword [esi + 8], eax
call fcn.004752b0
jmp 0x483e15
add edx, 0xfffffffe
push edx
mov edx, dword [esi + 0x15c]
add edx, 2
push edx
push esi
call fcn.00482bd0
add esp, 0xc
test eax, eax
je case.0x483d24.4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
push str.Internal_error:_Unexpected_packet
push 0x4ab400
push ebx
call fcn.00475330
add esp, 0xc
mov eax, dword [ebp - 0x8c]
push eax
call fcn.00492410
add esp, 4
test eax, eax
je 0x483cf4
mov ecx, 5
mov eax, esi
call fcn.00483bc0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 0x2a
pop ebx
call fcn.0044de17
mov esp, ebp
pop ebp
ret
Function at 0x485640
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x194
mov eax, dword [0x4be0f0]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x194]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x485688
push eax
push str.WSAStartup_failed___d_
push esi
call fcn.00475330
add esp, 0xc
mov eax, 2
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [ebp - 0x194]
cmp al, 2
jne 0x4856af
shr eax, 8
test al, al
jne 0x4856af
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044de17
mov esp, ebp
pop ebp
ret
push str.insufficient_winsock_version_to_support_telnet
push esi
call fcn.00475330
mov ecx, dword [ebp - 4]
xor ecx, ebp
add esp, 8
mov eax, 2
call fcn.0044de17
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov edx, dword [edi + 0x154]
push ebx
push esi
mov esi, dword [edi]
push 0
push 3
lea ecx, [ebp - 4]
mov ebx, eax
mov al, byte [ebp + 8]
push ecx
push edx
mov byte [ebp - 4], 0xff
mov byte [ebp - 3], al
mov byte [ebp - 2], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x485885
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push esi
call fcn.00475330
add esp, 0xc
mov esi, dword [ebp + 8]
mov ecx, dword [edi]
mov eax, ebx
mov ebx, str.SENT
call fcn.00485740
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4865c0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [ebp + 0xc], 0x1f
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push ebx
mov ebx, dword [eax + 0x128]
mov dword [ebp - 4], eax
jne 0x48670f
push esi
push edi
lea edi, [ebx + 0x1cb0]
lea esi, [ebx + 0x1eb0]
mov dword [esi], edi
cmp edi, esi
jae 0x4865f6
mov byte [edi], 0xff
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x486601
mov byte [eax], 0xfa
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x48660c
mov byte [eax], 0x1f
inc dword [esi]
movzx ecx, word [ebx + 0x1ca8]
push ecx
call dword [sym.imp.WS2_32.dll_htons]
movzx edx, ax
movzx eax, word [ebx + 0x1caa]
push eax
mov dword [ebp + 0xc], edx
call dword [sym.imp.WS2_32.dll_htons]
movzx ecx, ax
mov eax, dword [esi]
cmp eax, esi
jae 0x48663e
mov dl, byte [ebp + 0xc]
mov byte [eax], dl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x48664b
mov dl, byte [ebp + 0xd]
mov byte [eax], dl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x486655
mov byte [eax], cl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x48665f
mov byte [eax], ch
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x48666a
mov byte [eax], 0xff
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x486675
mov byte [eax], 0xf0
inc dword [esi]
mov eax, dword [esi]
mov dword [ebx + 0x1eb4], eax
sub eax, edi
sub eax, 2
push eax
lea edx, [ebx + 0x1cb2]
push edx
mov dword [esi], edi
mov esi, dword [ebp - 4]
push 0x3e
call fcn.00485bb0
mov esi, dword [sym.imp.WS2_32.dll_send]
add esp, 0xc
push 0
push 3
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x154]
push eax
call esi
test eax, eax
jns 0x4866cc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp - 4]
push eax
push str.Sending_data_failed___d_
push ecx
call fcn.00475330
add esp, 0xc
lea edx, [ebx + 0x1cb3]
push 4
push edx
call fcn.00486460
mov eax, dword [edi + 0x154]
add esp, 8
push 0
push 2
add ebx, 0x1cb7
push ebx
push eax
call esi
pop edi
pop esi
test eax, eax
jns 0x48670f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp - 4]
push eax
push str.Sending_data_failed___d_
push ecx
call fcn.00475330
add esp, 0xc
pop ebx
mov esp, ebp
pop ebp
ret