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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47e3ed
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x49d140]
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 0x41108a
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4a29e4]
cmp eax, dword [ecx + 4]
jle 0x411056
push 0x4a29e4
call fcn.004584c4
add esp, 4
cmp dword [0x4a29e4], 0xffffffff
jne 0x411056
push 0x484d20
call fcn.00458aa9
add esp, 4
push 0x4a29e4
call fcn.00458473
add esp, 4
mov eax, dword [ebp + 0x1c]
mov dword [eax], 1
mov dword [eax + 4], 0x49dc10
mov eax, dword [ebp + 8]
mov dword [eax], 1
mov dword [eax + 4], 0x49dc10
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
push 1
push 0
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov ebx, dword [ebp + 0x1c]
mov esi, eax
cmp esi, 0xffffffff
mov ecx, ebx
sete dl
call fcn.0040e5f0
cmp esi, 0xffffffff
jne 0x4110ba
or esi, esi
jmp 0x4110d8
cmp dword [ebp + 0x10], 0x17
jne 0x4110d8
push 4
lea eax, [ebp + 0x1c]
mov dword [ebp + 0x1c], 0
push eax
push 0x1b
push 0x29
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov dword [ebp + 0x1c], esi
mov dword [ebp - 4], 0
cmp esi, 0xffffffff
jne 0x4110f9
mov esi, dword [ebp + 8]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esi], ecx
mov dword [esi + 4], edx
jmp 0x4111cc
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 0x41116b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword fs:[0x2c]
mov dword [ebp + 0x10], eax
mov edx, dword [ecx]
mov ecx, dword [0x4a2a0c]
cmp ecx, dword [edx + 4]
jle 0x411164
push 0x4a2a0c
call fcn.004584c4
add esp, 4
cmp dword [0x4a2a0c], 0xffffffff
jne 0x411161
push 0x484d10
call fcn.00458aa9
add esp, 4
push 0x4a2a0c
call fcn.00458473
add esp, 4
mov eax, dword [ebp + 0x10]
mov ecx, 0x49dc28
jmp 0x411172
xor eax, eax
mov ecx, 0x49dbf8
mov dword [ebx + 4], ecx
mov dword [ebx], eax
test eax, eax
je 0x411183
mov esi, dword [ebp + 8]
mov dword [esi + 4], ecx
jmp 0x4111ca
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x1c], 0xffffffff
mov dword [edi], esi
sub eax, 1
je 0x4111a5
sub eax, 1
je 0x41119f
mov byte [edi + 4], 0
jmp 0x4111a9
mov byte [edi + 4], 0x20
jmp 0x4111a9
mov byte [edi + 4], 0x10
push dword [ebp + 8]
push ecx
lea ecx, [edi + 8]
call fcn.0041fd30
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 4], 0x49dbf8
mov dword [esi + 4], 0x49dbf8
mov dword [esi], eax
lea ecx, [ebp + 0x1c]
call fcn.0040f510
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
Function at 0x4111f0
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [ebp + 0x18], 0
push 0
je 0x41121f
mov ecx, dword [edi + 4]
push 0
push dword [ebp + 0x1c]
call fcn.0040db70
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp eax, 0xffffffff
jne 0x411241
mov ecx, dword [edi + 4]
push 0x2719
push dword [ebp + 0x1c]
call fcn.0040db70
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
mov ebx, dword [ebp + 0x1c]
lea ecx, [ebp + 0x18]
push ebx
push dword [ebp + 0x14]
mov dword [ebp + 0x18], 0
push ecx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
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 0x411295
cmp eax, 0x3e5
je 0x411295
push dword [ebp + 0x18]
mov ecx, dword [edi + 4]
push eax
push ebx
call fcn.0040db70
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
mov ecx, dword [edi + 4]
push ebx
call fcn.0040db00
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18

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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [ebp + 0x18], 0
push 0
je 0x4112df
mov ecx, dword [esi + 4]
push 0
push dword [ebp + 0x1c]
call fcn.0040db70
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x411301
mov ecx, dword [esi + 4]
push 0x2719
push dword [ebp + 0x1c]
call fcn.0040db70
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x1c]
push edi
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp + 0x18]
mov dword [ebp + 0x18], 0
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
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 0x41133b
mov eax, 0x2746
jmp 0x411348
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
je 0x411368
cmp eax, 0x3e5
je 0x411368
push dword [ebp + 0x18]
mov ecx, dword [esi + 4]
push eax
push edi
call fcn.0040db70
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
mov ecx, dword [esi + 4]
push edi
call fcn.0040db00
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0x18
Function at 0x415bc0
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a4
mov eax, dword [0x49d140]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, 1
lock xadd dword [0x4a29a8], eax
inc eax
mov ebx, 0x4a29ac
cmp eax, 1
jne 0x415c06
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 0x415c16
xor esi, esi
lock xadd dword [ebx], esi
test esi, esi
jne 0x415c2f
mov ecx, dword [esp + 0x1ac]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00458460
mov esp, ebp
pop ebp
ret 4
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4a2a0c]
cmp eax, dword [ecx + 4]
jle 0x415c74
push 0x4a2a0c
call fcn.004584c4
add esp, 4
cmp dword [0x4a2a0c], 0xffffffff
jne 0x415c74
push 0x484d10
call fcn.00458aa9
add esp, 4
push 0x4a2a0c
call fcn.00458473
add esp, 4
mov edx, str.winsock
mov dword [esp + 0x10], esi
lea ecx, [esp + 0x10]
mov dword [esp + 0x14], 0x49dc28
call fcn.0040c570
int3
Function at 0x41cf70
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47f3e0
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x49d140]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push 8
mov dword [edi], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
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 dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
call fcn.00458728
mov esi, eax
push 1
mov dword [ebp - 4], 0
call fcn.00457650
add esp, 8
mov dword [esi + 4], eax
mov ecx, edi
mov dword [edi + 0x34], esi
call fcn.0041dfa0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x428450
Capabilities:
Access peb ldr_data

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x480505
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x30
mov eax, dword [0x49d140]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ecx, dword [edi + 0x4d44]
mov eax, dword [ebx + 0x10]
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 0x30]
shr eax, 0xa
test al, 1
je 0x4284b8
push str.connection_close
push 0x400
call fcn.00418980
mov eax, dword [esi + 0x10]
mov edx, 0x7b
cmp eax, edx
mov dword [ebp - 0x1c], 0
mov ecx, eax
mov dword [ebp - 0x18], 0
cmova ecx, edx
xorps xmm0, xmm0
cmp eax, ecx
movups xmmword [ebp - 0x2c], xmm0
cmovb ecx, eax
cmp dword [esi + 0x14], 0xf
jbe 0x4284e9
mov esi, dword [esi]
push ecx
push esi
lea ecx, [ebp - 0x2c]
call fcn.00421800
lea esi, [edi + 0xb20]
mov dword [ebp - 4], 0
push esi
mov dword [ebp - 0x3c], esi
call fcn.00457d59
add esp, 4
test eax, eax
jne 0x428652
mov eax, dword [esi + 0x2c]
cmp eax, 0x7fffffff
je 0x428659
mov byte [ebp - 4], 1
cmp dword [edi + 0xb18], 1
je 0x42859a
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4a29d0]
cmp eax, dword [ecx + 4]
jle 0x428588
push 0x4a29d0
call fcn.004584c4
add esp, 4
cmp dword [0x4a29d0], 0xffffffff
jne 0x428588
push 0x484bb0
mov dword [0x4a29fc], 0x4a29f8
mov dword [0x4a29f8], 0x49125c
call fcn.00458aa9
add esp, 4
push 0x4a29d0
call fcn.00458473
add esp, 4
mov eax, dword [ebp - 0x30]
mov dword [eax], 9
mov dword [eax + 4], 0x4a29f8
jmp 0x4285f9
mov eax, dword [ebx + 8]
mov ecx, 0x3ea
cmp ax, cx
je 0x4285d3
mov ecx, 0x3ef
cmp ax, cx
je 0x4285d3
mov ecx, 0x3f0
cmp ax, cx
je 0x4285d3
mov ecx, 0x3f1
cmp ax, cx
je 0x4285d3
mov ecx, 0x3f3
mov byte [ebp - 0x34], 0
cmp ax, cx
jne 0x4285d7
mov byte [ebp - 0x34], 1
push dword [ebp - 0x34]
lea ecx, [ebp - 0x2c]
push 0
push ecx
push eax
lea eax, [ebp - 0x38]
mov ecx, edi
push eax
call fcn.0042e380
mov edx, dword [ebp - 0x30]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [edx], ecx
mov dword [edx + 4], eax
push esi
call fcn.00457d6a
mov ecx, dword [ebp - 0x18]
add esp, 4
cmp ecx, 0xf
jbe 0x428632
mov edx, dword [ebp - 0x2c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x428628
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x428664
push ecx
push edx
call fcn.00458ac3
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00458460
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
push 5
call fcn.00457357
dec eax
push 6
mov dword [esi + 0x2c], eax
call fcn.00457357
call fcn.0046546a
int3
Function at 0x4373e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, ecx
push ebx
mov ebx, dword [ebp + 0xc]
push esi
cmp byte [eax + 0xd], 0
lea edx, [eax + 0x48]
push edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], edx
jge 0x437434
mov eax, dword [edx]
xor ecx, ecx
mov esi, dword [eax + 8]
mov dword [ebp - 8], esi
test ebx, ebx
je 0x437423
mov edi, dword [ebp + 8]
nop
mov eax, ecx
and eax, 3
mov al, byte [ebp + eax - 8]
xor byte [edi + ecx], al
inc ecx
cmp ecx, ebx
jb 0x437410
mov eax, dword [edx]
mov ecx, ebx
and ecx, 3
je 0x43742f
shl cl, 3
ror esi, cl
mov dword [eax + 8], esi
jmp 0x437437
mov dword [ebp - 4], edx
mov eax, dword [edx]
mov edi, dword [eax]
add edi, 0x38
mov ecx, dword [edi + 0x14]
mov eax, ecx
mov esi, dword [edi + 0x10]
sub eax, esi
mov dword [ebp - 8], esi
cmp ebx, eax
ja 0x437476
lea eax, [esi + ebx]
mov dword [edi + 0x10], eax
mov eax, edi
cmp ecx, 0xf
jbe 0x43745e
mov eax, dword [edi]
push ebx
push dword [ebp + 8]
add esi, eax
push esi
call fcn.0045a050
mov byte [esi + ebx], 0
add esp, 0xc
mov esi, dword [ebp - 8]
jmp 0x437489
push ebx
push dword [ebp + 8]
mov byte [ebp - 8], 0
mov ecx, edi
push dword [ebp - 8]
push ebx
call fcn.004216a0
mov ebx, dword [ebp - 4]
mov ebx, dword [ebx]
mov eax, dword [ebx]
cmp dword [eax + 0x50], 1
jne 0x4374f9
cmp dword [edi + 0x14], 0xf
mov edx, dword [edi + 0x10]
jbe 0x4374a5
mov eax, dword [edi]
add edx, eax
jmp 0x4374a9
add edx, edi
mov eax, edi
add eax, esi
cmp eax, edx
je 0x4374f9
nop
cmp dword [ebx + 0xc], 0
movzx edi, byte [eax]
movzx ecx, byte [edi + 0x490600]
mov dword [ebp + 8], ecx
je 0x4374d0
mov esi, dword [ebx + 0x10]
and edi, 0x3f
shl esi, 6
or esi, edi
jmp 0x4374d9
mov esi, 0xff
sar esi, cl
and esi, edi
mov dword [ebx + 0x10], esi
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebp + 8]
add ecx, ecx
movzx ecx, byte [esi + ecx*8 + 0x490700]
mov dword [ebx + 0xc], ecx
cmp ecx, 1
je 0x43750b
inc eax
cmp eax, edx
jne 0x4374b0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 0xc]
sub dword [ecx + 0x18], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.00406f90
mov ecx, eax
mov eax, dword [ebp + 0x10]
pop edi
pop esi
pop ebx
mov dword [eax], 0x10
mov dword [eax + 4], ecx
xor eax, eax
mov esp, ebp
pop ebp
ret 0xc
Function at 0x43fa10
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x482525
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x49d140]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x18], edi
mov eax, dword [edi + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 1
jne 0x43fa73
push dword [0x4a2a14]
and eax, 0xfffffffc
mov esi, dword [eax + 8]
lea eax, [esi + 0x14]
neg esi
sbb esi, esi
and esi, eax
call ebx
test eax, eax
je 0x43fa73
cmp dword [eax], esi
je 0x43fa91
mov eax, dword [eax + 8]
test eax, eax
jne 0x43fa68
push dword [0x4a2a14]
lea eax, [edi + 1]
mov dword [ebp - 0x28], eax
call ebx
test eax, eax
je 0x43fb3c
mov ecx, dword [eax + 4]
jmp 0x43fb3e
cmp dword [eax + 4], 0
je 0x43fa73
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 8]
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 4], 0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 2
push eax
push eax
call fcn.00447500
add esp, 8
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x43fc34
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x43fc34
mov eax, dword [ecx]
call dword [eax + 4]
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
xor ecx, ecx
push ecx
push dword [ebp + 8]
mov edx, 0x40
call fcn.0041fb60
mov ecx, dword [ebp + 8]
mov esi, eax
add esp, 8
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x444610
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov eax, dword [ecx]
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x28], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov eax, dword [edi + 4]
and eax, 0xfffffffc
mov edi, dword [eax + 8]
lock inc dword [edi + 0x18]
push esi
push 0
push 0
mov dword [esi + 0x1c], 1
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x43fc1e
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 0x43fc07
mov dword [eax + 0x14], esi
jmp 0x43fc0a
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]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x24], 0
call fcn.00441550
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 0x43fc50
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x482565
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x49d140]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov dword [ebp - 0x14], edi
mov eax, dword [edi + 4]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 1
jne 0x43fcb3
push dword [0x4a2a14]
and eax, 0xfffffffc
mov esi, dword [eax + 8]
lea eax, [esi + 0x14]
neg esi
sbb esi, esi
and esi, eax
call ebx
test eax, eax
je 0x43fcb3
cmp dword [eax], esi
je 0x43fcd1
mov eax, dword [eax + 8]
test eax, eax
jne 0x43fca8
push dword [0x4a2a14]
lea eax, [edi + 1]
mov dword [ebp - 0x20], eax
call ebx
test eax, eax
je 0x43fd7c
mov ecx, dword [eax + 4]
jmp 0x43fd7e
cmp dword [eax + 4], 0
je 0x43fcb3
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx + 8]
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 2
push eax
push eax
call fcn.00447510
add esp, 8
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x43fe74
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x43fe74
mov eax, dword [ecx]
call dword [eax + 4]
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
xor ecx, ecx
push ecx
push dword [ebp + 8]
mov edx, 0x40
call fcn.0041fb60
mov ecx, dword [ebp + 8]
mov esi, eax
add esp, 8
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x444550
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x1c], 0
mov eax, dword [ecx]
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x20], eax
mov eax, dword [ecx + 4]
mov dword [esi + 0x24], eax
mov eax, dword [ecx + 8]
mov dword [esi + 0x28], eax
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
mov eax, dword [edi + 4]
and eax, 0xfffffffc
mov edi, dword [eax + 8]
lock inc dword [edi + 0x18]
push esi
push 0
push 0
mov dword [esi + 0x1c], 1
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
test eax, eax
jne 0x43fe5e
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 0x43fe47
mov dword [eax + 0x14], esi
jmp 0x43fe4a
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]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
call fcn.00441550
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 0x441040
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48283f
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x49d140]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x14], ebx
mov ecx, dword [ebp + 8]
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x10], 0
mov dword [ebp - 4], 0
lea edi, [ebx + 0x14]
mov dword [ebx], vtable.asio::detail::deadline_timer_service_struct_asio::detail::chrono_time_traits_struct_std::chrono::steady_clock__struct_asio::wait_traits_struct_std::chrono::steady_clock___.0
mov dword [edi + 4], 0
mov dword [edi], vtable.asio::detail::timer_queue_struct_asio::detail::chrono_time_traits_struct_std::chrono::steady_clock__struct_asio::wait_traits_struct_std::chrono::steady_clock___.0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov byte [ebp - 4], 1
mov ecx, dword [ecx]
call fcn.00429ce0
mov esi, eax
mov dword [ebx + 0x2c], esi
lea eax, [esi + 0x38]
push eax
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [ebp - 0x28], 1
mov byte [ebp - 4], 2
mov eax, dword [esi + 0x50]
mov dword [edi + 4], eax
mov dword [esi + 0x50], edi
cmp dword [esi + 0x30], 0
jne 0x441193
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerA]
mov dword [esi + 0x30], eax
test eax, eax
jne 0x44116d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword fs:[0x2c]
mov edi, eax
mov edx, dword [ecx]
mov ecx, dword [0x4a2a0c]
cmp ecx, dword [edx + 4]
jle 0x44115b
push 0x4a2a0c
call fcn.004584c4
add esp, 4
cmp dword [0x4a2a0c], 0xffffffff
jne 0x44115b
push 0x484d10
call fcn.00458aa9
add esp, 4
push 0x4a2a0c
call fcn.00458473
add esp, 4
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 0x49dc28
test edi, edi
jne 0x44121e
push 0
push 0
push 0
push 0x493e0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], 0x4d2fa200
push eax
push dword [esi + 0x30]
mov dword [ebp - 0x20], 0xffffffff
call dword [sym.imp.KERNEL32.dll_SetWaitableTimer]
cmp dword [esi + 0x2c], 0
jne 0x4411fe
push 0xc
call fcn.00458728
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov byte [ebp - 4], 3
push 0x10
mov dword [edi + 4], 0
mov dword [edi + 8], 0
call fcn.00458728
add esp, 4
mov dword [ebp - 0x18], eax
mov ecx, edi
mov dword [eax], vtable.asio::detail::win_thread::func_struct_asio::detail::win_iocp_io_context::timer_thread_function_.0
push 0x10000
push eax
mov dword [eax + 0xc], esi
call fcn.0040d010
mov ebx, dword [esi + 0x2c]
test ebx, ebx
je 0x4411f8
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xc
push ebx
call fcn.00458ac3
add esp, 8
mov ebx, dword [ebp - 0x14]
mov dword [esi + 0x2c], edi
lea eax, [esi + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 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 4
mov edx, str.timer
lea ecx, [ebp - 0x1c]
call fcn.0040c570
int3
Function at 0x441550
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x441578
mov ecx, dword [ecx + 0x28]
test ecx, ecx
je 0x441571
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x441571
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x4415bf
push dword [0x4a2a14]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x4415af
mov edx, dword [eax + 4]
test edx, edx
je 0x4415af
xor eax, eax
nop dword [eax + eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x4415c2
inc eax
cmp eax, 2
jl 0x4415a0
push esi
call fcn.00458abe
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x40]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret