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

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x1012e3cc
mov esi, dword [ebx + 0x64]
test esi, esi
je 0x1012e3a6
push ebp
or ebp, 0xffffffff
mov eax, ebp
lock xadd dword [esi + 4], eax
jne 0x1012e3a5
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebp
dec ebp
jne 0x1012e3a5
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
pop ebp
mov ecx, dword [ebx + 0x5c]
add ebx, 0x38
test ecx, ecx
je 0x1012e3c5
mov edx, dword [ecx]
cmp ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [ebx + 0x24], 0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e40f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e3ff
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e3ff
xor eax, eax
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e413
inc eax
cmp eax, 2
jl 0x1012e3f0
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
pop ebx
ret
mov al, byte [esi + 0x80]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
pop ebx
ret

Function at 0x1012e430
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 8]
test eax, eax
je 0x1012e461
mov ecx, dword [eax + 0x44]
lea esi, [eax + 0x20]
test ecx, ecx
je 0x1012e45a
mov edx, dword [ecx]
cmp ecx, esi
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [esi + 0x24], 0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e4a0
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e490
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e490
xor eax, eax
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e4a3
inc eax
cmp eax, 2
jl 0x1012e481
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x50]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret

Function at 0x1012e4c0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 8]
test eax, eax
je 0x1012e4f1
mov ecx, dword [eax + 0x4c]
lea esi, [eax + 0x28]
test ecx, ecx
je 0x1012e4ea
mov edx, dword [ecx]
cmp ecx, esi
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [esi + 0x24], 0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e530
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e520
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e520
xor eax, eax
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e533
inc eax
cmp eax, 2
jl 0x1012e511
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x58]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret
Function at 0x1012e550
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 8]
test eax, eax
je 0x1012e59c
mov eax, dword [eax + 0x20]
mov dword [ebp - 4], 0
test eax, eax
je 0x1012e595
push 0
push eax
mov eax, dword [eax]
call eax
add esp, 8
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e5df
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e5cf
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e5cf
xor eax, eax
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e5f0
inc eax
cmp eax, 2
jl 0x1012e5c0
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x28]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012e5d8

Function at 0x1012e600
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1012e61a
add ecx, 8
call fcn.100ffdb0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e65f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e64f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e64f
mov eax, 4
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e662
inc eax
cmp eax, 6
jl 0x1012e640
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x98]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret

Function at 0x1012e680
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1012e69a
add ecx, 0x18
call fcn.101004c0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e6df
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e6cf
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e6cf
mov eax, 4
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e6e2
inc eax
cmp eax, 6
jl 0x1012e6c0
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x68]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret
Function at 0x1012e700
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x1012e75c
mov esi, dword [ebx + 0x6c]
test esi, esi
je 0x1012e736
push ebp
or ebp, 0xffffffff
mov eax, ebp
lock xadd dword [esi + 4], eax
jne 0x1012e735
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebp
dec ebp
jne 0x1012e735
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
pop ebp
mov ecx, dword [ebx + 0x64]
add ebx, 0x40
test ecx, ecx
je 0x1012e755
mov edx, dword [ecx]
cmp ecx, ebx
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [ebx + 0x24], 0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e79f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e78f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e78f
mov eax, 4
nop
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e7a3
inc eax
cmp eax, 6
jl 0x1012e780
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
pop ebx
ret
mov al, byte [esi + 0x88]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
pop ebx
ret

Function at 0x1012e7c0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1012e7da
add ecx, 8
call fcn.101002e0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e81f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e80f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e80f
mov eax, 4
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e822
inc eax
cmp eax, 6
jl 0x1012e800
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x90]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret

Function at 0x1012e840
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x1012e885
mov esi, dword [ebx + 0x6c]
test esi, esi
je 0x1012e876
push ebp
or ebp, 0xffffffff
mov eax, ebp
lock xadd dword [esi + 4], eax
jne 0x1012e875
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebp
dec ebp
jne 0x1012e875
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
pop ebp
lea ecx, [ebx + 0x18]
call fcn.101004c0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e8cf
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e8bf
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e8bf
mov eax, 4
nop dword [eax + eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e8d3
inc eax
cmp eax, 6
jl 0x1012e8b0
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
pop ebx
ret
mov al, byte [esi + 0x80]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
pop ebx
ret
Function at 0x1012e8f0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1012e90a
add ecx, 8
call fcn.101009c0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e94f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e93f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e93f
mov eax, 4
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e952
inc eax
cmp eax, 6
jl 0x1012e930
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x90]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret

Function at 0x1012e970
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1012e98a
add ecx, 8
call fcn.10100a60
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012e9cf
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012e9bf
mov edx, dword [eax + 4]
test edx, edx
je 0x1012e9bf
mov eax, 4
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012e9d2
inc eax
cmp eax, 6
jl 0x1012e9b0
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
pop edi
pop esi
ret
mov al, byte [esi + 0x98]
mov byte [esi], al
mov dword [ecx], esi
mov dword [edi + 4], 0
pop edi
pop esi
ret

Function at 0x1012e9f0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 8]
test esi, esi
je 0x1012ea7c
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x1012ea2e
push eax
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
lea ecx, [esi + 0xe0]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012ea4c
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [esi + 0x98]
call fcn.101004c0
lea ecx, [esi + 0x30]
call fcn.100fec90
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x1012ea75
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x1012ea75
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012eabf
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012eaaf
mov edx, dword [eax + 4]
test edx, edx
je 0x1012eaaf
xor eax, eax
nop dword [eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012ead0
inc eax
cmp eax, 2
jl 0x1012eaa0
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x100]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012eab8
Function at 0x1012eaf0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 8]
test esi, esi
je 0x1012eb4a
lea ecx, [esi + 0x80]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012eb3b
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [esi + 0x40]
call fcn.101004c0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012eb8f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012eb7f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012eb7f
xor eax, eax
nop word [eax + eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012eba0
inc eax
cmp eax, 2
jl 0x1012eb70
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0xa0]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012eb88

Function at 0x1012ebc0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 8]
test esi, esi
je 0x1012ec1a
lea ecx, [esi + 0xc0]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012ec0b
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [esi + 0x40]
call fcn.100ffdb0
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012ec5f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012ec4f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012ec4f
xor eax, eax
nop word [eax + eax]
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012ec70
inc eax
cmp eax, 2
jl 0x1012ec40
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0xe0]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012ec58
Function at 0x1012ec90
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10215380
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
mov edi, dword [ebx + 8]
test edi, edi
je 0x1012ed50
lea ecx, [edi + 0xa0]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012ece4
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
mov esi, dword [edi + 0x9c]
or ebx, 0xffffffff
test esi, esi
je 0x1012ed10
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x1012ed10
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x1012ed10
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [edi + 0x94]
lea esi, [edi + 0x70]
test ecx, ecx
je 0x1012ed32
mov edx, dword [ecx]
cmp ecx, esi
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
mov dword [esi + 0x24], 0
mov ecx, dword [edi + 0x28]
test ecx, ecx
je 0x1012ed46
lock xadd dword [ecx + 8], ebx
dec ebx
jne 0x1012ed46
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0x10]
mov dword [ebx + 8], 0
mov esi, dword [ebx + 4]
test esi, esi
je 0x1012ed8f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012ed7f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012ed7f
xor eax, eax
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012eda1
inc eax
cmp eax, 2
jl 0x1012ed70
push esi
call fcn.101eb4d1
add esp, 4
mov dword [ebx + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0xc0]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012ed88

Function at 0x1012edc0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 8]
test esi, esi
je 0x1012ee30
lea ecx, [esi + 0xa8]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012ee0b
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [esi + 0x38]
call fcn.101002e0
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1012ee29
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x1012ee29
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012ee6f
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012ee5f
mov edx, dword [eax + 4]
test edx, edx
je 0x1012ee5f
xor eax, eax
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012ee80
inc eax
cmp eax, 2
jl 0x1012ee50
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0xc8]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012ee68
Function at 0x1012eea0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 8]
test esi, esi
je 0x1012ef13
lea ecx, [esi + 0x120]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012eeeb
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [esi + 0xb0]
call fcn.101009c0
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x1012ef0c
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x1012ef0c
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012ef52
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012ef42
mov edx, dword [eax + 4]
test edx, edx
je 0x1012ef42
xor eax, eax
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012ef63
inc eax
cmp eax, 2
jl 0x1012ef33
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x140]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012ef4b

Function at 0x1012ef80
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020fa20
mov eax, dword fs:[0]
push eax
push esi
push edi
mov eax, dword [0x10282800]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov esi, dword [edi + 8]
test esi, esi
je 0x1012eff3
lea ecx, [esi + 0x128]
cmp dword [ecx + 0x10], 0
mov dword [ebp - 4], 0
je 0x1012efcb
mov eax, dword [ecx + 0xc]
push ecx
mov eax, dword [eax]
call eax
add esp, 4
lea ecx, [esi + 0xb0]
call fcn.10100a60
mov ecx, dword [esi + 0x24]
test ecx, ecx
je 0x1012efec
or eax, 0xffffffff
lock xadd dword [ecx + 8], eax
jne 0x1012efec
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [edi + 8], 0
mov esi, dword [edi + 4]
test esi, esi
je 0x1012f032
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x1012f022
mov edx, dword [eax + 4]
test edx, edx
je 0x1012f022
xor eax, eax
cmp dword [edx + eax*4], 0
lea ecx, [edx + eax*4]
je 0x1012f043
inc eax
cmp eax, 2
jl 0x1012f013
push esi
call fcn.101eb4d1
add esp, 4
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x148]
mov byte [esi], al
mov dword [ecx], esi
jmp 0x1012f02b
Function at 0x1012f8a0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10217485
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push ebx
push esi
push edi
mov eax, dword [0x10282800]
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 0x1012f902
call fcn.10134500
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov dword [eax + 4], 0x10282038
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 ecx, [ebp - 0x4c]
call fcn.100fd310
push dword [0x1028dd78]
mov ecx, esi
mov dword [ebp - 4], 0
neg ecx
lea eax, [esi + 0x14]
sbb ecx, ecx
and ecx, eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push eax
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x4c]
push ebx
push eax
push 0xffffffffffffffff
mov ecx, esi
mov byte [ebp - 4], 1
xor edi, edi
call fcn.10114c20
test eax, eax
je 0x1012f97d
nop
cmp edi, 0xffffffff
lea eax, [edi + 1]
push ebx
cmove eax, edi
mov ecx, esi
mov edi, eax
lea eax, [ebp - 0x4c]
push eax
push 0xffffffffffffffff
call fcn.10114c20
test eax, eax
jne 0x1012f960
push dword [ebp - 0x10]
push dword [0x1028dd78]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
xor esi, esi
nop
mov eax, dword [ebp + esi*4 - 0x4c]
test eax, eax
je 0x1012f9a1
push eax
call fcn.101eb4d1
add esp, 4
inc esi
cmp esi, 0xa
jl 0x1012f990
lea eax, [ebp - 0x20]
push eax
call fcn.101e2937
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 0x10133830
Capabilities:
Set socket configuration

Disassembly:
push ecx
push esi
push 1
push 0
push 0
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x20]
call dword [sym.imp.WS2_32.dll_WSASocketW]
mov esi, eax
cmp esi, 0xffffffff
je 0x10133881
cmp dword [esp + 0xc], 0x17
mov ecx, dword [esp + 0x18]
mov dword [ecx], 0
jne 0x1013387c
push 4
lea eax, [esp + 8]
mov dword [esp + 8], 0
push eax
push 0x1b
push 0x29
push esi
call dword [sym.imp.WS2_32.dll_setsockopt]
mov eax, esi
pop esi
pop ecx
ret
call fcn.100e0d20
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
or eax, 0xffffffff
mov dword [ecx + 4], esi
pop esi
pop ecx
ret
Function at 0x10134100
Capabilities:
Receive data
Receive data on socket

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [esp + 0x18], 0
je 0x10134127
mov ecx, dword [esi + 4]
push 0
push 0
push dword [esp + 0x24]
call fcn.10126a50
pop esi
ret 0x18
mov eax, dword [esp + 8]
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x10134149
mov ecx, dword [esi + 4]
push 0
push 0x2719
push dword [esp + 0x24]
call fcn.10126a50
pop esi
ret 0x18
mov eax, dword [esp + 0x14]
push ebx
push edi
mov edi, dword [esp + 0x24]
push 0
push edi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 0
push eax
push dword [esp + 0x28]
push dword [esp + 0x28]
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 0x1013418f
mov eax, 0x2746
jmp 0x1013419c
cmp eax, 0x4d2
mov ecx, 0x274d
cmove eax, ecx
test ebx, ebx
je 0x101341bb
cmp eax, 0x3e5
je 0x101341bb
push dword [esp + 0x20]
mov ecx, dword [esi + 4]
push eax
push edi
call fcn.10126a50
pop edi
pop ebx
pop esi
ret 0x18
mov ecx, dword [esi + 4]
push edi
call fcn.10126ad0
pop edi
pop ebx
pop esi
ret 0x18

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

Disassembly:
push edi
mov edi, ecx
mov eax, dword [edi + 4]
add eax, 0x18
lock inc dword [eax]
cmp byte [esp + 0x18], 0
je 0x10134327
mov ecx, dword [edi + 4]
push 0
push 0
push dword [esp + 0x24]
call fcn.10126a50
pop edi
ret 0x18
mov eax, dword [esp + 8]
mov eax, dword [eax]
cmp eax, 0xffffffff
jne 0x10134349
mov ecx, dword [edi + 4]
push 0
push 0x2719
push dword [esp + 0x24]
call fcn.10126a50
pop edi
ret 0x18
push ebx
mov ebx, dword [esp + 0x20]
lea ecx, [esp + 0x1c]
push esi
push 0
push ebx
push dword [esp + 0x24]
mov dword [esp + 0x2c], 0
push ecx
push dword [esp + 0x28]
push dword [esp + 0x28]
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 0x101343a6
cmp eax, 0x3e5
je 0x101343a6
push dword [esp + 0x20]
mov ecx, dword [edi + 4]
push eax
push ebx
call fcn.10126a50
pop esi
pop ebx
pop edi
ret 0x18
mov ecx, dword [edi + 4]
push ebx
call fcn.10126ad0
pop esi
pop ebx
pop edi
ret 0x18