joyce8/EMBER2024-capa huggingface dataset:
Function at 0x100050a0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [0x10086040]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, 1
lock xadd dword [0x100892e8], eax
inc eax
mov ebx, 0x100892ec
cmp eax, 1
jne 0x100050e6
lea eax, [esp + 0x18]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
xchg dword [ebx], eax
cmp byte [ebp + 8], 0
je 0x100050f6
xor esi, esi
lock xadd dword [ebx], esi
test esi, esi
jne 0x1000510f
mov ecx, dword [esp + 0x1ac]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10045df2
mov esp, ebp
pop ebp
ret 4
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1008813c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x1000515b
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x1000515b
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov edx, str.winsock
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], 0x10086bc8
call fcn.100042f0
int3

Function at 0x100064a0
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push dword [0x10089498]
mov esi, dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea ebx, [esi + 3]
shr ebx, 2
test eax, eax
je 0x100064e7
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x100064e7
mov eax, dword [ecx]
test eax, eax
je 0x100064e7
mov dword [ecx], 0
mov dl, byte [eax]
movzx ecx, dl
cmp ecx, ebx
jb 0x100064de
mov byte [eax + esi], dl
pop esi
pop ebx
ret
push eax
call fcn.1004637e
add esp, 4
lea eax, [ebx*4 + 1]
push eax
call fcn.10045ee0
add esp, 4
movzx ecx, bl
xor edx, edx
cmp ebx, 0xff
cmova ecx, edx
mov byte [eax + esi], cl
pop esi
pop ebx
ret

Function at 0x10006970
Capabilities:
Terminate thread

Disassembly:
sub esp, 8
push esi
mov esi, ecx
push 0xffffffffffffffff
push 0
mov eax, dword [esi + 8]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x10], eax
lea eax, [esp + 0xc]
push eax
push 2
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, 0x10089304
lock xadd dword [ecx], eax
mov ecx, dword [esi + 4]
push 0
push ecx
test eax, eax
je 0x100069be
call dword [sym.imp.KERNEL32.dll_TerminateThread]
pop esi
add esp, 8
ret
push method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_56
call dword [sym.imp.KERNEL32.dll_QueueUserAPC]
push 0xffffffffffffffff
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
pop esi
add esp, 8
ret
Function at 0x100069e0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
push edi
push 0
push 0
push 1
mov ebx, ecx
push 0
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, dword [ebp + 8]
mov esi, eax
mov dword [edi + 4], esi
test esi, esi
jne 0x10006a83
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi]
mov ecx, edi
push 1
mov dword [esp + 0x10], eax
call dword [edx]
mov ecx, dword fs:[0x2c]
mov eax, dword [0x1008813c]
mov edx, dword [ecx + eax*4]
mov ecx, dword [0x10088e30]
cmp ecx, dword [edx + 4]
jle 0x10006a6b
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10006a6b
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x10086bc8
test eax, eax
jne 0x10006be6
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [ebx + 8], eax
mov dword [edi + 8], eax
cmp dword [ebx + 8], 0
jne 0x10006b14
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi]
mov ecx, edi
push 1
mov dword [esp + 0x10], eax
call dword [edx]
mov ecx, dword fs:[0x2c]
mov eax, dword [0x1008813c]
mov edx, dword [ecx + eax*4]
mov ecx, dword [0x10088e30]
cmp ecx, dword [edx + 4]
jle 0x10006afc
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10006afc
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x10086bc8
test eax, eax
jne 0x10006bf4
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0
push edi
push 0x10006c20
push 0
push 0
call fcn.1005355f
add esp, 0x18
mov dword [ebx + 4], eax
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x10006bcd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [edi]
mov ecx, edi
push 1
mov dword [esp + 0x10], eax
call dword [edx]
test esi, esi
je 0x10006b5f
push esi
call ebx
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
test eax, eax
je 0x10006b6d
push eax
call ebx
mov eax, dword [0x1008813c]
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + eax*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x10006bb9
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10006bb9
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x10086bc8
test eax, eax
jne 0x10006c02
test esi, esi
je 0x10006bdd
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edx, str.thread.entry_event
lea ecx, [esp + 0xc]
call fcn.100042f0
mov edx, str.thread.exit_event
lea ecx, [esp + 0xc]
call fcn.100042f0
mov edx, str.thread
lea ecx, [esp + 0x18]
call fcn.100042f0
int3
Function at 0x10006d50
Capabilities:
Access peb ldr_data
Get kernel32 base address
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100697ee
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x10086040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x14], esi
mov eax, dword [ebp + 8]
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0
mov dword [ebp - 4], 0
mov dword [esi], 0x1007a6f0
mov dword [esi + 0x14], 0
lea ebx, [esi + 0x18]
mov dword [esi + 0x1c], 0
mov dword [ebx], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
call fcn.10007a90
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov byte [ebp - 4], 3
lea ecx, [esi + 0x38]
mov dword [esi + 0x34], 0
call fcn.10006660
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0xffffffff
mov dword [esi + 0x60], 0
push 0xffffffffffffffff
push 0
push 0
push 0xffffffffffffffff
mov byte [ebp - 4], 6
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [esi + 0x14], eax
test eax, eax
jne 0x10006e93
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword fs:[0x2c]
mov edi, eax
mov edx, dword [0x1008813c]
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10088e30]
cmp ecx, dword [edx + 4]
jle 0x10006e85
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10006e85
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 0x10086bc8
test edi, edi
jne 0x10006f0c
cmp byte [ebp + 0x10], 0
je 0x10006ef6
lock inc dword [ebx]
push 0xc
call fcn.10045ee0
mov edi, eax
add esp, 4
mov dword [ebp + 0x10], edi
mov byte [ebp - 4], 7
push 0x10
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.10045ee0
push eax
mov ecx, edi
mov dword [ebp + 8], eax
mov dword [eax], 0x1007a6cc
mov dword [eax + 0xc], esi
call fcn.100069e0
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x10006ef3
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xc
push ebx
call fcn.1004633f
add esp, 8
mov dword [esi + 0x60], edi
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, str.iocp
lea ecx, [ebp - 0x1c]
call fcn.100042f0
int3
Function at 0x10007270
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10069875
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x10086040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor edx, edx
lea eax, [esi + 0x18]
lock xadd dword [eax], edx
test edx, edx
jne 0x100072d2
call fcn.10007400
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov dword [eax + 4], 0x10086bb8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x24]
mov dword [ebp - 0x28], 0
push eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
call fcn.10047a9b
add esp, 4
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov ecx, esi
mov dword [ebp - 4], 0
push dword [0x10089498]
neg ecx
lea eax, [esi + 0x14]
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
push eax
push dword [0x10089498]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x34]
push ebx
push eax
push ecx
mov ecx, esi
mov byte [ebp - 4], 1
xor edi, edi
call fcn.10007570
test eax, eax
je 0x1000737c
nop dword [eax]
cmp edi, 0xffffffff
lea eax, [edi + 1]
push ebx
cmove eax, edi
mov edi, eax
lea eax, [ebp - 0x34]
push eax
push ecx
mov ecx, esi
call fcn.10007570
test eax, eax
jne 0x10007360
push dword [ebp - 0x14]
push dword [0x10089498]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
xor esi, esi
nop dword [eax]
mov eax, dword [ebp + esi*4 - 0x34]
test eax, eax
je 0x100073a1
push eax
call fcn.1004637e
add esp, 4
inc esi
cmp esi, 3
jl 0x10007390
lea eax, [ebp - 0x24]
push eax
call fcn.10047b86
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x10007dd0
Capabilities:
Set socket configuration

Disassembly:
sub esp, 0x14
push ebx
push ebp
mov ebx, ecx
mov ebp, edx
push esi
push edi
cmp ebx, 0xffffffff
je 0x10007f4d
cmp byte [esp + 0x28], 0
je 0x10007e2f
mov al, byte [ebp]
test al, 8
je 0x10007e2f
or al, 8
mov dword [esp + 0x1c], 0x10086bb8
push 4
mov byte [ebp], al
xor ecx, ecx
lea eax, [esp + 0x18]
mov dword [esp + 0x18], ecx
push eax
push 0x80
push 0xffff
push ebx
mov dword [esp + 0x2c], ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [esp + 0x18]
setne dl
call fcn.10007cd0
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov edi, dword [esp + 0x2c]
mov esi, eax
test esi, esi
mov ecx, edi
setne dl
call fcn.10007cd0
test esi, esi
je 0x10007f43
mov ecx, dword [0x1008813c]
mov eax, dword fs:[0x2c]
mov edx, dword [eax + ecx*4]
mov ecx, dword [0x10088e30]
mov dword [esp + 0x14], edx
cmp ecx, dword [edx + 4]
jle 0x10007ead
push 0x10088e30
call fcn.10045e7c
mov ecx, dword [0x10088e30]
add esp, 4
cmp ecx, 0xffffffff
jne 0x10007ea9
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
mov ecx, dword [0x10088e30]
add esp, 4
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
cmp eax, dword [0x10086bcc]
jne 0x10007ec3
cmp dword [edi], 0x2733
je 0x10007f11
cmp ecx, dword [edx + 4]
jle 0x10007efb
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10007efb
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
cmp eax, dword [0x10086bcc]
jne 0x10007f43
cmp dword [edi], 0x4d5
jne 0x10007f43
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0
push eax
push 0x8004667e
push ebx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
and byte [ebp], 0xfc
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov esi, eax
mov ecx, edi
test esi, esi
setne dl
call fcn.10007cd0
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x14
ret

Function at 0x10007f60
Capabilities:
Connect socket

Disassembly:
push esi
cmp ecx, 0xffffffff
jne 0x10007fc8
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1008813c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x10007fb2
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10007fb2
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [esp + 0xc]
mov dword [eax], 0x2719
mov dword [eax + 4], 0x10086bc8
or eax, 0xffffffff
pop esi
ret
push dword [esp + 8]
push edx
push ecx
call dword [sym.imp.WS2_32.dll_connect]
mov ecx, dword [esp + 0xc]
mov esi, eax
test esi, esi
setne dl
call fcn.10007cd0
mov eax, esi
pop esi
ret
Function at 0x10007ff0
Capabilities:
Set socket configuration

Disassembly:
push ecx
push ebx
mov ebx, dword fs:[0x2c]
push ebp
push esi
mov esi, edx
mov ebp, ecx
push edi
mov edi, dword [0x1008813c]
mov eax, dword [esi]
cmp eax, 0x4cf
jg 0x10008104
je 0x100080bd
cmp eax, 0x79
je 0x10008073
cmp eax, 0x4c9
jne 0x1000815d
mov ecx, dword [ebx + edi*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x10008069
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008069
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, 0x274d
jmp 0x10008154
mov ecx, dword [ebx + edi*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x100080b3
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x100080b3
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, 0x274c
jmp 0x10008154
mov ecx, dword [ebx + edi*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x100080fd
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x100080fd
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, 0x2743
jmp 0x10008154
cmp eax, 0x4d0
jne 0x100081d9
mov ecx, dword [ebx + edi*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x1000814f
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x1000814f
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, 0x2751
mov dword [esi + 4], 0x10086bc8
mov dword [esi], eax
test eax, eax
jne 0x100081d9
cmp ebp, 0xffffffff
jne 0x100081b8
mov ecx, dword [ebx + edi*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x100081a5
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], ebp
jne 0x100081a5
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov dword [esi], 0x2719
mov dword [esi + 4], 0x10086bc8
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
push 0
push 0
push 0x7010
push 0xffff
push ebp
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
mov ecx, esi
setne dl
call fcn.10007cd0
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x100083b0
Capabilities:
Send data
Send data on socket

Disassembly:
push ecx
push ebx
push esi
push edi
push 0
push 0
push 0
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
push eax
push dword [esp + 0x24]
push edx
push ecx
call dword [sym.imp.WS2_32.dll_WSASend]
mov ecx, dword fs:[0x2c]
mov ebx, eax
mov edx, dword [0x1008813c]
mov edi, dword [ecx + edx*4]
mov ecx, dword [0x10088e30]
cmp ecx, dword [edi + 4]
jle 0x10008423
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008423
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, dword [esp + 0x1c]
mov dword [esi], eax
mov dword [esi + 4], 0x10086bc8
cmp eax, 0x40
jne 0x10008480
mov eax, dword [0x10088e30]
cmp eax, dword [edi + 4]
jle 0x10008478
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008478
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov dword [esi], 0x2746
jmp 0x100084ca
cmp eax, 0x4d2
jne 0x100084d1
mov eax, dword [0x10088e30]
cmp eax, dword [edi + 4]
jle 0x100084c4
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x100084c4
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov dword [esi], 0x274d
mov dword [esi + 4], 0x10086bc8
test ebx, ebx
je 0x100084dd
or eax, 0xffffffff
pop edi
pop esi
pop ebx
pop ecx
ret
mov eax, dword [esp + 0xc]
pop edi
mov dword [esi], 0
pop esi
pop ebx
pop ecx
ret

Function at 0x10008630
Capabilities:
Set socket configuration

Disassembly:
push ecx
push ebx
push esi
mov esi, edx
push edi
cmp ecx, 0xffffffff
jne 0x100086a0
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1008813c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x10008687
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008687
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [eax], 0x2719
mov dword [eax + 4], 0x10086bc8
or eax, 0xffffffff
pop edi
pop esi
pop ebx
pop ecx
ret
mov ebx, dword [esp + 0x18]
push ebx
push 0x8004667e
push ecx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov ecx, dword [esp + 0x1c]
mov edi, eax
mov edx, edi
shr edx, 0x1f
call fcn.10007cd0
test edi, edi
js 0x100086db
cmp dword [ebx], 0
mov al, byte [esi]
je 0x100086d7
or al, 1
mov byte [esi], al
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
ret
and al, 0xfc
mov byte [esi], al
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
ret
Function at 0x10008d80
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x424
mov eax, dword [0x10086040]
xor eax, esp
mov dword [esp + 0x420], eax
mov edx, dword [0x1008813c]
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword fs:[0x2c]
push ebx
mov ebx, dword [eax + edx*4]
lea eax, [eax + edx*4]
push esi
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0x400
mov dword [esp + 0x10], eax
push 0
push 0
lea eax, [esp + 0x1c]
mov dword [esp + 0x14], 0
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x20], 0
push eax
push 1
lea eax, [esp + 0x34]
push eax
push dword [ecx]
call dword [sym.imp.WS2_32.dll_WSARecv]
mov ecx, dword [0x10088e30]
mov dword [esp + 0x18], eax
cmp ecx, dword [ebx + 4]
jle 0x10008e36
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008e36
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov edi, 0x10086bc8
cmp esi, 0x40
jne 0x10008e93
mov eax, dword [0x10088e30]
cmp eax, dword [ebx + 4]
jle 0x10008e85
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008e85
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov edi, 0x10086bc8
mov esi, 0x2746
mov eax, edi
jmp 0x10008f01
cmp esi, 0x4d2
jne 0x10008eec
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov eax, dword [0x10088e30]
cmp eax, dword [ecx + 4]
jle 0x10008ede
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008ede
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov edi, 0x10086bc8
mov esi, 0x274d
mov eax, edi
jmp 0x10008f01
cmp esi, 0x2738
je 0x10008f0a
mov eax, 0x10086bc8
cmp esi, 0xea
je 0x10008f0a
cmp dword [esp + 0x18], 0
jne 0x10008f34
jmp 0x10008f0f
mov eax, 0x10086bc8
mov ecx, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0xc]
xor esi, esi
cmp eax, 0x400
je 0x10008dc7
test eax, eax
jg 0x10008ff1
je 0x10008fda
mov eax, dword [esp + 0x10]
mov ebx, dword [eax]
mov eax, dword [0x10088e30]
cmp eax, dword [ebx + 4]
jle 0x10008f77
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008f77
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [edi + 4]
cmp eax, dword [0x10086bcc]
jne 0x10008f8a
cmp esi, 0x2733
je 0x10008ff1
mov eax, dword [0x10088e30]
cmp eax, dword [ebx + 4]
jle 0x10008fc7
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x10008fc7
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov eax, dword [edi + 4]
cmp eax, dword [0x10086bcc]
jne 0x10008fda
cmp esi, 0x4d5
je 0x10008ff1
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x420]
xor ecx, esp
call fcn.10045df2
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x42c]
mov al, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10045df2
mov esp, ebp
pop ebp
ret
Function at 0x10009f20
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10069a7d
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x10086040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov edi, dword [ebp + 0xc]
cmp dword [edi], 0xffffffff
je 0x10009fd5
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1008813c]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10088e3c]
cmp eax, dword [ecx + 4]
jle 0x10009fa1
push 0x10088e3c
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e3c], 0xffffffff
jne 0x10009fa1
push 0x1006f410
call fcn.1004632a
add esp, 4
push 0x10088e3c
call fcn.10045e2b
add esp, 4
mov eax, dword [ebp + 0x1c]
mov dword [eax], 1
mov dword [eax + 4], 0x10086bc0
mov eax, dword [ebp + 8]
mov dword [eax], 1
mov dword [eax + 4], 0x10086bc0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ebx, dword [ebp + 0x14]
push 1
push 0
push 0
push dword [ebp + 0x18]
push ebx
push dword [ebp + 0x10]
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov ecx, dword [ebp + 0x1c]
mov esi, eax
cmp esi, 0xffffffff
sete dl
call fcn.10007cd0
cmp esi, 0xffffffff
jne 0x1000a004
or esi, esi
jmp 0x1000a022
cmp dword [ebp + 0x10], 0x17
jne 0x1000a022
push 4
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0
push eax
push 0x1b
push 0x29
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov dword [ebp + 0x10], esi
mov dword [ebp - 4], 0
cmp esi, 0xffffffff
jne 0x1000a044
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [ebp + 8]
mov dword [esi + 4], edx
jmp 0x1000a11a
mov eax, dword [ebp - 0x10]
push 0
push 0
mov eax, dword [eax + 4]
push dword [eax + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
test eax, eax
jne 0x1000a0bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword fs:[0x2c]
mov edx, dword [0x1008813c]
mov dword [ebp + 0x18], eax
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10088e30]
cmp ecx, dword [edx + 4]
jle 0x1000a0b3
push 0x10088e30
call fcn.10045e7c
add esp, 4
cmp dword [0x10088e30], 0xffffffff
jne 0x1000a0b3
push 0x1006f400
call fcn.1004632a
add esp, 4
push 0x10088e30
call fcn.10045e2b
add esp, 4
mov ecx, dword [ebp + 0x18]
mov edx, 0x10086bc8
jmp 0x1000a0c4
xor ecx, ecx
mov edx, 0x10086bb8
mov eax, dword [ebp + 0x1c]
mov dword [eax + 4], edx
mov dword [eax], ecx
test ecx, ecx
jne 0x1000a039
mov dword [ebp + 0x10], 0xffffffff
mov dword [edi], esi
sub ebx, 1
je 0x1000a0f2
sub ebx, 1
je 0x1000a0ec
mov byte [edi + 4], cl
jmp 0x1000a0f6
mov byte [edi + 4], 0x20
jmp 0x1000a0f6
mov byte [edi + 4], 0x10
push dword [ebp + 0x1c]
push ecx
lea ecx, [edi + 8]
call fcn.1000e6f0
mov eax, dword [ebp + 0x1c]
xor ecx, ecx
mov esi, dword [ebp + 8]
mov dword [eax], ecx
mov dword [eax + 4], 0x10086bb8
mov dword [esi + 4], 0x10086bb8
mov dword [esi], ecx
lea ecx, [ebp + 0x10]
call fcn.100086f0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18