joyce8/EMBER2024-capa huggingface dataset:
Function at 0x470aa0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62c170
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x6d45e0]
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]
xor edx, edx
lock xadd dword [eax], edx
test edx, edx
jne 0x470af7
call fcn.00470bc0
call fcn.005acf90
mov dword [ebx + 4], eax
xor eax, eax
mov dword [ebx], 0
jmp 0x470b84
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x18]
push dword [0x6f633c]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
movq qword [ebp - 0x24], xmm0
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 [0x6f633c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push ebx
push ecx
mov ecx, edi
mov byte [ebp - 4], 1
xor esi, esi
call fcn.00470e00
test eax, eax
je 0x470b63
nop
cmp esi, 0xffffffff
je 0x470b56
inc esi
push ebx
push ecx
mov ecx, edi
call fcn.00470e00
test eax, eax
jne 0x470b50
push dword [ebp - 0x1c]
push dword [0x6f633c]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x470b82
push ecx
call fcn.004c41b0
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.004c392d
mov esp, ebp
pop ebp
ret 4
Function at 0x4713c0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x6d45e0]
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 0x4714cf
cmp byte [ebp + 8], bl
je 0x47143b
test byte [esi], 8
je 0x47143b
xor eax, eax
mov dword [ebp - 8], eax
call fcn.005acf90
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.005acf90
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test esi, esi
jne 0x47143d
call fcn.005acf90
jmp 0x47143d
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.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
je 0x4714cf
call fcn.005acf90
cmp dword [edi + 4], eax
jne 0x471476
cmp dword [edi], 0x2733
je 0x471488
call fcn.005acf90
cmp dword [edi + 4], eax
jne 0x4714cb
cmp dword [edi], 0x4d5
jne 0x4714cb
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.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
jne 0x4714dd
call fcn.005acf90
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.004c392d
mov esp, ebp
pop ebp
ret

Function at 0x4714f0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x6d45e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov dword [ebp - 0xc], edx
push edi
cmp esi, 0xffffffff
jne 0x471531
call fcn.005acf90
mov dword [ebx], 0x2719
mov dword [ebx + 4], eax
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
lea eax, [ebp - 8]
mov dword [ebp - 8], 1
push eax
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov edi, eax
call fcn.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
test edi, edi
js 0x47151e
call fcn.005acf90
mov ecx, dword [ebp - 4]
mov dword [ebx + 4], eax
xor ecx, ebp
mov eax, dword [ebp - 0xc]
pop edi
mov dword [ebx], 0
pop esi
or byte [eax], 2
mov al, 1
pop ebx
call fcn.004c392d
mov esp, ebp
pop ebp
ret
Function at 0x471590
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 0x4715b9
call fcn.005acf90
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.005acf90
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 0x4715f1
call fcn.005acf90
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 0x4717a0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x6d45e0]
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 1
push edi
push esi
call dword [sym.imp.WS2_32.dll_WSARecv]
mov edi, eax
call fcn.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
cmp eax, 0x40
jne 0x47180c
call fcn.005acf90
mov dword [ebx], 0x2746
jmp 0x47181e
cmp eax, 0x4d2
jne 0x471821
call fcn.005acf90
mov dword [ebx], 0x274d
mov dword [ebx + 4], eax
test edi, edi
je 0x471839
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret
call fcn.005acf90
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.004c392d
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x6d45e0]
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 1
push edi
push esi
call dword [sym.imp.WS2_32.dll_WSASend]
mov edi, eax
call fcn.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
cmp eax, 0x40
jne 0x471943
call fcn.005acf90
mov dword [ebx], 0x2746
jmp 0x471955
cmp eax, 0x4d2
jne 0x471958
call fcn.005acf90
mov dword [ebx], 0x274d
mov dword [ebx + 4], eax
test edi, edi
je 0x471970
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret
call fcn.005acf90
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.004c392d
mov esp, ebp
pop ebp
ret
Function at 0x4719a0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x6d45e0]
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.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebx], eax
mov dword [ebx + 4], esi
cmp edi, 0xffffffff
jne 0x471a02
or eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 8], 0x17
jne 0x471a20
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.005acf90
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.004c392d
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x6d45e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ebx
push edi
mov edi, dword [ebp + 0xc]
cmp esi, 0xffffffff
jne 0x471c67
call fcn.005acf90
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.004c392d
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov eax, dword [ebx]
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
push dword [ebp - 0xc]
push esi
call dword [sym.imp.WS2_32.dll_getsockname]
mov ecx, dword [ebp - 8]
mov ebx, eax
mov eax, dword [ebp - 0x10]
mov dword [eax], ecx
call fcn.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
jne 0x471cac
call fcn.005acf90
mov dword [edi], ebx
mov dword [edi + 4], eax
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c392d
mov esp, ebp
pop ebp
ret
Function at 0x471cc0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
cmp esi, 0xffffffff
jne 0x471cec
call fcn.005acf90
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 4], eax
or eax, esi
mov dword [ecx], 0x2719
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push dword [ebp + 0xc]
push 0x8004667e
push esi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov dword [ebp - 4], eax
call fcn.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, dword [ebp + 0x10]
mov dword [ebx + 4], esi
mov esi, dword [ebp - 4]
mov dword [ebx], eax
test esi, esi
js 0x471d47
call fcn.005acf90
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx], 0
cmp dword [eax], 0
je 0x471d44
or byte [edi], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
and byte [edi], 0xfc
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x471d50
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
push 0
mov ebx, edx
mov dword [ebp - 4], ecx
call dword [sym.imp.WS2_32.dll_WSASetLastError]
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
test ebx, ebx
jne 0x471dbc
test ecx, ecx
jne 0x471dbc
test edi, edi
jne 0x471dbc
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x471ddd
mov eax, 0x10624dd3
imul dword [esi + 4]
imul eax, dword [esi], 0x3e8
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, eax
mov eax, 1
cmove ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.005acf90
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 4], eax
xor eax, eax
mov dword [ecx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x471ddd
cmp dword [esi], 0
jne 0x471ddd
mov eax, dword [esi + 4]
test eax, eax
jle 0x471ddd
cmp eax, 0x3e8
jge 0x471ddd
mov dword [esi + 4], 0x3e8
push esi
push edi
push ecx
push ebx
push dword [ebp - 4]
call dword [sym.imp.WS2_32.dll_select]
mov ebx, eax
call fcn.005acf90
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [ebp + 0x14]
mov dword [edi], eax
mov dword [edi + 4], esi
test ebx, ebx
js 0x471e13
call fcn.005acf90
mov dword [edi], 0
mov dword [edi + 4], eax
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4728a0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x6d45e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x41c], 0x400
mov esi, ecx
movq qword [ebp - 0x410], xmm0
lea eax, [ebp - 0x408]
mov dword [ebp - 0x420], esi
push edi
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x410], 0
call fcn.005acf90
mov ecx, dword [esi]
lea edx, [ebp - 0x41c]
mov dword [ebp - 0x40c], eax
lea eax, [ebp - 0x410]
push eax
sub esp, 8
call fcn.004717a0
add esp, 0xc
test eax, eax
setg bl
cmp eax, 0x400
jne 0x472995
mov edi, dword [sym.imp.WS2_32.dll_WSARecv]
mov esi, dword [esi]
push 0
call dword [sym.imp.WS2_32.dll_WSASetLastError]
push 0
push 0
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x414], 0
push eax
lea eax, [ebp - 0x414]
mov dword [ebp - 0x40c], 0
push eax
push 1
lea eax, [ebp - 0x41c]
push eax
push esi
call edi
mov esi, eax
call fcn.005acf90
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
je 0x472975
cmp eax, 0x4d2
jne 0x47297a
call fcn.005acf90
test esi, esi
jne 0x472995
call fcn.005acf90
cmp dword [ebp - 0x414], 0x400
mov esi, dword [ebp - 0x420]
je 0x472920
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c392d
mov esp, ebp
pop ebp
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x6d45e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x1c]
mov eax, 1
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 4]
add edx, 0x18
lock xadd dword [edx], eax
cmp byte [ebp + 0x18], 0
push 0
je 0x473a03
mov ecx, dword [edi + 4]
push 0
push ebx
call fcn.00470d80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x473a2b
mov ecx, dword [edi + 4]
push 0x2719
push ebx
call fcn.00470d80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
push ebx
push dword [ebp + 0x14]
lea ecx, [ebp - 8]
mov dword [ebp - 8], 0
push ecx
push dword [ebp + 0x10]
push esi
push eax
call dword [sym.imp.WS2_32.dll_WSASend]
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test esi, esi
je 0x473a85
cmp eax, 0x3e5
je 0x473a85
push dword [ebp - 8]
mov ecx, dword [edi + 4]
push eax
push ebx
call fcn.00470d80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [edi + 4]
push ebx
call fcn.00470d10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
Function at 0x473ab0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x6d45e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, 1
push esi
mov esi, ecx
mov ecx, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x1c]
mov edx, dword [esi + 4]
add edx, 0x18
lock xadd dword [edx], eax
cmp byte [ebp + 0x18], 0
push 0
je 0x473b03
mov ecx, dword [esi + 4]
push 0
push edi
call fcn.00470d80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
jne 0x473b2b
mov ecx, dword [esi + 4]
push 0x2719
push edi
call fcn.00470d80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
mov eax, dword [ebp + 0x14]
push edi
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push dword [ebp + 0x10]
push ebx
push ecx
call dword [sym.imp.WS2_32.dll_WSARecv]
mov ebx, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x40
jne 0x473b60
mov eax, 0x2746
jmp 0x473b6d
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
je 0x473b98
cmp eax, 0x3e5
je 0x473b98
push dword [ebp - 8]
mov ecx, dword [esi + 4]
push eax
push edi
call fcn.00470d80
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [esi + 4]
push edi
call fcn.00470d10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c392d
mov esp, ebp
pop ebp
ret 0x18
Function at 0x474360
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x6beb48
push 0x4ce0c0
mov eax, dword fs:[0]
push eax
sub esp, 0x110
mov eax, dword [0x6d45e0]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.asio_58CCDC44_6264_4842_90C2_F3C545CB8AA7__u__p
push 0x80
lea eax, [ebp - 0x11c]
push eax
call fcn.004ccf5e
add esp, 0x14
lea eax, [ebp - 0x11c]
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, eax
mov dword [ebp - 0x120], edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
test edi, edi
jne 0x4743e8
call ebx
jmp 0x474486
cmp eax, 0xb7
jne 0x4743f8
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp byte [esi], 0
jne 0x47443e
mov dword [ebp - 4], 0
push SysReAllocString
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x474434
call ebx
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xfffffffe
mov eax, esi
jmp 0x474486
mov dword [ebp - 4], 0xfffffffe
mov byte [esi], 1
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x474486
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret
Function at 0x475210
Capabilities:
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62c899
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x6d45e0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea eax, [edi + 0x18]
push eax
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x14], 1
mov esi, dword [ebp + 8]
mov dword [ebp - 4], 0
mov edx, dword [edi + 0x334]
shr esi, 3
add esi, dword [ebp + 8]
mov ecx, esi
lea eax, [edx + 1]
shl ecx, 6
mov dword [edi + 0x334], eax
add ecx, edx
mov eax, esi
shr eax, 2
add eax, 0x9e3779b9
add eax, ecx
xor esi, eax
mov eax, 0x15390949
mul esi
shr edx, 4
imul eax, edx, 0xffffff3f
add esi, eax
cmp dword [edi + esi*4 + 0x30], 0
lea edi, [edi + esi*4]
jne 0x475308
push 0x4c
call fcn.004c4200
mov esi, eax
add esp, 4
mov dword [ebp - 0x10], esi
mov byte [ebp - 4], 1
test esi, esi
je 0x4752ca
push 0x4c
push 0
push esi
call fcn.004cf9d0
add esp, 0xc
mov ecx, esi
call fcn.00474ec0
mov ebx, eax
jmp 0x4752cc
xor ebx, ebx
mov byte [ebp - 4], 0
mov esi, dword [edi + 0x30]
mov dword [ebp - 0x10], esi
test esi, esi
je 0x475305
lea ecx, [esi + 0x44]
mov byte [ebp - 4], 3
call fcn.00432e40
lea ecx, [esi + 0x3c]
mov byte [ebp - 4], 2
call fcn.00432e40
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push esi
call fcn.004c41b0
add esp, 4
mov dword [edi + 0x30], ebx
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 0x30]
push dword [ebp - 0x18]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
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 0x475330
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov eax, ecx
push edi
push dword [0x6f633c]
mov edi, dword [ebp + 8]
mov ebx, dword [eax + 0x14]
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x475360
cmp dword [eax], ebx
je 0x475395
mov eax, dword [eax + 8]
test eax, eax
jne 0x475355
xor ebx, ebx
mov eax, dword [edi]
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ebx, ebx
je 0x47539a
mov eax, dword [edi]
cmp byte [eax + 0x38], 0
jne 0x47539a
mov byte [eax + 0x38], 1
mov eax, dword [edi]
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ebx, dword [eax + 4]
jmp 0x475362
mov eax, dword [edi]
cmp byte [eax + 0x38], 0
je 0x4753ea
mov dword [esi + 0x14], 0
mov ecx, dword [eax + 0x40]
test ecx, ecx
je 0x4753cd
mov dword [ecx + 0x14], esi
mov dword [eax + 0x40], esi
mov eax, dword [edi]
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov dword [eax + 0x3c], esi
mov dword [eax + 0x40], esi
mov eax, dword [edi]
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
mov byte [eax + 0x38], 1
mov eax, dword [edi]
add eax, 0x20
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [edi]
add eax, 0x44
mov dword [esi + 0x14], 0
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x475412
mov dword [ecx + 0x14], esi
jmp 0x475414
mov dword [eax], esi
push ecx
mov ecx, dword [ebp - 4]
mov dword [eax + 4], esi
push dword [edi]
mov ecx, dword [ecx + 0x14]
call fcn.00470570
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x478650
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x62ccd9
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x6d45e0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x7c], 0
cmp dword [edx + 0x14], 0x10
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x70], 0x67452301
mov dword [ebp - 0x6c], 0xefcdab89
mov dword [ebp - 0x68], 0x98badcfe
mov dword [ebp - 0x64], 0x10325476
jb 0x4786ba
mov edx, dword [edx]
push eax
lea ecx, [ebp - 0x78]
call fcn.00478440
add esp, 4
lea edx, [ebp - 0x20]
lea ecx, [ebp - 0x78]
call fcn.00478500
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
mov dword [ebp - 4], 0
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x7c], 1
cmp ecx, 0x10
jb 0x478715
cmp dword [esi + 0x14], 0x10
mov dword [esi + 0x10], 0x10
jb 0x47870d
mov eax, dword [esi]
mov byte [eax + 0x10], 0
jmp 0x478726
mov eax, esi
mov byte [eax + 0x10], 0
jmp 0x478726
mov eax, 0x10
sub eax, ecx
mov ecx, esi
push 0
push eax
call fcn.00405eb0
cmp dword [esi + 0x14], 0x10
jb 0x478730
mov eax, dword [esi]
jmp 0x478732
mov eax, esi
push 0x10
lea ecx, [ebp - 0x20]
push ecx
push eax
call fcn.004c3940
add esp, 0xc
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c392d
mov esp, ebp
pop ebp
ret