joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4064d0
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x4b0300]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x18], esi
cmp ebx, 0xffffffff
je 0x4066a6
cmp byte [ebp + 8], 0
je 0x406532
mov al, byte [edx]
test al, 8
je 0x406532
or al, 8
xor ecx, ecx
push 4
mov byte [edx], al
lea eax, [ebp - 8]
push eax
push 0x80
push 0xffff
push ebx
mov dword [ebp - 8], ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
lea ecx, [ebp - 0x14]
setne dl
call fcn.004063a0
push ebx
call dword [sym.imp.WS2_32.dll_closesocket]
mov ebx, eax
mov ecx, esi
test ebx, ebx
setne dl
call fcn.004063a0
test ebx, ebx
je 0x406694
mov esi, dword [0x4b0e04]
push edi
mov edi, dword [0x4b0e00]
cmp edi, 0x257edfd1
jne 0x40656c
cmp esi, 0xb2ab117a
je 0x40657c
cmp edi, 0x257edfd0
jne 0x406580
cmp esi, 0xb2ab117a
jne 0x406580
mov al, 1
jmp 0x4065a0
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2733
mov eax, dword [eax + 0x18]
call eax
mov esi, dword [0x4b0e04]
mov edi, dword [0x4b0e00]
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
movzx eax, al
mov dword [ebp - 0x14], 0x2733
add eax, 2
mov dword [ebp - 0x10], 0x4b0df8
movq xmm0, qword [ebp - 0x14]
movq qword [ebp - 0x14], xmm0
mov dword [ebp - 0xc], eax
call fcn.004059f0
test al, al
jne 0x40664b
cmp edi, 0x257edfd1
jne 0x4065e0
cmp esi, 0xb2ab117a
je 0x4065f0
cmp edi, 0x257edfd0
jne 0x4065f4
cmp esi, 0xb2ab117a
jne 0x4065f4
mov al, 1
jmp 0x406608
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x4d5
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [ebp - 0x18]
lea edx, [ebp - 0x14]
movzx eax, al
mov dword [ebp - 0x14], 0x4d5
add eax, 2
mov dword [ebp - 0x10], 0x4b0df8
movq xmm0, qword [ebp - 0x14]
movq qword [ebp - 0x14], xmm0
mov dword [ebp - 0xc], eax
call fcn.004059f0
test al, al
jne 0x40664b
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp - 0x1c]
lea eax, [ebp - 8]
push eax
push 0x8004667e
push esi
mov dword [ebp - 8], 0
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov eax, dword [ebp - 0x20]
push esi
and byte [eax], 0xfc
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [ebp - 0x18]
mov esi, eax
test esi, esi
setne dl
call fcn.004063a0
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.00469231
mov esp, ebp
pop ebp
ret
Function at 0x4066c0
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
cmp ecx, 0xffffffff
jne 0x406736
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x4066e5
cmp eax, 0xb2ab117a
je 0x4066f4
cmp ecx, 0x257edfd0
jne 0x4066f8
cmp eax, 0xb2ab117a
jne 0x4066f8
mov al, 1
jmp 0x40670c
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2719
mov eax, dword [eax + 0x18]
call eax
movzx ecx, al
mov eax, dword [ebp + 0xc]
add ecx, 2
mov dword [ebp - 0xc], 0x2719
mov dword [ebp - 8], 0x4b0df8
movq xmm0, qword [ebp - 0xc]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
or eax, 0xffffffff
mov esp, ebp
pop ebp
ret
push esi
push dword [ebp + 8]
push edx
push ecx
call dword [sym.imp.WS2_32.dll_connect]
mov ecx, dword [ebp + 0xc]
mov esi, eax
test esi, esi
setne dl
call fcn.004063a0
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x406760
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, edx
push edi
mov edi, ecx
cmp dword [esi + 8], 1
je 0x406776
mov eax, dword [esi]
jmp 0x40678a
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, 0x1ffff7
div ecx
imul eax, edx, 0x3e8
add eax, dword [esi]
cmp eax, 0x4cf
jg 0x4068aa
je 0x406859
cmp eax, 0x79
je 0x406802
cmp eax, 0x4c9
jne 0x406912
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x4067c5
cmp eax, 0xb2ab117a
je 0x4067d4
cmp ecx, 0x257edfd0
jne 0x4067e2
cmp eax, 0xb2ab117a
jne 0x4067e2
mov al, 1
mov dword [ebp - 0xc], 0x274d
jmp 0x4068f9
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x274d
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0xc], 0x274d
jmp 0x4068f9
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x40681c
cmp eax, 0xb2ab117a
je 0x40682b
cmp ecx, 0x257edfd0
jne 0x406839
cmp eax, 0xb2ab117a
jne 0x406839
mov al, 1
mov dword [ebp - 0xc], 0x274c
jmp 0x4068f9
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x274c
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0xc], 0x274c
jmp 0x4068f9
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x406873
cmp eax, 0xb2ab117a
je 0x406882
cmp ecx, 0x257edfd0
jne 0x40688d
cmp eax, 0xb2ab117a
jne 0x40688d
mov al, 1
mov dword [ebp - 0xc], 0x2743
jmp 0x4068f9
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2743
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0xc], 0x2743
jmp 0x4068f9
cmp eax, 0x4d0
jne 0x406912
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x4068cb
cmp eax, 0xb2ab117a
je 0x4068da
cmp ecx, 0x257edfd0
jne 0x4068de
cmp eax, 0xb2ab117a
jne 0x4068de
mov al, 1
jmp 0x4068f2
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2751
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0xc], 0x2751
mov dword [ebp - 8], 0x4b0df8
movq xmm0, qword [ebp - 0xc]
movzx eax, al
add eax, 2
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
test al, 1
je 0x40692b
cmp eax, 1
jne 0x4069b8
cmp dword [esi], 0
jne 0x4069b8
cmp edi, 0xffffffff
jne 0x406997
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x40694a
cmp eax, 0xb2ab117a
je 0x406959
cmp ecx, 0x257edfd0
jne 0x40695d
cmp eax, 0xb2ab117a
jne 0x40695d
mov al, 1
jmp 0x406971
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2719
mov eax, dword [eax + 0x18]
call eax
movzx eax, al
mov dword [ebp - 0xc], 0x2719
add eax, 2
mov dword [ebp - 8], 0x4b0df8
movq xmm0, qword [ebp - 0xc]
movq qword [esi], xmm0
pop edi
mov dword [esi + 8], eax
pop esi
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0x7010
push 0xffff
push edi
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
mov ecx, esi
setne dl
call fcn.004063a0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4069c0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x4b0300]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0xc]
push edi
push 0
push 0
push eax
lea eax, [ebp - 8]
mov dword [ebp - 8], 0
push eax
push 1
push edx
push ecx
mov dword [ebp - 0xc], 0
call dword [sym.imp.WS2_32.dll_WSARecv]
mov ebx, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [0x4b0e00]
mov edi, eax
mov ecx, dword [0x4b0e04]
cmp edx, 0x257edfd1
jne 0x406a20
cmp ecx, 0xb2ab117a
je 0x406a30
cmp edx, 0x257edfd0
jne 0x406a37
cmp ecx, 0xb2ab117a
jne 0x406a37
test edi, edi
setne al
jmp 0x406a47
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push edi
mov eax, dword [eax + 0x18]
call eax
movzx eax, al
add eax, 2
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 0x4b0df8
mov edi, eax
movq xmm0, qword [ebp - 0x1c]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov dword [ebp - 0x10], 0x1ffff7
cmp edi, 1
je 0x406a77
mov eax, dword [esi]
mov ecx, eax
jmp 0x406a89
mov eax, dword [esi + 4]
xor edx, edx
div dword [ebp - 0x10]
mov ecx, dword [esi]
imul eax, edx, 0x3e8
add eax, ecx
cmp eax, 0x40
jne 0x406ae2
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x406aa8
cmp eax, 0xb2ab117a
je 0x406ab7
cmp ecx, 0x257edfd0
jne 0x406ac5
cmp eax, 0xb2ab117a
jne 0x406ac5
mov al, 1
mov dword [ebp - 0x1c], 0x2746
jmp 0x406b4a
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2746
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0x1c], 0x2746
jmp 0x406b4a
cmp edi, 1
je 0x406aeb
mov eax, ecx
jmp 0x406afb
mov eax, dword [esi + 4]
xor edx, edx
div dword [ebp - 0x10]
imul eax, edx, 0x3e8
add eax, ecx
cmp eax, 0x4d2
jne 0x406b65
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x406b1c
cmp eax, 0xb2ab117a
je 0x406b2b
cmp ecx, 0x257edfd0
jne 0x406b2f
cmp eax, 0xb2ab117a
jne 0x406b2f
mov al, 1
jmp 0x406b43
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x274d
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0x1c], 0x274d
movzx eax, al
mov dword [ebp - 0x18], 0x4b0df8
add eax, 2
movq xmm0, qword [ebp - 0x1c]
movq qword [esi], xmm0
mov dword [esi + 8], eax
jmp 0x406ba6
cmp edi, 1
je 0x406b6e
mov eax, ecx
jmp 0x406b7e
mov eax, dword [esi + 4]
xor edx, edx
div dword [ebp - 0x10]
imul eax, edx, 0x3e8
add eax, ecx
cmp eax, 0x2738
je 0x406bbe
cmp edi, 1
jne 0x406b9e
mov eax, dword [esi + 4]
xor edx, edx
mov edi, 0x1ffff7
div edi
imul eax, edx, 0x3e8
add ecx, eax
cmp ecx, 0xea
je 0x406bbe
test ebx, ebx
je 0x406bbe
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xorps xmm0, xmm0
mov eax, dword [ebp - 8]
xor ecx, ebp
movq qword [esi], xmm0
pop edi
mov dword [esi + 8], 0
pop esi
pop ebx
call fcn.00469231
mov esp, ebp
pop ebp
ret
Function at 0x406e50
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x4b0300]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 8]
push edi
push 0
push 0
push 0
push eax
push 1
push edx
push ecx
mov dword [ebp - 8], 0
call dword [sym.imp.WS2_32.dll_WSASend]
mov ebx, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [0x4b0e00]
mov edi, eax
mov ecx, dword [0x4b0e04]
cmp edx, 0x257edfd1
jne 0x406ea7
cmp ecx, 0xb2ab117a
je 0x406eb7
cmp edx, 0x257edfd0
jne 0x406ebe
cmp ecx, 0xb2ab117a
jne 0x406ebe
test edi, edi
setne al
jmp 0x406ece
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push edi
mov eax, dword [eax + 0x18]
call eax
movzx eax, al
add eax, 2
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], 0x4b0df8
mov edi, eax
movq xmm0, qword [ebp - 0x14]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov dword [ebp - 0x18], 0x1ffff7
cmp edi, 1
je 0x406efe
mov eax, dword [esi]
mov ecx, eax
jmp 0x406f10
mov eax, dword [esi + 4]
xor edx, edx
div dword [ebp - 0x18]
mov ecx, dword [esi]
imul eax, edx, 0x3e8
add eax, ecx
cmp eax, 0x40
jne 0x406f69
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x406f2f
cmp eax, 0xb2ab117a
je 0x406f3e
cmp ecx, 0x257edfd0
jne 0x406f4c
cmp eax, 0xb2ab117a
jne 0x406f4c
mov al, 1
mov dword [ebp - 0x14], 0x2746
jmp 0x406fd2
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2746
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0x14], 0x2746
jmp 0x406fd2
cmp edi, 1
jne 0x406f82
mov eax, dword [esi + 4]
xor edx, edx
mov edi, 0x1ffff7
div edi
imul eax, edx, 0x3e8
add ecx, eax
cmp ecx, 0x4d2
jne 0x406feb
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x406fa4
cmp eax, 0xb2ab117a
je 0x406fb3
cmp ecx, 0x257edfd0
jne 0x406fb7
cmp eax, 0xb2ab117a
jne 0x406fb7
mov al, 1
jmp 0x406fcb
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x274d
mov eax, dword [eax + 0x18]
call eax
mov dword [ebp - 0x14], 0x274d
mov dword [ebp - 0x10], 0x4b0df8
movq xmm0, qword [ebp - 0x14]
movzx eax, al
add eax, 2
movq qword [esi], xmm0
mov dword [esi + 8], eax
test ebx, ebx
je 0x407003
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xorps xmm0, xmm0
mov eax, dword [ebp - 8]
xor ecx, ebp
movq qword [esi], xmm0
pop edi
mov dword [esi + 8], 0
pop esi
pop ebx
call fcn.00469231
mov esp, ebp
pop ebp
ret
Function at 0x407110
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, edx
cmp ecx, 0xffffffff
jne 0x40718a
mov ecx, dword [0x4b0e00]
mov eax, dword [0x4b0e04]
cmp ecx, 0x257edfd1
jne 0x407138
cmp eax, 0xb2ab117a
je 0x407147
cmp ecx, 0x257edfd0
jne 0x40714b
cmp eax, 0xb2ab117a
jne 0x40714b
mov al, 1
jmp 0x40715f
mov eax, dword [0x4b0df8]
mov ecx, 0x4b0df8
push 0x2719
mov eax, dword [eax + 0x18]
call eax
movzx ecx, al
mov eax, dword [ebp + 0x10]
add ecx, 2
mov dword [ebp - 0xc], 0x2719
mov dword [ebp - 8], 0x4b0df8
movq xmm0, qword [ebp - 0xc]
movq qword [eax], xmm0
mov dword [eax + 8], ecx
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [ebp + 0xc]
push edi
push ebx
push 0x8004667e
push ecx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
mov ecx, dword [ebp + 0x10]
mov edi, eax
mov edx, edi
shr edx, 0x1f
call fcn.004063a0
test edi, edi
js 0x4071c7
cmp dword [ebx], 0
mov al, byte [esi]
je 0x4071c3
or al, 1
mov byte [esi], al
mov eax, edi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
and al, 0xfc
mov byte [esi], al
mov eax, edi
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x407890
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x490c60
mov eax, dword fs:[0]
push eax
sub esp, 0xc
mov eax, dword [0x4b0300]
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 esi, ecx
mov dword [ebp - 4], 0
cmp dword [esi + 0x60], 0
mov edi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov dword [esi], vtable.boost::asio::detail::win_iocp_io_context.0
je 0x407955
call fcn.00407ef0
mov ebx, dword [esi + 0x60]
push 0xffffffffffffffff
push 0
mov eax, dword [ebx + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x18]
push eax
push 2
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
push dword [ebx + 8]
call edi
xor eax, eax
mov ecx, 0x4b3138
lock xadd dword [ecx], eax
mov ecx, dword [ebx + 4]
test eax, eax
push 0
setne al
push ecx
test al, al
je 0x407921
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
jmp 0x407937
push method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_56
call dword [sym.imp.KERNEL32.DLL_QueueUserAPC]
push 0xffffffffffffffff
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x40794e
push dword [ebx + 4]
call edi
push 0xc
push ebx
call fcn.004694c5
add esp, 8
mov dword [esi + 0x60], 0
lea ecx, [esi + 0x54]
call fcn.00403c20
lea eax, [esi + 0x38]
push eax
call dword [sym.imp.KERNEL32.DLL_DeleteCriticalSection]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x407971
push eax
call edi
mov ebx, dword [esi + 0x2c]
test ebx, ebx
je 0x407988
push dword [ebx + 4]
call edi
push 0xc
push ebx
call fcn.004694c5
add esp, 8
mov eax, dword [esi + 0x14]
test eax, eax
je 0x407992
push eax
call edi
test byte [ebp + 8], 1
mov dword [esi], vtable.boost::asio::execution_context::service.0
je 0x4079a9
push 0x64
push esi
call fcn.004694c5
add esp, 8
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 - 0x10]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret 4
Function at 0x40a7c0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x4b0300]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x1c]
mov eax, dword [ebx + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [ebp + 0x18], 0
je 0x40a800
mov esi, dword [ebx + 4]
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
jmp 0x40a862
mov eax, dword [ecx]
cmp eax, 0xffffffff
jne 0x40a81a
mov esi, dword [ebx + 4]
mov dword [edi + 8], 0x2719
mov dword [edi + 0xc], 0
jmp 0x40a862
push 0
push edi
push dword [ebp + 0x14]
lea ecx, [ebp - 8]
mov dword [ebp - 8], 0
push ecx
push dword [ebp + 0x10]
push edx
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 0x40a8c8
cmp eax, 0x3e5
je 0x40a8c8
mov esi, dword [ebx + 4]
mov dword [edi + 8], eax
mov eax, dword [ebp - 8]
mov dword [edi + 0xc], eax
push edi
push 2
push 0
mov dword [edi + 0x1c], 1
mov dword [edi], 0x4b0df8
push dword [esi + 0x14]
call dword [sym.imp.KERNEL32.DLL_PostQueuedCompletionStatus]
test eax, eax
jne 0x40a8d1
lea ebx, [esi + 0x38]
push ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov dword [edi + 0x14], 0
mov eax, dword [esi + 0x58]
test eax, eax
je 0x40a89e
mov dword [eax + 0x14], edi
jmp 0x40a8a1
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], edi
lea eax, [esi + 0x34]
mov ecx, 1
xchg dword [eax], ecx
push ebx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebx + 4]
push edi
call fcn.00408050
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00469231
mov esp, ebp
pop ebp
ret 0x18
Function at 0x40a8f0
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x4b0300]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 0x1c]
push edi
mov edi, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [edi + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [ebp + 0x18], 0
je 0x40a930
mov edi, dword [edi + 4]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
jmp 0x40a9a5
mov ecx, dword [ecx]
cmp ecx, 0xffffffff
jne 0x40a94a
mov edi, dword [edi + 4]
mov dword [esi + 8], 0x2719
mov dword [esi + 0xc], 0
jmp 0x40a9a5
mov eax, dword [ebp + 0x14]
push 0
push esi
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 edx
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 0x40a981
mov eax, 0x2746
jmp 0x40a98e
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
je 0x40aa0b
cmp eax, 0x3e5
je 0x40aa0b
mov edi, dword [edi + 4]
mov dword [esi + 8], eax
mov eax, dword [ebp - 8]
mov dword [esi + 0xc], eax
push esi
push 2
push 0
mov dword [esi + 0x1c], 1
mov dword [esi], 0x4b0df8
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.DLL_PostQueuedCompletionStatus]
test eax, eax
jne 0x40aa14
lea ebx, [edi + 0x38]
push ebx
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov dword [esi + 0x14], 0
mov eax, dword [edi + 0x58]
test eax, eax
je 0x40a9e1
mov dword [eax + 0x14], esi
jmp 0x40a9e4
mov dword [edi + 0x54], esi
mov dword [edi + 0x58], esi
lea eax, [edi + 0x34]
mov ecx, 1
xchg dword [eax], ecx
push ebx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00469231
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [edi + 4]
push esi
call fcn.00408050
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00469231
mov esp, ebp
pop ebp
ret 0x18
Function at 0x40b0e0
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x4b0300]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x40b1b0
or eax, 0xffffffff
lock xadd dword [ecx + 0x18], eax
jne 0x40b10e
call fcn.00407ef0
mov ecx, dword [esi + 0x1c]
call fcn.00407ef0
mov edi, dword [esi + 0x20]
test edi, edi
je 0x40b19c
mov eax, dword [edi + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 4]
push 0xffffffffffffffff
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push 0
push eax
push 2
call dword [sym.imp.KERNEL32.DLL_WaitForMultipleObjects]
push dword [edi + 8]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor eax, eax
mov ecx, 0x4b3138
lock xadd dword [ecx], eax
mov ecx, dword [edi + 4]
test eax, eax
push 0
setne al
push ecx
test al, al
je 0x40b164
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
jmp 0x40b17a
push method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_56
call dword [sym.imp.KERNEL32.DLL_QueueUserAPC]
push 0xffffffffffffffff
push dword [edi + 4]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
mov edi, dword [esi + 0x20]
test edi, edi
je 0x40b195
push dword [edi + 4]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 0xc
push edi
call fcn.004694c5
add esp, 8
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x40b1a9
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi + 0x1c], 0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00469231
mov esp, ebp
pop ebp
ret

Function at 0x40d260
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x491458
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x4b0300]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
call fcn.004109c0
mov eax, dword [ebp + 8]
mov dword [ebp - 4], 0
mov dword [esi], vtable.boost::asio::basic_streambuf_class_std::allocator_char__.0
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov ebx, eax
mov byte [ebp - 4], 1
mov eax, 0x80
mov ecx, 1
cmp ebx, eax
cmova ebx, eax
cmp ebx, ecx
mov eax, ebx
cmovb eax, ecx
test eax, eax
je 0x40d2e7
push ecx
push eax
lea ecx, [esi + 0x3c]
call fcn.00415cc0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x3c]
mov dword [eax], ecx
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, esi
mov ecx, dword [esi + 0x2c]
mov dword [ecx], 0
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x3c]
mov dword [ecx], edx
mov ecx, dword [esi + 0x20]
mov dword [ecx], edx
mov ecx, dword [esi + 0x30]
mov dword [ecx], ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8