joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10033320
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
sub esp, 8
xor eax, eax
cmp dword [ebx + 0x7c], ecx
jle 0x1003341d
push esi
push edi
jmp 0x10033342
xor ecx, ecx
mov esi, dword [ebx + 0x80]
cmp esi, dword [ebx + 0x84]
je 0x1003335e
mov eax, dword [esi + 0x2c]
mov dword [ebx + 0x80], eax
mov dword [eax + 0x30], ecx
jmp 0x1003336e
cmp esi, ecx
je 0x1003337b
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x84], ecx
cmp esi, ecx
je 0x1003337b
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x30], ecx
dec dword [ebx + 0x7c]
mov eax, dword [esi + 0x18]
sub dword [ebx + 0x5c], eax
lea edi, [esi + 0x18]
push eax
lea eax, [ebx + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov ecx, dword [ebx + 0x74]
xor eax, eax
push eax
push esi
push eax
lea edx, [ebp - 8]
push edx
push 1
mov dword [ebp - 8], eax
mov dword [esi + 0x34], ecx
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x34]
push edi
mov dword [esi + 0x14], 3
push eax
mov dword [esi + 0x28], 2
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x100333cd
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 4], eax
lea eax, [esi + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
je 0x100333e9
mov eax, dword [ebp - 4]
test eax, eax
je 0x10033411
cmp eax, 0x3e5
je 0x1003340d
mov edi, dword [ebp + 8]
push esi
add edi, 0xac
call fcn.1002bed0
test eax, eax
jne 0x1003340a
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
push esi
push eax
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 4]
test eax, eax
jne 0x1003341b
cmp dword [ebx + 0x7c], 0
jg 0x10033340
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x10033d50
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
push ebx
push esi
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax + 0xb4]
push edi
call edx
test eax, eax
je 0x10033e5e
lea ebx, [esi + 0x144]
call fcn.100053f0
mov eax, dword [esi + 0x44]
cmp eax, 3
jne 0x10033e42
xor ebx, ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x144], ebx
mov edx, dword [esi]
mov eax, dword [edx + 0xb8]
mov ecx, esi
call eax
xor ecx, ecx
mov word [ebp - 0x3c], cx
mov ecx, dword [ebp + 0x14]
xor edx, edx
lea eax, [ebp - 0x20]
push eax
push ecx
mov ecx, dword [ebp + 8]
mov word [ebp - 0x20], dx
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x3c]
push eax
push ecx
push esi
mov dword [esi + 8], 1
mov dword [esi + 0xc], 5
mov dword [esi + 0x10], ebx
mov dword [ebp - 4], ebx
call fcn.10034090
test eax, eax
je 0x10033ead
lea ecx, [ebp - 0x20]
mov edi, esi
call fcn.10038a30
test eax, eax
je 0x10033e9e
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
call edi
mov edx, dword [esi]
mov eax, dword [esi + 0x14]
mov edx, dword [edx + 0x7c]
push eax
mov ecx, esi
call edx
cmp eax, 2
je 0x10033e86
mov eax, dword [ebp + 0x10]
push eax
lea eax, [ebp - 0x3c]
call fcn.10034190
test eax, eax
je 0x10033e77
lea ecx, [esi + 0x38]
push ecx
push ebx
push esi
push 0x10034280
push ebx
push ebx
call fcn.101124d4
add esp, 0x18
mov dword [esi + 0x34], eax
cmp eax, ebx
je 0x10033e69
pop edi
pop esi
lea eax, [ebx + 1]
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x10dd
mov dword [esi + 0x3c], 1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [esi + 0x144], 0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [esi + 0x3c], 8
push 0x65f
jmp 0x10033ec1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x3c], 0xb
jmp 0x10033ec0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x10033e95
mov eax, 0x4c7
mov dword [esi + 0x3c], 5
jmp 0x10033ec0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x3c], 4
jmp 0x10033eba
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x3c], 3
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push eax
call edi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], 5
mov dword [esi + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [edx + 4]
mov ecx, esi
call eax
push ebx
call edi
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
Function at 0x10034190
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
push ebx
xor ebx, ebx
push edi
mov edi, eax
cmp dword [ebp + 8], ebx
je 0x100341fc
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push 0x30
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
je 0x1003426c
mov edx, dword [esi + 0x14]
xor eax, eax
cmp word [edi], 2
setne al
dec eax
and eax, 0xfffffff4
add eax, 0x1c
push eax
push edi
push edx
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
je 0x100341f1
cmp eax, 0xffffffff
jne 0x100341e9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x100341f1
pop edi
xor eax, eax
pop ebx
pop ebp
ret 4
pop edi
mov eax, 1
pop ebx
pop ebp
ret 4
xor eax, eax
cmp word [edi], 2
setne al
dec eax
and eax, 0xfffffff4
add eax, 0x1c
push eax
mov eax, dword [esi + 0x14]
push edi
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x1003426c
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
push 0x23
push ecx
push edx
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
je 0x1003426c
mov edi, 1
mov dword [esi + 0x40], edi
push 0
mov dword [esi + 0x44], edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esi]
mov edx, dword [eax + 0x80]
mov ecx, esi
call edx
cmp eax, 2
jne 0x10034274
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x10034265
mov eax, 0x4c7
push eax
call dword [sym.imp.WS2_32.dll_WSASetLastError]
pop edi
mov eax, ebx
pop ebx
pop ebp
ret 4
mov eax, edi
pop edi
pop ebx
pop ebp
ret 4

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

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
jmp 0x100345b0
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x50]
mov edx, dword [esi + 0x14]
push 0
push ecx
push eax
push edx
call dword [sym.imp.WS2_32.dll_recv]
mov edi, eax
test edi, edi
jle 0x10034615
push 0
call ebx
mov eax, dword [esi + 0x50]
mov edx, dword [esi]
push edi
push eax
mov eax, dword [edx + 0x90]
mov ecx, esi
call eax
cmp eax, 2
jne 0x100345b0
mov ecx, dword [esi + 0x1c]
push ecx
call fcn.10103120
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100345ff
mov eax, 0x4c7
mov dword [esi + 0xc], 4
mov dword [esi + 0x10], eax
pop edi
mov dword [esi + 8], 1
xor eax, eax
pop ebx
ret
cmp edi, 0xffffffff
je 0x10034634
test edi, edi
jne 0x100345b0
mov dword [esi + 0x10], edi
pop edi
mov dword [esi + 0xc], 5
mov dword [esi + 8], 1
xor eax, eax
pop ebx
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x100345ff
pop edi
mov eax, 1
pop ebx
ret
Function at 0x100347d0
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword [ebx + 0x18]
sub eax, dword [ebx + 0x14]
push esi
je 0x10034879
lea ecx, [ecx]
lea eax, [edi + 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
mov edx, dword [edi + 0x20]
sub eax, ecx
cmp eax, edx
jl 0x100347fe
mov eax, edx
push 0
push eax
push ecx
mov ecx, dword [edi + 0x14]
push ecx
call dword [sym.imp.WS2_32.dll_send]
mov esi, eax
test esi, esi
jle 0x10034818
sub dword [edi + 0x178], esi
lea eax, [edi + 0x148]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
jle 0x10034868
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebx + 0x14]
mov edx, dword [edi]
push esi
push eax
mov eax, dword [edx + 0x88]
mov ecx, edi
call eax
cmp eax, 2
jne 0x10034853
mov ecx, dword [edi + 0x1c]
push ecx
call fcn.10103120
add esp, 4
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
sub eax, ecx
cmp eax, esi
jl 0x10034861
mov eax, esi
add ecx, eax
mov dword [ebx + 0x14], ecx
jmp 0x1003486d
cmp esi, 0xffffffff
je 0x10034880
mov edx, dword [ebx + 0x18]
sub edx, dword [ebx + 0x14]
jne 0x100347e0
mov eax, 1
pop esi
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x10034879
mov dword [edi + 0x10], eax
mov dword [edi + 8], 1
mov dword [edi + 0xc], 3
xor eax, eax
pop esi
ret
Function at 0x10035290
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
test eax, eax
je 0x1003529f
cmp byte [eax], 0
jne 0x100352a4
mov eax, str.0.0.0.0
push edi
xor ecx, ecx
lea edi, [ebp - 0x20]
mov word [ebp - 0x20], cx
call fcn.1002df60
test eax, eax
je 0x100353f8
mov ax, word [ebp - 0x20]
push 6
movzx edx, ax
push 1
push edx
mov word [esi + 0x48], ax
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 0x50], eax
cmp eax, 0xffffffff
je 0x100353f8
mov ecx, dword [esi + 0x30]
test ecx, ecx
je 0x100352f1
cmp dword [esi + 0x34], 0
jbe 0x100352f1
mov edx, 1
jmp 0x100352f3
xor edx, edx
push edx
mov edx, dword [esi + 0x34]
push eax
call fcn.1002e2b0
mov ecx, dword [esi + 0x50]
add esp, 8
lea eax, [ebp - 4]
push eax
push 0x8004667e
push ecx
mov dword [ebp - 4], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
xor eax, eax
cmp word [ebp - 0x20], 2
lea edx, [ebp - 0x20]
setne al
dec eax
and eax, 0xfffffff4
add eax, 0x1c
push eax
mov eax, dword [esi + 0x50]
push edx
push eax
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x100353dd
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push 0
call edi
mov edx, dword [esi]
mov eax, dword [esi + 0x50]
mov edx, dword [edx + 0xe4]
push eax
mov ecx, esi
call edx
cmp eax, 2
je 0x100353bd
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x50]
push eax
push ecx
call dword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x100353a6
mov edx, dword [esi + 0x50]
push edx
call fcn.1002dfd0
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x50]
push eax
call fcn.1002e040
mov ecx, dword [esi + 0x50]
push ecx
mov dword [esi + 0x40], eax
call fcn.1002e120
add esp, 0xc
mov dword [esi + 0x44], eax
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov dword [esi + 0x5c], 6
call edi
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x100353cc
mov eax, 0x4c7
push eax
mov dword [esi + 0x5c], 5
call edi
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov dword [esi + 0x5c], 4
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov dword [esi + 0x5c], 3
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x10035460
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0xc], 0
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], 0
jbe 0x100355a9
push esi
push edi
push 0
push 0
push ebx
push 0x10036680
push 0
push 0
call fcn.101124d4
mov edi, eax
add esp, 0x18
mov dword [ebp - 4], edi
test edi, edi
je 0x1003558c
mov eax, dword [ebx + 0x64]
lea esi, [ebx + 0x60]
lea ecx, [ebp - 4]
cmp ecx, eax
jae 0x10035516
mov edx, dword [esi]
cmp edx, ecx
ja 0x10035516
mov edi, ecx
mov ecx, dword [esi + 8]
sub edi, edx
sar edi, 2
cmp eax, ecx
jne 0x10035506
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10035582
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10035506
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x100354f5
xor ecx, ecx
jmp 0x100354f7
add ecx, edx
cmp ecx, eax
jae 0x100354fd
mov ecx, eax
push ecx
call fcn.10033af0
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 4]
test eax, eax
je 0x10035562
mov edx, dword [esi]
mov ecx, dword [edx + edi*4]
mov dword [eax], ecx
jmp 0x10035562
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x10035559
mov edx, dword [esi]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x10035582
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10035559
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x10035548
xor ecx, ecx
jmp 0x1003554a
add ecx, edx
cmp ecx, eax
jae 0x10035550
mov ecx, eax
push ecx
call fcn.10033af0
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 4]
test eax, eax
je 0x10035562
mov dword [eax], edi
mov eax, dword [ebp - 8]
add dword [esi + 4], 4
inc eax
mov dword [ebp - 8], eax
cmp eax, dword [ebx + 0xc]
jb 0x10035484
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.vector_T__too_long
call fcn.1010eda6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov dword [ebx + 0x5c], 8
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov dword [ebp - 0xc], 0
pop esi
mov eax, dword [ebp - 0xc]
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x10035ca0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov ecx, dword [ecx + 0x50]
xor eax, eax
lea edx, [ebp - 4]
mov word [ebp - 0x20], ax
push edx
lea eax, [ebp - 0x20]
push eax
push ecx
mov dword [ebp - 4], 0x1c
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x10035cd1
xor eax, eax
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 8]
push ecx
push edx
lea ecx, [ebp + 0x10]
lea eax, [ebp - 0x20]
call fcn.1002de90
add esp, 8
pop edi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x10035d00
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push edi
mov edi, dword [ecx + 0x168]
test edi, edi
je 0x10035d8d
mov eax, dword [ebp + 8]
dec eax
xor edx, edx
div dword [ecx + 0x164]
mov ecx, dword [ecx + 0x1a8]
push esi
pop esi
movzx ecx, byte [ecx + edx]
cmp eax, ecx
jne 0x10035d8d
mov edx, dword [edi + edx*4]
mov eax, 0xf
cmp eax, edx
sbb eax, eax
neg eax
cmp eax, 1
jne 0x10035d8d
test edx, edx
je 0x10035d8d
cmp dword [edx + 0x30], 0
je 0x10035d8d
mov edx, dword [edx + 0x74]
xor ecx, ecx
lea eax, [ebp - 4]
mov word [ebp - 0x20], cx
push eax
lea ecx, [ebp - 0x20]
push ecx
push edx
mov dword [ebp - 4], 0x1c
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x10035d8d
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push edx
push eax
lea ecx, [ebp + 8]
lea eax, [ebp - 0x20]
call fcn.1002de90
add esp, 8
pop edi
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x10036ce0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
xor ecx, ecx
push edi
mov dword [ebp - 8], ecx
lea ecx, [ecx]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
xor esi, esi
cmp eax, esi
je 0x10036d00
cmp eax, 1
jne 0x10036d78
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
cmp dword [ebx + 0x18], eax
lea edi, [ebx + 0x18]
jne 0x10036d78
mov edx, dword [ebx + 0x34]
push esi
push esi
mov dword [edi], eax
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 4]
push ecx
push 1
push edi
push edx
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
call dword [sym.imp.WS2_32.dll_WSARecv]
cmp eax, 0xffffffff
jne 0x10036d3c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
jmp 0x10036d4c
mov eax, dword [ebp - 4]
test eax, eax
je 0x10036d47
mov dword [edi], eax
jmp 0x10036d4c
mov esi, 0x2775
mov dword [ebp - 4], esi
test esi, esi
jne 0x10036d89
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push ebx
push eax
call fcn.10034e60
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
inc eax
mov dword [ebp - 8], eax
cmp eax, 0x1e
jl 0x10036cf0
test ecx, ecx
jne 0x10036d8c
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp - 4]
cmp ecx, 0x2733
je 0x10036d7c
cmp ecx, 0x2775
jne 0x10036da8
mov edx, dword [ebp + 8]
push 0
push 0
push 1
push edx
jmp 0x10036dc1
cmp ecx, 0x2736
je 0x10036dc9
cmp ecx, 0x3e3
je 0x10036dc9
mov eax, dword [ebp + 8]
push ecx
push 4
push 2
push eax
mov eax, dword [ebp + 0xc]
call fcn.10035890
mov edi, dword [ebp + 8]
push ebx
add edi, 0x9c
call fcn.1002bed0
test eax, eax
jne 0x10036dea
mov ecx, dword [ebx + 0x24]
mov edx, dword [ecx]
push ebx
push eax
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x100370d0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
xor eax, eax
mov ebx, ecx
mov dword [ebp - 0xc], ebx
test ecx, ecx
jle 0x10037242
push esi
mov esi, dword [ebp + 8]
lea eax, [esi + 0x9c]
push edi
mov dword [ebp - 0x14], eax
jmp 0x100370fc
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x18]
cmp ebx, eax
jge 0x10037108
mov dword [ebp - 8], ebx
jmp 0x1003710d
mov dword [ebp - 8], eax
mov ebx, eax
mov edi, dword [ebp - 0x14]
lea ecx, [ebp - 4]
push ecx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], 0
call fcn.10030450
test eax, eax
je 0x10037133
mov esi, dword [ebp - 4]
mov dword [esi + 0x18], 0
jmp 0x10037173
mov ebx, dword [esi + 0x90]
mov eax, dword [esi + 0x80]
lea edi, [esi + 0x80]
lea edx, [ebx + 0x38]
push edx
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
push 0x38
mov esi, eax
push 0
push esi
call fcn.10113080
lea ecx, [esi + 0x38]
mov dword [esi + 0x20], ebx
mov ebx, dword [ebp - 8]
add esp, 0xc
mov dword [esi + 0x24], edi
mov dword [esi + 0x1c], ecx
mov dword [ebp - 4], esi
test ebx, ebx
jns 0x10037180
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x18]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [esi + 0x1c]
mov ecx, dword [ebp - 0x10]
push ebx
push edx
lea edi, [esi + 0x18]
push eax
mov dword [edi], ecx
call fcn.10112b90
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0x74]
add esp, 0xc
xor eax, eax
push eax
push esi
push eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x10]
push eax
push 1
mov dword [esi + 0x34], edx
mov ecx, dword [esi + 0x34]
push edi
mov dword [esi + 0x14], 3
lea ebx, [esi + 0x28]
push ecx
mov dword [ebx], 2
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x100371db
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
jmp 0x100371de
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], eax
cmp eax, 0x3e5
jne 0x100371ef
mov dword [ebp - 4], 0
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
je 0x10037200
cmp dword [ebp - 4], 0
je 0x10037227
mov edi, dword [ebp + 8]
push esi
add edi, 0x9c
call fcn.1002bed0
test eax, eax
jne 0x10037221
mov edx, dword [esi + 0x24]
push esi
push eax
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp - 4], 0
jne 0x1003723d
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
add dword [ebp + 0x10], ecx
sub eax, ecx
mov dword [ebp - 0xc], eax
test eax, eax
jg 0x100370f6
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x100374b0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
sub esp, 8
xor eax, eax
cmp dword [ebx + 0x7c], ecx
jle 0x100375ad
push esi
push edi
jmp 0x100374d2
xor ecx, ecx
mov esi, dword [ebx + 0x80]
cmp esi, dword [ebx + 0x84]
je 0x100374ee
mov eax, dword [esi + 0x2c]
mov dword [ebx + 0x80], eax
mov dword [eax + 0x30], ecx
jmp 0x100374fe
cmp esi, ecx
je 0x1003750b
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x84], ecx
cmp esi, ecx
je 0x1003750b
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x30], ecx
dec dword [ebx + 0x7c]
mov eax, dword [esi + 0x18]
sub dword [ebx + 0x5c], eax
lea edi, [esi + 0x18]
push eax
lea eax, [ebx + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov ecx, dword [ebx + 0x74]
xor eax, eax
push eax
push esi
push eax
lea edx, [ebp - 8]
push edx
push 1
mov dword [ebp - 8], eax
mov dword [esi + 0x34], ecx
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x34]
push edi
mov dword [esi + 0x14], 3
push eax
mov dword [esi + 0x28], 2
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
jne 0x1003755d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 4], eax
lea eax, [esi + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
je 0x10037579
mov eax, dword [ebp - 4]
test eax, eax
je 0x100375a1
cmp eax, 0x3e5
je 0x1003759d
mov edi, dword [ebp + 8]
push esi
add edi, 0x9c
call fcn.1002bed0
test eax, eax
jne 0x1003759a
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
push esi
push eax
push edx
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 4]
test eax, eax
jne 0x100375ab
cmp dword [ebx + 0x7c], 0
jg 0x100374d0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
Function at 0x100375c0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, ecx
mov eax, dword [esi]
mov edx, dword [eax + 0xa0]
push edi
call edx
test eax, eax
je 0x100376db
lea ebx, [esi + 0x184]
call fcn.100053f0
mov eax, dword [esi + 0x4c]
cmp eax, 3
jne 0x100376bf
xor ebx, ebx
mov dword [esi + 0x4c], ebx
mov dword [esi + 0x184], ebx
mov edx, dword [esi]
mov eax, dword [edx + 0xa4]
mov ecx, esi
call eax
xor eax, eax
xor ecx, ecx
lea edx, [ebp - 0x20]
push edx
mov edx, dword [ebp + 8]
mov dword [ebp - 0x1e], eax
mov dword [ebp - 0x1a], eax
mov dword [ebp - 0x16], eax
mov dword [ebp - 0x12], eax
mov dword [ebp - 0xe], eax
mov dword [ebp - 0xa], eax
mov word [ebp - 6], ax
mov eax, dword [ebp + 0x14]
push eax
mov word [ebp - 0x20], cx
mov ecx, dword [ebp + 0xc]
push ecx
push edx
push esi
mov dword [esi + 8], 1
mov dword [esi + 0xc], 5
mov dword [esi + 0x10], ebx
mov dword [ebp - 4], ebx
call fcn.10037920
test eax, eax
je 0x1003772a
lea eax, [ebp - 0x20]
mov edi, esi
call fcn.10037ad0
test eax, eax
je 0x1003771b
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
call edi
mov ecx, dword [esi + 0x14]
mov eax, dword [esi]
mov edx, dword [eax + 0x84]
push ecx
mov ecx, esi
call edx
cmp eax, 2
je 0x10037703
lea eax, [ebp - 0x20]
call fcn.10037b50
test eax, eax
je 0x100376f4
lea eax, [esi + 0x40]
push eax
push ebx
push esi
push 0x10037d10
push ebx
push ebx
call fcn.101124d4
add esp, 0x18
mov dword [esi + 0x3c], eax
cmp eax, ebx
je 0x100376e6
pop edi
pop esi
lea eax, [ebx + 1]
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x10dd
mov dword [esi + 0x44], 1
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [esi + 0x184], 0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [esi + 0x44], 8
push 0x65f
jmp 0x1003773e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x44], 0xb
jmp 0x1003773d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jne 0x10037712
mov eax, 0x4c7
mov dword [esi + 0x44], 5
jmp 0x1003773d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x44], 4
jmp 0x10037737
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esi + 0x44], 3
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push eax
call edi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], 5
mov dword [esi + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi]
mov ebx, eax
mov eax, dword [edx + 4]
mov ecx, esi
call eax
push ebx
call edi
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10