joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41fe80
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ecx
cmp dword [eax + 0x1e8], 0
je 0x41fe8e
xor eax, eax
pop ecx
ret
mov eax, dword [eax + 0x1a0]
cmp eax, 0xffffffff
je 0x41fe8a
push 2
push 1
lea ecx, [esp + 0xb]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_recv]
neg eax
sbb eax, eax
neg eax
pop ecx
ret

Function at 0x41fff0
Capabilities:
Get socket status

Disassembly:
sub esp, 0x324
push ebx
mov eax, ecx
shl eax, 4
push ebp
lea eax, [eax + edx + 0x1c8]
xor ebx, ebx
push esi
push edi
cmp dword [eax], ebx
je 0x420029
cmp dword [eax + 4], ebx
je 0x420029
mov esi, dword [eax + 8]
cmp esi, dword [eax + 0xc]
jbe 0x420029
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x324
ret
mov ebp, dword [edx + ecx*4 + 0x1a0]
cmp ebp, 0xffffffff
je 0x42010e
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x124], ebp
mov dword [esp + 0x120], eax
mov dword [esp + 0x228], ecx
lea edi, [ebp + 1]
jmp 0x42007b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x228]
lea edx, [esp + 0x10]
push edx
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x124]
push edx
lea edx, [esp + 0x230]
and ecx, edx
push ecx
neg eax
sbb eax, eax
lea ecx, [esp + 0x24]
and eax, ecx
push eax
push edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.WS2_32.dll_select]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4200d0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, ebx
je 0x420070
cmp dword [0x470818], ebx
jne 0x4200d0
cmp eax, 0x2714
je 0x420070
cmp esi, ebx
jl 0x42010e
je 0x42010e
lea edx, [esp + 0x18]
push edx
push ebp
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4200ea
mov ebx, 1
lea eax, [esp + 0x120]
push eax
push ebp
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x4200ff
or ebx, 4
test ebx, ebx
jle 0x42010c
test bl, 1
jne 0x420019
xor ebx, ebx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x324
ret

Function at 0x420ce0
Capabilities:
Create thread

Disassembly:
push ecx
push ebp
mov ebp, dword [esp + 0xc]
push esi
push edi
push 0x50
push 1
mov edi, eax
call dword [0x46f560]
mov esi, eax
xor eax, eax
add esp, 8
mov dword [esp + 0xc], 8
mov dword [edi + 0x4b4], esi
cmp esi, eax
je 0x420d96
mov dword [edi + 0x4ac], eax
mov dword [edi + 0x4b0], eax
mov dword [edi + 0x4a8], eax
mov dword [edi + 0x4a4], ebx
mov dword [esi], eax
mov eax, dword [esp + 0x18]
push eax
push ebx
push ebp
mov eax, esi
call fcn.00420a50
add esp, 0xc
test eax, eax
je 0x420d96
mov ecx, dword [edi + 0x4a0]
push ecx
call dword [0x46f554]
push ebp
call dword [0x46f55c]
add esp, 8
mov dword [edi + 0x4a0], eax
test eax, eax
je 0x420d96
push 0
push 0
lea edx, [esi + 0x10]
push edx
push 0x420b50
push 0
push 0
call fcn.00446ebd
add esp, 0x18
test eax, eax
je 0x420d83
cmp eax, 0xffffffff
jne 0x420d85
xor eax, eax
mov dword [esi], eax
test eax, eax
jne 0x420db7
call fcn.004485f7
mov eax, dword [eax]
mov dword [esp + 0xc], eax
add edi, 0x4a0
push edi
call fcn.00420c50
mov ecx, dword [esp + 0x10]
add esp, 4
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebp
pop ecx
ret
pop edi
pop esi
mov eax, 1
pop ebp
pop ecx
ret
Function at 0x426ad0
Capabilities:
Check for time delay via gettickcount

Disassembly:
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov eax, edx
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, dword [esp + 4]
imul ecx, ecx, 0x3e8
dec eax
cmp eax, 9
ja case.0x426b00.8
jmp dword [eax*4 + 0x426bf0]
mov dword [esi + 0x618], edx
mov dword [esi + 0x61c], ecx
ret
mov dword [esi + 0x610], edx
mov dword [esi + 0x614], ecx
ret
call fcn.00421a60
mov dword [esi + 0x620], eax
mov dword [esi + 0x624], edx
ret
mov eax, dword [esi + 0x614]
push eax
mov eax, dword [esi + 0x610]
push eax
push ecx
push edx
call fcn.00421ad0
fstp qword [esi + 0x5d8]
add esp, 0x10
ret
mov eax, dword [esi + 0x614]
push eax
mov eax, dword [esi + 0x610]
push eax
push ecx
push edx
call fcn.00421ad0
fstp qword [esi + 0x5e0]
add esp, 0x10
ret
mov eax, dword [esi + 0x614]
push eax
mov eax, dword [esi + 0x610]
push eax
push ecx
push edx
call fcn.00421ad0
fstp qword [esi + 0x5e8]
add esp, 0x10
ret
mov eax, dword [esi + 0x614]
push eax
mov eax, dword [esi + 0x610]
push eax
push ecx
push edx
call fcn.00421ad0
fstp qword [esi + 0x5f0]
add esp, 0x10
ret
mov eax, dword [esi + 0x614]
push eax
mov eax, dword [esi + 0x610]
push eax
push ecx
push edx
call fcn.00421ad0
fstp qword [esi + 0x5f8]
add esp, 0x10
ret
mov eax, dword [esi + 0x60c]
push eax
mov eax, dword [esi + 0x608]
push eax
push ecx
push edx
call fcn.00421ad0
fstp qword [esi + 0x600]
add esp, 0x10
ret
Function at 0x42d620
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x24]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x14], 0
mov dword [eax], 0
lea esp, [esp]
mov ecx, dword [esp + 0x24]
mov ebp, dword [ecx]
mov eax, dword [ebp + 0x1e0]
xor ecx, ecx
xor ebx, ebx
mov edi, 0x493e0
test eax, eax
jle 0x42d65c
lea ecx, [ebx + 1]
mov edx, dword [ebp + 0x1e4]
test edx, edx
jle 0x42d669
or ecx, 2
sub ecx, 1
je 0x42d67e
sub ecx, 1
je 0x42d67c
sub ecx, 1
jne 0x42d683
cmp eax, edx
jl 0x42d67e
mov eax, edx
cdq
mov ebx, edx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, dword [ebp + 0x610]
mov esi, edx
mov ebp, dword [ebp + 0x614]
shr esi, 6
mov edx, esi
imul edx, edx, 0x3e8
sub ecx, edx
imul ecx, ecx, 0x3e8
mov dword [esp + 0x18], eax
mov eax, ecx
push 0xffffffffffffffff
sub eax, ebp
cdq
push 0xfffffc18
push edx
push eax
call fcn.00449630
mov ecx, eax
mov eax, esi
sub eax, dword [esp + 0x18]
mov ebp, edx
imul eax, eax, 0x3e8
cdq
sub ecx, eax
sbb ebp, edx
add edi, ecx
adc ebx, ebp
mov edx, edi
or edx, ebx
je 0x42d75b
test ebx, ebx
jl 0x42d75b
jg 0x42d6f3
test edi, edi
jb 0x42d75b
push ebx
push edi
mov edi, dword [esp + 0x30]
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call fcn.00421190
add esp, 0x14
test eax, eax
jle 0x42d77e
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push 0
push esi
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
cmp eax, 0xffffffff
jne 0x42d740
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x42d640
mov eax, 0x38
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
cmp esi, eax
je 0x42d768
test eax, eax
je 0x42d77e
add dword [esp + 0x2c], eax
sub esi, eax
add dword [esp + 0x14], eax
mov dword [esp + 0x30], esi
jmp 0x42d640
mov eax, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
add eax, ecx
mov dword [edx], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x10
ret
Function at 0x42e650
Capabilities:
Get socket status

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x320
push ebx
push ebp
push esi
push edi
mov edi, dword [ecx + 0x1a0]
mov eax, 1
cmp edi, 0xffffffff
je 0x42e75d
mov ebp, dword [sym.imp.WS2_32.dll_select]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x124], edi
mov dword [esp + 0x120], eax
mov dword [esp + 0x228], ecx
lea ebx, [edi + 1]
jmp 0x42e6ad
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x228]
xor edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
lea edx, [esp + 0x10]
push edx
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x124]
push edx
lea edx, [esp + 0x230]
and ecx, edx
push ecx
neg eax
sbb eax, eax
lea ecx, [esp + 0x24]
and eax, ecx
push eax
push ebx
call ebp
mov esi, eax
cmp esi, 0xffffffff
jne 0x42e6ff
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x42e6a0
cmp dword [0x470818], 0
jne 0x42e6ff
cmp eax, 0x2714
je 0x42e6a0
test esi, esi
jge 0x42e72a
or eax, 0xffffffff
test al, 4
jne 0x42e76a
test al, 1
je 0x42e76a
mov eax, dword [esp + 0x334]
call fcn.0041fe80
neg eax
sbb eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x320
ret
je 0x42e75d
lea edx, [esp + 0x18]
push edx
push edi
xor esi, esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x42e742
mov esi, 1
lea eax, [esp + 0x120]
push eax
push edi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x42e757
or esi, 4
mov eax, esi
test esi, esi
jne 0x42e706
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x320
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x320
ret

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

Disassembly:
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push str.Connected_for_transmit
push 0x4618f0
call fcn.004140b0
add esp, 8
mov eax, esi
mov dword [esi], 2
call fcn.0042f4d0
test eax, eax
jne 0x42f973
mov ecx, dword [esp + 4]
mov eax, esi
jmp fcn.00430030
ret

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

Disassembly:
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
push str.Connected_for_receive
push 0x4618f0
call fcn.004140b0
add esp, 8
mov eax, esi
mov dword [esi], 1
call fcn.0042f4d0
test eax, eax
jne 0x42f9af
mov eax, esi
jmp fcn.0042fd70
ret
Function at 0x430720
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 0x90
mov eax, dword [0x46e074]
xor eax, esp
mov dword [esp + 0x8c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x9c]
push esi
mov esi, dword [ebp]
push edi
mov edi, dword [ebp + 0x4c8]
lea eax, [esp + 0x14]
push eax
mov dword [esp + 0x18], 0x80
mov edx, dword [edi + 0x154]
mov eax, dword [edi + 0x15c]
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [edi + 0x14]
push 0
add edx, 4
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_recvfrom]
cmp dword [edi + 0x148], 0
mov dword [edi + 0x14c], eax
jne 0x4307a9
mov edx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [edi + 0xc8]
push ecx
call fcn.00448250
mov edx, dword [esp + 0x20]
add esp, 0xc
mov dword [edi + 0x148], edx
mov ecx, dword [edi + 0x14c]
cmp ecx, 4
jge 0x4307e5
push str.Received_too_short_packet
mov eax, esi
call fcn.00414140
add esp, 4
mov dword [edi + 0xc], 7
xor eax, eax
mov ecx, dword [esp + 0x9c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004453f2
add esp, 0x90
ret
mov edx, dword [edi + 0x15c]
movzx ax, byte [edx]
movzx edx, byte [edx + 1]
shl ax, 8
movzx eax, ax
or eax, edx
mov dword [edi + 0xc], eax
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x43080b
jmp dword [eax*4 + 0x430924]
cmp ecx, 4
jle case.0x43080b.4
mov eax, dword [edi + 0x15c]
movzx dx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl dx, 8
movzx edx, dx
or edx, eax
movzx eax, word [edi + 0x40]
inc eax
and eax, 0xffff
cmp eax, edx
jne case.0x43080b.4
mov eax, dword [edi + 0x15c]
push 1
add ecx, 0xfffffffc
add eax, 4
push ebp
call fcn.00414730
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x430875
mov ecx, 5
mov eax, edi
call fcn.00430490
mov eax, ebx
jmp 0x4307cc
mov eax, dword [edi + 0x14c]
sub eax, 4
cdq
add dword [esi + 0x70], eax
adc dword [esi + 0x74], edx
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x70]
push ecx
push edx
call fcn.00426d20
jmp 0x4308f8
mov eax, dword [edi + 0x15c]
movzx cx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl cx, 8
movzx edx, cx
mov ecx, dword [edi + 0x15c]
add ecx, 4
push ecx
or edx, eax
push 0x4618f0
mov ecx, esi
mov dword [edi + 8], edx
call fcn.004140b0
jmp 0x4308f8
mov edx, dword [edi + 0x15c]
add ecx, 0xfffffffe
push ecx
add edx, 2
push edx
push edi
call fcn.0042f650
add esp, 0xc
test eax, eax
je case.0x43080b.4
jmp 0x4307cc
push str.Internal_error:_Unexpected_packet
push 0x461afc
mov eax, esi
call fcn.00414140
add esp, 8
push ebp
call fcn.00426f30
add esp, 4
test eax, eax
je 0x4307ca
mov ecx, 5
mov eax, edi
call fcn.00430490
mov eax, 0x2a
jmp 0x4307cc
Function at 0x4309d0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x32c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov ebx, dword [edi + 0x4c8]
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], eax
push ecx
mov eax, edi
mov dword [esp + 0x18], ebx
call fcn.00430940
mov edx, dword [ebp + 0xc]
xor esi, esi
add esp, 4
cmp eax, esi
mov dword [edx], esi
jg 0x430a27
mov eax, dword [esp + 0x10]
push str.TFTP_response_timeout
call fcn.00414140
add esp, 4
lea eax, [esi + 0x1c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
cmp ecx, 0xffffffff
je 0x430a5b
mov eax, ebx
call fcn.00430490
cmp eax, esi
jne 0x430bb6
mov ecx, dword [ebp + 0xc]
xor eax, eax
cmp dword [ebx], 3
sete al
mov dword [ecx], eax
cmp eax, esi
je 0x430bb4
push esi
push esi
jmp 0x430ba0
mov ebx, dword [ebx + 0x14]
cmp ebx, 0xffffffff
je 0x430bb4
mov eax, 1
xor ecx, ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x128], eax
mov dword [esp + 0x230], ecx
lea edi, [ebx + 1]
jmp 0x430a9d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x230]
xor esi, esi
lea edx, [esp + 0x18]
push edx
neg ecx
sbb ecx, ecx
lea edx, [esp + 0x12c]
push edx
lea edx, [esp + 0x238]
and ecx, edx
push ecx
neg eax
sbb eax, eax
lea ecx, [esp + 0x2c]
and eax, ecx
push eax
push edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
call dword [sym.imp.WS2_32.dll_select]
mov esi, eax
cmp esi, 0xffffffff
jne 0x430af3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x430a90
cmp dword [0x470818], 0
jne 0x430af3
cmp eax, 0x2714
je 0x430a90
test esi, esi
jl 0x430b2d
je 0x430bb4
lea edx, [esp + 0x20]
push edx
push ebx
xor esi, esi
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x430b13
mov esi, 1
lea eax, [esp + 0x128]
push eax
push ebx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x430b28
or esi, 4
cmp esi, 0xffffffff
jne 0x430b67
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [ebp + 8]
push ecx
mov edi, eax
call fcn.00412840
add esp, 4
push eax
mov eax, dword [esp + 0x14]
push 0x461afc
call fcn.00414140
mov edx, dword [esp + 0x1c]
add esp, 8
mov dword [edx + 0xc], 5
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x430bb4
mov edi, dword [ebp + 8]
push edi
call fcn.00430720
add esp, 4
test eax, eax
jne 0x430bb6
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0xc]
mov eax, esi
call fcn.00430490
test eax, eax
jne 0x430bb6
cmp dword [esi], 3
mov ecx, dword [ebp + 0xc]
sete al
mov dword [ecx], eax
test eax, eax
je 0x430bb4
push 0
push 0
push 0xffffffffffffffff
or ecx, 0xffffffff
push 0xffffffffffffffff
push edi
xor edx, edx
or eax, ecx
call fcn.00425d60
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x434470
Capabilities:
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
sub esp, 0x20
mov eax, dword [0x46e074]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push ebp
mov ebp, dword [esi]
push edi
mov edi, dword [esi + 0x1a4]
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x18]
push ecx
push edi
or ebx, 0xffffffff
mov dword [esp + 0x18], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x4344c4
lea edx, [esp + 0xc]
push edx
lea eax, [esp + 0x18]
push eax
push edi
mov dword [esp + 0x18], 0x10
call dword [sym.imp.WS2_32.dll_accept]
mov ebx, eax
cmp dword [esi + 0x38], 0
je 0x4344e5
cmp edi, dword [esi + 0x1a4]
jne 0x434520
cmp dword [esi + 0x1b4], 0
je 0x434520
mov dword [esi + 0x1b4], 0
push esi
call fcn.00416d50
add esp, 4
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
cmp ebx, 0xffffffff
jne 0x434538
push str.Error_accept__ing_server_connect
mov eax, ebp
call fcn.00414140
add esp, 4
mov eax, 0x1e
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.004453f2
add esp, 0x20
ret
push esi
call fcn.00416d50
mov ecx, dword [esi + 0x3c]
mov edx, dword [esi + 0x38]
add esp, 4
push edi
push ecx
call edx
add esp, 8
jmp 0x4344f5
push str.Connection_accepted_from_server_n
mov ecx, ebp
call fcn.004140b0
add esp, 4
lea eax, [esp + 0x10]
push eax
push 0x8004667e
mov edi, 1
push ebx
mov dword [esi + 0x298], 0
mov dword [esi + 0x1a4], ebx
mov dword [esp + 0x1c], edi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [esi + 0x1b4], edi
mov eax, dword [ebp + 0x1b0]
test eax, eax
je 0x4345af
mov ecx, dword [ebp + 0x1b4]
push edi
push ebx
push ecx
call eax
add esp, 0xc
test eax, eax
je 0x4345af
mov eax, esi
call fcn.004343d0
lea eax, [edi + 0x29]
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.004453f2
add esp, 0x20
ret
mov ecx, dword [esp + 0x24]
pop edi
pop ebp
pop ebx
xor ecx, esp
xor eax, eax
call fcn.004453f2
add esp, 0x20
ret
Function at 0x436730
Capabilities:
Check http status code

Disassembly:
mov ecx, dword [edi]
mov eax, 0x51eb851f
imul ebx
sar edx, 5
mov eax, edx
push ebp
mov ebp, dword [esp + 8]
shr eax, 0x1f
push esi
add eax, edx
xor esi, esi
cmp eax, 2
je 0x436765
push str.Couldnt_set_desired_mode
mov eax, ecx
call fcn.00414140
add esp, 4
lea eax, [esi + 0x11]
pop esi
pop ebp
ret
cmp ebx, 0xc8
je 0x43677b
push ebx
push str.Got_a__03d_response_code_instead_of_the_assumed_200_n
call fcn.004140b0
add esp, 8
cmp ebp, 0x13
jne 0x43678e
push edi
call fcn.00435690
add esp, 4
mov esi, eax
pop esi
pop ebp
ret
cmp ebp, 0x14
jne 0x4367a1
push edi
call fcn.00435720
add esp, 4
mov esi, eax
pop esi
pop ebp
ret
cmp ebp, 0x15
jne 0x4367b8
push 0xd
push 1
push edi
call fcn.00435b20
add esp, 0xc
mov esi, eax
pop esi
pop ebp
ret
cmp ebp, 0x16
jne 0x4367cc
push 0xe
push 1
push edi
call fcn.00435b20
add esp, 0xc
mov esi, eax
mov eax, esi
pop esi
pop ebp
ret

Function at 0x4391a0
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x19c
mov eax, dword [0x46e074]
xor eax, esp
mov dword [esp + 0x194], eax
lea eax, [esp]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x4391d6
push eax
push str.WSAStartup_failed___d_
mov eax, esi
call fcn.00414140
add esp, 8
jmp 0x439210
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp]
cmp al, 2
jne 0x439201
shr eax, 8
test al, al
jne 0x439201
xor eax, eax
mov ecx, dword [esp + 0x194]
xor ecx, esp
call fcn.004453f2
add esp, 0x19c
ret
push str.insufficient_winsock_version_to_support_telnet
mov eax, esi
call fcn.00414140
add esp, 4
mov ecx, dword [esp + 0x194]
xor ecx, esp
mov eax, 2
call fcn.004453f2
add esp, 0x19c
ret

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

Disassembly:
push ecx
mov edx, dword [edi + 0x1a0]
mov al, byte [esp + 8]
push esi
mov esi, dword [edi]
push 0
push 3
lea ecx, [esp + 0xc]
push ecx
push edx
mov byte [esp + 0x14], 0xff
mov byte [esp + 0x15], al
mov byte [esp + 0x16], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jge 0x439435
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
mov eax, esi
call fcn.00414140
add esp, 8
mov esi, dword [esp + 0xc]
mov ecx, dword [edi]
push str.SENT
mov eax, ebx
call fcn.004392f0
add esp, 4
pop esi
pop ecx
ret
Function at 0x43a140
Capabilities:
Send data
Send data on socket

Disassembly:
push ecx
cmp dword [esp + 0xc], 0x1f
mov eax, dword [esp + 8]
mov eax, dword [eax]
push ebx
push ebp
push esi
push edi
mov edi, dword [eax + 0x128]
mov dword [esp + 0x10], eax
jne 0x43a287
lea ebp, [edi + 0x1cb0]
lea esi, [edi + 0x1eb0]
mov dword [esi], ebp
cmp ebp, esi
jae 0x43a178
mov byte [ebp], 0xff
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a183
mov byte [eax], 0xfa
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a18e
mov byte [eax], 0x1f
inc dword [esi]
movzx ecx, word [edi + 0x1ca8]
push ecx
call dword [sym.imp.WS2_32.dll_htons]
movzx edx, word [edi + 0x1caa]
push edx
movzx ebx, ax
call dword [sym.imp.WS2_32.dll_htons]
movzx ecx, ax
mov eax, dword [esi]
cmp eax, esi
jae 0x43a1ba
mov byte [eax], bl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a1c4
mov byte [eax], bh
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a1ce
mov byte [eax], cl
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a1d8
mov byte [eax], ch
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a1e3
mov byte [eax], 0xff
inc dword [esi]
mov eax, dword [esi]
cmp eax, esi
jae 0x43a1ee
mov byte [eax], pe_nt_image_headers32
inc dword [esi]
mov eax, dword [esi]
mov ebx, dword [esp + 0x10]
mov ecx, eax
sub ecx, ebp
sub ecx, 2
push ecx
mov dword [edi + 0x1eb4], eax
mov dword [esi], ebp
lea eax, [edi + 0x1cb2]
push 0x3e
mov esi, ebx
call fcn.00439860
mov esi, dword [esp + 0x20]
mov edx, dword [esi + 0x1a0]
add esp, 8
push 0
push 3
push ebp
mov ebp, dword [sym.imp.WS2_32.dll_send]
push edx
call ebp
test eax, eax
jge 0x43a248
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
mov eax, ebx
call fcn.00414140
add esp, 8
lea eax, [edi + 0x1cb3]
push 4
push eax
call fcn.0043a790
mov ecx, dword [esi + 0x1a0]
add esp, 8
push 0
push 2
add edi, 0x1cb7
push edi
push ecx
call ebp
test eax, eax
jge 0x43a287
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
mov eax, ebx
call fcn.00414140
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x43ade0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x108
mov eax, dword [0x46e074]
xor eax, esp
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x10c]
push eax
call fcn.00452cf3
add esp, 4
mov byte [esp], 0
test eax, eax
je 0x43ae45
push 0x104
lea ecx, [esp + 4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
cmp byte [esp], 0
je 0x43ae45
lea edx, [esp]
push edx
call dword [0x46f55c]
add esp, 4
mov ecx, dword [esp + 0x104]
xor ecx, esp
call fcn.004453f2
add esp, 0x108
ret
mov ecx, dword [esp + 0x104]
xor ecx, esp
xor eax, eax
call fcn.004453f2
add esp, 0x108
ret
Function at 0x43c070
Capabilities:
Get hostname

Disassembly:
sub esp, 0x408
mov eax, dword [0x46e074]
xor eax, esp
mov dword [esp + 0x404], eax
push esi
mov esi, ecx
mov eax, dword [esi]
mov ecx, dword [eax + 0x87c4]
cmp byte [ecx], 0
jne 0x43c0d6
push 0x401
lea ecx, [esp + 8]
push ecx
mov byte [esp + 0xc], 0
call dword [sym.imp.WS2_32.dll_gethostname]
mov byte [esp + 0x404], 0
test eax, eax
jne 0x43c0d1
lea edx, [esp + 4]
push 0x2e
push edx
call fcn.0044e3a0
add esp, 8
test eax, eax
je 0x43c0cb
mov byte [eax], 0
lea ecx, [esp + 4]
jmp 0x43c0d6
mov ecx, str.localhost
push 1
push 0
add esi, 0x508
push esi
xor eax, eax
call fcn.004342b0
mov ecx, dword [esp + 0x414]
add esp, 0xc
pop esi
xor ecx, esp
call fcn.004453f2
add esp, 0x408
ret
Function at 0x43e950
Capabilities:
Get common file path

Disassembly:
push ecx
push ebx
push esi
push str.kernel32
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x43e96a
pop esi
pop ebx
pop ecx
ret
push ebp
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.LoadLibraryExA
push esi
call edi
mov ebp, eax
push 0x469c40
push str.WS2_32.DLL
mov dword [esp + 0x18], ebp
call fcn.0045c9ca
add esp, 8
test eax, eax
je 0x43e9c0
test ebp, ebp
je 0x43e9ad
push 8
push 0
push str.WS2_32.DLL
call ebp
pop edi
pop ebp
pop esi
mov ebx, eax
pop ebx
pop ecx
ret
push str.WS2_32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop edi
pop ebp
pop esi
mov ebx, eax
pop ebx
pop ecx
ret
test ebp, ebp
je 0x43e9e6
push str.AddDllDirectory
push esi
call edi
test eax, eax
je 0x43e9e6
push 0x800
push 0
push str.WS2_32.DLL
call ebp
pop edi
pop ebp
pop esi
mov ebx, eax
pop ebx
pop ecx
ret
mov ebp, dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push 0
push 0
call ebp
mov edi, eax
test edi, edi
je 0x43eaa0
mov eax, str.WS2_32.DLL
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ea04
sub eax, edx
lea eax, [eax + edi + 1]
push eax
call dword [0x46f550]
mov esi, eax
add esp, 4
test esi, esi
je 0x43ea96
push edi
push esi
call ebp
test eax, eax
je 0x43ea96
mov eax, esi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ea30
sub eax, edx
mov ecx, 0x5c
mov word [eax + esi], cx
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43ea47
sub eax, edx
mov ecx, str.WS2_32.DLL
lea edx, [eax + esi]
sub edx, ecx
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx + ecx], al
inc ecx
test al, al
jne 0x43ea60
mov eax, dword [esp + 0x10]
test eax, eax
je 0x43ea8d
push 8
push 0
push esi
call eax
push esi
mov ebx, eax
call dword [0x46f554]
add esp, 4
pop edi
pop ebp
pop esi
mov eax, ebx
pop ebx
pop ecx
ret
push esi
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
push esi
call dword [0x46f554]
add esp, 4
pop edi
pop ebp
pop esi
mov eax, ebx
pop ebx
pop ecx
ret