joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1007e210
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x10001850]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0
push 0
push 1
mov esi, ecx
push 0
mov dword [esp + 0x28], esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, eax
mov dword [ebx + 4], edi
test edi, edi
jne 0x1007e279
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebx]
mov ecx, ebx
push 1
mov esi, eax
call dword [edx]
xorps xmm0, xmm0
movq qword [esp + 0x10], xmm0
mov dword [esp + 0x10], esi
call fcn.100d1da0
mov dword [esp + 0x14], eax
test esi, esi
jne 0x1007e35c
mov esi, dword [esp + 0x18]
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [esi + 8], eax
mov dword [ebx + 8], eax
cmp dword [esi + 8], 0
jne 0x1007e2c5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebx]
mov ecx, ebx
push 1
mov esi, eax
call dword [edx]
xorps xmm0, xmm0
movq qword [esp + 0x10], xmm0
mov dword [esp + 0x10], esi
call fcn.100d1da0
mov dword [esp + 0x14], eax
test esi, esi
jne 0x1007e36a
mov esi, dword [esp + 0x18]
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0
push eax
push 0
push ebx
push 0x1007e390
push 0
push 0
call fcn.100b26f6
add esp, 0x18
mov dword [esi + 4], eax
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x1007e338
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebx]
mov ecx, ebx
push 1
mov dword [esp + 0x14], eax
call dword [edx]
test edi, edi
je 0x1007e30c
push edi
call esi
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 8]
test eax, eax
je 0x1007e31a
push eax
call esi
mov ebx, dword [esp + 0x10]
xorps xmm0, xmm0
movq qword [esp + 0x18], xmm0
mov dword [esp + 0x18], ebx
call fcn.100d1da0
mov dword [esp + 0x1c], eax
test ebx, ebx
jne 0x1007e378
test edi, edi
je 0x1007e348
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call esi
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 8
mov edx, str.thread.entry_event
lea ecx, [esp + 0x10]
call fcn.1007dc20
mov edx, str.thread.exit_event
lea ecx, [esp + 0x10]
call fcn.1007dc20
mov edx, str.thread
lea ecx, [esp + 0x18]
call fcn.1007dc20
int3
Function at 0x1007e440
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e4df7
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [edi], vtable.boost::asio::io_service::service.0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [ebp - 0x1c], edi
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], 0
mov dword [ebp - 4], 0
mov dword [edi], vtable.boost::asio::detail::service_base_class_boost::asio::detail::win_iocp_io_service_.0
mov dword [ebp - 4], 1
mov dword [edi], vtable.boost::asio::detail::win_iocp_io_service.0
mov dword [edi + 0x14], 0
mov byte [ebp - 4], 2
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov byte [ebp - 4], 3
mov dword [edi + 0x2c], 0
mov byte [ebp - 4], 4
lea ecx, [edi + 0x34]
mov dword [edi + 0x30], 0
call fcn.1007dea0
xorps xmm0, xmm0
mov esi, eax
movq qword [ebp - 0x18], xmm0
call fcn.100d1da0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], eax
test esi, esi
je 0x1007e520
mov edx, str.mutex
lea ecx, [ebp - 0x18]
call fcn.1007dc20
mov byte [ebp - 4], 5
mov dword [edi + 0x4c], 0
mov dword [edi + 0x50], 0
mov dword [edi + 0x54], 0
mov byte [ebp - 4], 6
or eax, 0xffffffff
cmp ebx, 0xffffffff
cmovb eax, ebx
push eax
push 0
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateIoCompletionPort]
mov dword [edi + 0x14], eax
test eax, eax
jne 0x1007e586
call dword [sym.imp.KERNEL32.dll_GetLastError]
xorps xmm0, xmm0
mov esi, eax
movq qword [ebp - 0x18], xmm0
call fcn.100d1da0
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], eax
test esi, esi
je 0x1007e586
mov edx, str.iocp
lea ecx, [ebp - 0x18]
call fcn.1007dc20
mov dword [ebp - 4], 0xffffffff
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 8
Function at 0x1007e900
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e4f10
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, dword [ebp + 8]
lea eax, [edi + 0x18]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
test eax, eax
jne 0x1007e95c
mov ecx, edi
call fcn.1007ea20
call fcn.100d1da0
mov dword [ebx + 4], eax
xor eax, eax
mov dword [ebx], 0
jmp 0x1007e9f3
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 1
xorps xmm0, xmm0
push dword [0x100ee5c4]
movq qword [ebp - 0x24], xmm0
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
push dword [0x100ee5c4]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov byte [ebp - 4], 2
xor esi, esi
push ebx
push ecx
mov ecx, edi
call fcn.1007ebb0
test eax, eax
je 0x1007e9c7
cmp esi, 0xffffffff
je 0x1007e9ba
inc esi
push ebx
push ecx
mov ecx, edi
call fcn.1007ebb0
test eax, eax
jne 0x1007e9b4
mov byte [ebp - 4], 1
push dword [ebp - 0x1c]
push dword [0x100ee5c4]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x1007e9f1
push ecx
call fcn.100af6c3
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 4
Function at 0x1007f010
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov eax, ecx
mov esi, edx
xor ebx, ebx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], eax
push edi
mov edi, dword [ebp + 0xc]
cmp eax, 0xffffffff
je 0x1007f11f
cmp byte [ebp + 8], bl
je 0x1007f08b
test byte [esi], 8
je 0x1007f08b
xor eax, eax
mov dword [ebp - 8], eax
call fcn.100d1da0
or byte [esi], 8
push ebx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov ebx, dword [ebp - 0xc]
lea eax, [ebp - 8]
push 4
push eax
push 0x80
push 0xffff
push ebx
call dword [sym.imp.WS2_32.dll_setsockopt]
mov esi, eax
call fcn.100d1da0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test esi, esi
jne 0x1007f08d
call fcn.100d1da0
jmp 0x1007f08d
mov ebx, eax
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov ebx, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
je 0x1007f11f
call fcn.100d1da0
cmp dword [edi + 4], eax
jne 0x1007f0c6
cmp dword [edi], 0x2733
je 0x1007f0d8
call fcn.100d1da0
cmp dword [edi + 4], eax
jne 0x1007f11b
cmp dword [edi], 0x4d5
jne 0x1007f11b
mov ebx, dword [ebp - 0xc]
lea eax, [ebp - 8]
push eax
push 0x8004667e
push ebx
mov dword [ebp - 8], 0
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov eax, dword [ebp - 0x10]
push 0
and byte [eax], 0xfc
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov ebx, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
jne 0x1007f12d
call fcn.100d1da0
mov dword [edi], 0
mov dword [edi + 4], eax
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret

Function at 0x1007f140
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
cmp esi, 0xffffffff
jne 0x1007f169
call fcn.100d1da0
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], eax
or eax, esi
mov dword [ecx], 0x2719
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp + 8]
push edi
push esi
call dword [sym.imp.WS2_32.dll_connect]
mov ebx, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [ebp + 0xc]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
jne 0x1007f1a1
call fcn.100d1da0
mov dword [edi], ebx
mov dword [edi + 4], eax
pop edi
pop esi
mov eax, ebx
pop ebx
pop ecx
pop ebp
ret
Function at 0x1007f250
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push 0
mov edi, edx
mov esi, ecx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
push 0
lea eax, [ebp - 0xc]
mov dword [ebp - 8], 0
push eax
lea eax, [ebp - 8]
mov dword [ebp - 0xc], 0
push eax
push dword [ebp + 8]
push edi
push esi
call dword [sym.imp.WS2_32.dll_WSARecv]
mov edi, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
cmp eax, 0x40
jne 0x1007f2bd
call fcn.100d1da0
mov dword [ebx], 0x2746
jmp 0x1007f2cf
cmp eax, 0x4d2
jne 0x1007f2d2
call fcn.100d1da0
mov dword [ebx], 0x274d
mov dword [ebx + 4], eax
test edi, edi
je 0x1007f2ea
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
call fcn.100d1da0
mov ecx, dword [ebp - 4]
pop edi
mov dword [ebx + 4], eax
xor ecx, ebp
mov eax, dword [ebp - 8]
pop esi
mov dword [ebx], 0
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
push 0
mov edi, edx
mov esi, ecx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
push 0
push 0
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push dword [ebp + 8]
push edi
push esi
call dword [sym.imp.WS2_32.dll_WSASend]
mov edi, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
cmp eax, 0x40
jne 0x1007f454
call fcn.100d1da0
mov dword [ebx], 0x2746
jmp 0x1007f466
cmp eax, 0x4d2
jne 0x1007f469
call fcn.100d1da0
mov dword [ebx], 0x274d
mov dword [ebx + 4], eax
test edi, edi
je 0x1007f481
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
call fcn.100d1da0
mov ecx, dword [ebp - 4]
pop edi
mov dword [ebx + 4], eax
xor ecx, ebp
mov eax, dword [ebp - 8]
pop esi
mov dword [ebx], 0
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
Function at 0x1007f570
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, ecx
mov esi, edx
push 0
mov dword [ebp - 8], edi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 1
push 0
push 0
push dword [ebp + 8]
push esi
push edi
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov edi, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
cmp edi, 0xffffffff
jne 0x1007f5d2
or eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 8], 0x17
jne 0x1007f5f0
push 4
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 0x1b
push 0x29
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
call fcn.100d1da0
mov ecx, dword [ebp - 4]
mov dword [ebx + 4], eax
xor ecx, ebp
mov eax, edi
mov dword [ebx], 0
pop edi
pop esi
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret

Function at 0x1007f6d0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
cmp esi, 0xffffffff
jne 0x1007f711
call fcn.100d1da0
mov dword [edi + 4], eax
or eax, esi
mov dword [edi], 0x2719
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
push 0
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x118], 1
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
push 0
push 0
lea eax, [ebp - 0x118]
push eax
lea eax, [esi + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
mov ebx, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
je 0x1007f768
jle 0x1007f776
call fcn.100d1da0
mov dword [edi + 4], eax
mov dword [edi], 0
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
Function at 0x1007f790
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
cmp esi, 0xffffffff
jne 0x1007f7d1
call fcn.100d1da0
mov dword [edi + 4], eax
or eax, esi
mov dword [edi], 0x2719
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
push 0
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x118], 1
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
push 0
lea eax, [ebp - 0x118]
push eax
push 0
lea eax, [esi + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
mov ebx, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
je 0x1007f828
jle 0x1007f836
call fcn.100d1da0
mov dword [edi + 4], eax
mov dword [edi], 0
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret

Function at 0x1007f850
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
cmp esi, 0xffffffff
jne 0x1007f890
call fcn.100d1da0
mov dword [edi + 4], eax
or eax, esi
mov dword [edi], 0x2719
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
push 0
mov dword [ebp - 0x214], esi
mov dword [ebp - 0x218], 1
mov dword [ebp - 0x10c], esi
mov dword [ebp - 0x110], 1
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x218]
push eax
push 0
lea eax, [esi + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
mov ebx, eax
call fcn.100d1da0
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
js 0x1007f8fa
call fcn.100d1da0
mov dword [edi], 0
mov dword [edi + 4], eax
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
Function at 0x1007fd40
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100e50a8
mov eax, dword fs:[0]
push eax
sub esp, 0x38
mov eax, dword [0x10001850]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push esi
push edi
mov eax, dword [0x10001850]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
lea eax, [ebx + 0xc]
push eax
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x2c], 1
mov dword [esp + 0x50], 0
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x1007feaf
call fcn.100d1da0
cmp dword [esi], 0xffffffff
je 0x1007fe0d
push 0
push 0
lea eax, [ebx + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedCompareExchange]
mov dword [esp + 0x38], eax
test eax, eax
je 0x1007fe0d
mov edi, dword [esi]
lea ebx, [eax + 0x18]
push ebx
mov dword [esp + 0x34], ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x34], 1
mov byte [esp + 0x50], 1
call fcn.100d1da0
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x20]
push eax
push edi
mov dword [esp + 0x28], 0x3e3
call fcn.1007fb90
mov byte [esp + 0x50], 0
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [esp + 0x1c]
xorps xmm0, xmm0
movq qword [esp + 0x38], xmm0
mov dword [esp + 0x38], 0
call fcn.100d1da0
mov ecx, dword [esi]
lea edx, [esi + 4]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x38]
push eax
push 1
call fcn.1007f010
add esp, 8
mov dword [esi], 0xffffffff
mov byte [esi + 4], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov byte [esp + 0x50], 2
mov edi, dword [esi + 0xc]
mov dword [esp + 0x18], edi
mov dword [esi + 0xc], 0
mov eax, dword [esi + 8]
mov dword [esp + 0x14], eax
mov dword [esi + 8], 0
mov byte [esp + 0x50], 0
test edi, edi
je 0x1007fea4
lea eax, [edi + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x1007fea4
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lea eax, [edi + 8]
or edx, 0xffffffff
lock xadd dword [eax], edx
jne 0x1007fea4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov esi, dword [esi + 0x14]
test esi, esi
jne 0x1007fda3
mov dword [esp + 0x50], 0xffffffff
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
Function at 0x10081990
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [0x10001850]
xor eax, esp
mov dword [esp + 0x1a0], eax
push esi
push 0x100ee5ac
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
cmp eax, 1
jne 0x100819d6
lea eax, [esp + 0x10]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
push eax
push 0x100ee5b0
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
cmp byte [ebp + 8], 0
je 0x100819ed
push 0
push 0x100ee5b0
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
test eax, eax
jne 0x10081a04
mov ecx, dword [esp + 0x1a4]
mov eax, esi
pop esi
xor ecx, esp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 4
xorps xmm0, xmm0
movq qword [esp + 8], xmm0
mov dword [esp + 8], eax
call fcn.100d1da0
mov edx, str.winsock
mov dword [esp + 0xc], eax
lea ecx, [esp + 8]
call fcn.1007dc20
int3

Function at 0x10082030
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e5823
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1c], ebx
call fcn.10014a40
mov dword [ebp - 4], 0
lea ecx, [ebx + 0x38]
mov eax, dword [ebp + 8]
mov dword [ebx], vtable.boost::asio::basic_streambuf_class_std::allocator_char__.0
mov dword [ecx], eax
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x44], 0
mov byte [ebp - 4], 1
lea eax, [ebp - 0x18]
cmp dword [ecx], 0x80
mov dword [ebp - 0x18], 0x80
cmovbe eax, ecx
lea ecx, [ebp - 0x14]
mov esi, dword [eax]
cmp esi, 1
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], esi
cmovae eax, ecx
mov dword [ebp - 0x18], 1
lea ecx, [ebx + 0x3c]
push dword [eax]
call fcn.1005a060
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x3c]
mov dword [eax], ecx
mov eax, dword [ebx + 0x1c]
mov dword [eax], ecx
sub ecx, ecx
mov eax, dword [ebx + 0x2c]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x3c]
add esi, edx
sub esi, edx
mov dword [ecx], edx
mov ecx, dword [ebx + 0x20]
mov dword [ecx], edx
mov ecx, dword [ebx + 0x30]
mov dword [ecx], esi
mov dword [ebp - 4], 0xffffffff
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 8
Function at 0x10091680
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e8011
mov eax, dword fs:[0]
push eax
sub esp, 0x20
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], 0
call fcn.10091550
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], 0
push eax
push 0
push esi
push 0x10091340
push 0
xorps xmm0, xmm0
push 0
movq qword [edi], xmm0
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, eax
mov ecx, edi
call fcn.1006ffb0
mov dword [ebp - 4], 0
mov eax, dword [edi]
mov dword [ebp - 0x1c], 1
test eax, eax
je 0x10091755
cmp dword [eax], 0
je 0x10091755
push 0x100ec4ec
mov dword [ebp - 0x14], 0x100ec4ec
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [ebp - 4], 1
push edi
call fcn.10091c30
mov byte [ebp - 4], 0
push 0x100ec4ec
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], str.wtf__cannot_create_the_thread
push eax
lea ecx, [ebp - 0x2c]
call fcn.100b0028
push 0x10127e74
lea eax, [ebp - 0x2c]
push eax
call fcn.100b5cab
int3

Function at 0x10092800
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x10001850]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov eax, dword [edi]
add eax, eax
mov dword [edi], 0
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push esi
lea eax, [ebp - 8]
push eax
push 0
push edx
push dword [ecx]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1009288b
mov eax, dword [ebp - 8]
cmp eax, 1
je 0x1009284d
cmp eax, 2
jne 0x10092869
mov ecx, dword [ebp - 0xc]
test esi, esi
je 0x10092885
test ecx, ecx
je 0x10092880
test cl, 1
jne 0x10092869
mov eax, ecx
shr eax, 1
cmp word [esi + eax*2 - 2], 0
je 0x10092885
pop edi
mov eax, 0xd
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 0xc
xor eax, eax
mov word [esi], ax
shr ecx, 1
xor eax, eax
mov dword [edi], ecx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100b0fcd
mov esp, ebp
pop ebp
ret 0xc