joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4217f0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov edx, dword [ebp + 8]
mov eax, 0x1fffffff
push ebx
mov ebx, ecx
bsr ecx, eax
push esi
push edi
mov edi, 1
mov dword [ebp - 0xc], ebx
mov eax, edi
shl eax, cl
cmp edx, eax
ja 0x42195f
mov esi, dword [ebx + 4]
lea eax, [edx - 1]
or eax, edi
mov dword [ebp - 4], esi
bsr ecx, eax
push esi
lea ecx, [ecx + 1]
shl edi, cl
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x10], ecx
lea eax, [edi + edi]
push eax
call fcn.00420cf0
lea eax, [edi - 1]
mov dword [ebx + 0x1c], edi
mov dword [ebx + 0x18], eax
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx]
mov edx, ecx
cmp ecx, esi
je 0x421932
mov ebx, dword [ecx + 8]
movzx eax, bl
xor eax, 0x811c9dc5
mov edx, dword [edx]
imul edi, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor edi, eax
mov eax, ebx
imul edi, edi, 0x1000193
shr eax, 0x10
movzx eax, al
xor edi, eax
mov eax, ebx
imul edi, edi, 0x1000193
shr eax, 0x18
xor edi, eax
imul eax, edi, 0x1000193
mov edi, dword [ebp - 0xc]
mov edi, dword [edi + 0x18]
and edi, eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
lea eax, [eax + edi*8]
mov edi, dword [eax]
mov dword [ebp - 8], eax
mov dword [ebp + 8], edi
cmp edi, esi
jne 0x4218b8
mov dword [eax], ecx
mov dword [eax + 4], ecx
jmp 0x421928
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 8]
jne 0x4218ef
mov eax, dword [eax]
mov dword [ebp + 8], eax
cmp eax, ecx
je 0x4218e7
mov ebx, dword [ecx + 4]
mov esi, dword [ebp + 8]
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], eax
mov eax, dword [eax + 4]
mov dword [eax], ecx
mov dword [esi + 4], edi
mov esi, dword [ebp - 4]
mov dword [edx + 4], ebx
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov dword [eax + 4], ecx
jmp 0x421928
mov edi, eax
cmp dword [ebp + 8], eax
je 0x421905
mov eax, dword [eax + 4]
mov edi, eax
cmp ebx, dword [eax + 8]
je 0x42193b
cmp dword [ebp + 8], eax
jne 0x4218f6
mov eax, dword [ecx + 4]
mov dword [ebp + 8], eax
mov dword [eax], edx
mov ebx, dword [edx + 4]
mov dword [ebx], edi
mov eax, dword [edi + 4]
mov dword [eax], ecx
mov dword [edi + 4], ebx
mov edi, dword [ebp + 8]
mov dword [edx + 4], edi
mov dword [ecx + 4], eax
mov eax, dword [ebp - 8]
mov dword [eax], ecx
mov ecx, edx
cmp edx, esi
jne 0x421855
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ebx, dword [ecx + 4]
mov eax, dword [eax]
mov dword [ebp + 8], eax
mov esi, eax
mov dword [ebx], edx
mov edi, dword [edx + 4]
mov dword [edi], eax
mov eax, dword [eax + 4]
mov dword [eax], ecx
mov dword [esi + 4], edi
mov esi, dword [ebp - 4]
mov dword [edx + 4], ebx
mov dword [ecx + 4], eax
jmp 0x421928
push str.invalid_hash_bucket_count
call fcn.0042ad8f
int3
Function at 0x421e40
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 4], ecx
cmp edx, eax
je 0x421fb3
cmp dword [edx + 0x1c], 0x10
mov eax, dword [ecx + 4]
push esi
mov dword [ebp - 0x18], eax
mov esi, edx
mov eax, dword [ecx + 0xc]
push edi
mov dword [ebp - 0x14], eax
lea edi, [edx + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
mov eax, dword [edi + 0x10]
jb 0x421e7b
mov edi, dword [edi]
xor edx, edx
push ebx
mov ebx, 0x811c9dc5
test eax, eax
je 0x421ea4
mov ecx, eax
nop dword [eax]
movzx eax, byte [edx + edi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x421e90
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x14]
and eax, ebx
lea eax, [ecx + eax*8]
mov ecx, dword [eax]
mov dword [ebp - 0xc], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x1c], eax
nop dword [eax]
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 8]
call fcn.0040bd60
push 0x38
push edi
call fcn.0042cf26
mov eax, dword [ebp - 4]
add esp, 8
dec dword [eax + 8]
cmp ebx, dword [ebp - 0x1c]
je 0x421f0d
mov eax, dword [ebp + 0xc]
cmp esi, eax
jne 0x421ec0
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp + 8]
jne 0x421fa8
mov ecx, dword [ebp - 0xc]
pop ebx
pop edi
mov dword [ecx], esi
mov ecx, dword [ebp - 8]
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp - 0x10]
cmp ecx, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
jne 0x421f1f
mov eax, dword [ebp - 0x18]
mov dword [ecx], eax
jmp 0x421f22
mov eax, dword [ebp - 8]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0xc]
cmp esi, eax
je 0x421fa8
nop dword [eax]
cmp dword [esi + 0x1c], 0x10
lea edx, [esi + 8]
mov ebx, dword [edx + 0x10]
jb 0x421f3e
mov edx, dword [edx]
xor ecx, ecx
mov edi, 0x811c9dc5
test ebx, ebx
je 0x421f61
nop dword [eax]
movzx eax, byte [ecx + edx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, ebx
jb 0x421f50
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ebp - 0x14]
and eax, edi
lea eax, [ecx + eax*8]
mov dword [ebp + 8], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x1c], eax
mov edi, esi
mov ebx, esi
mov esi, dword [esi]
lea ecx, [edi + 8]
call fcn.0040bd60
push 0x38
push edi
call fcn.0042cf26
mov ecx, dword [ebp - 4]
add esp, 8
mov eax, dword [ebp + 0xc]
dec dword [ecx + 8]
cmp ebx, dword [ebp - 0x1c]
je 0x421fb9
cmp esi, eax
jne 0x421f78
mov ecx, dword [ebp + 8]
mov dword [ecx], esi
mov ecx, dword [ebp - 8]
pop ebx
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [ebp + 8]
mov edi, dword [ebp - 0x18]
mov dword [ecx], edi
mov dword [ecx + 4], edi
cmp esi, eax
jne 0x421f30
mov ecx, dword [ebp - 8]
pop ebx
pop edi
mov dword [ecx], esi
mov dword [esi + 4], ecx
pop esi
mov esp, ebp
pop ebp
ret 8
Function at 0x422000
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov ebx, dword [esi]
movzx eax, bl
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor edx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, edx, 0x1000193
movzx eax, al
shr ebx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, edi
xor eax, ebx
imul eax, eax, 0x1000193
push eax
push esi
lea eax, [ebp - 8]
push eax
call fcn.0041b460
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
test eax, eax
je 0x422069
add eax, 0xc
mov esp, ebp
pop ebp
ret 4
push str.invalid_unordered_map_K__T__key
call fcn.0042adaf
int3
Function at 0x425250
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ecx]
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
call dword [eax + 0x2c]
mov ebx, dword [ebp + 8]
mov esi, ebx
mov dword [ebp - 4], eax
cmp dword [ebx + 0x14], 0x10
mov edi, dword [ebx + 0x10]
jb 0x425274
mov esi, dword [ebx]
xor ecx, ecx
mov edx, 0x811c9dc5
test edi, edi
je 0x425294
nop
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x425280
mov eax, dword [ebp - 4]
push edx
push ebx
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.0041b3d0
mov esi, dword [eax + 4]
test esi, esi
jne 0x4252ae
mov esi, dword [ebp - 4]
mov esi, dword [esi + 4]
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
call dword [eax + 0x2c]
cmp esi, dword [eax + 4]
jne 0x4252c6
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x425860
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push esi
push 0x32
push 0x48a5bc
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x4258e2
mov ecx, 0x46c384
mov eax, 0x48a5bc
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4258a2
test dl, dl
je 0x42589e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4258a2
add eax, 2
add ecx, 2
test dl, dl
jne 0x425882
xor eax, eax
jmp 0x4258a7
sbb eax, eax
or eax, 1
test eax, eax
je 0x4258e2
mov esi, dword [ebp + 8]
mov ecx, 0x48a5bc
mov dword [esi + 0x10], 0
lea edx, [ecx + 1]
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4258c7
sub ecx, edx
push ecx
push 0x48a5bc
mov ecx, esi
call fcn.00403b20
mov eax, esi
pop esi
pop ebp
ret
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov ecx, edx
push edi
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
lea edi, [ecx + 1]
mov byte [esi], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x425900
sub ecx, edi
push ecx
push edx
mov ecx, esi
call fcn.00403b20
pop edi
mov eax, esi
pop esi
pop ebp
ret
Function at 0x429630
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov edi, ecx
call fcn.00425250
mov dword [ebp - 4], eax
test eax, eax
je 0x4296f1
mov edx, dword [edi]
mov ecx, edi
push ebx
call dword [edx + 0x2c]
cmp dword [esi + 0x14], 0x10
mov edx, esi
mov ebx, dword [esi + 0x10]
mov dword [ebp + 8], eax
jb 0x429666
mov edx, dword [esi]
xor ecx, ecx
mov edi, 0x811c9dc5
test ebx, ebx
je 0x429682
movzx eax, byte [ecx + edx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, ebx
jb 0x429671
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0xc]
push edi
push esi
push eax
mov ecx, ebx
call fcn.0041b3d0
mov esi, dword [eax + 4]
test esi, esi
je 0x4296e6
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0xc]
and ecx, edi
lea ecx, [eax + ecx*8]
mov eax, dword [ecx]
cmp dword [ecx + 4], esi
jne 0x4296c1
cmp eax, esi
jne 0x4296b9
mov eax, dword [ebx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], eax
jmp 0x4296c9
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
jmp 0x4296c9
cmp eax, esi
jne 0x4296c9
mov eax, dword [esi]
mov dword [ecx], eax
mov ecx, dword [esi]
lea edx, [ebx + 4]
dec dword [edx + 4]
mov eax, dword [esi + 4]
push esi
push edx
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
call fcn.0041b760
add esp, 8
mov ecx, dword [ebp - 4]
push 1
mov eax, dword [ecx]
call dword [eax + 0xc]
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x42fec9
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop ebp
ret

Function at 0x45774f
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.004575c5
Function at 0x4654c0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46b7a0
mov eax, dword fs:[0]
push eax
sub esp, 0x1ec
mov eax, dword [0x487274]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x134], eax
mov eax, dword [edi + 0x428]
mov esi, dword [eax]
mov eax, 0x10624dd3
imul ecx
mov dword [ebp - 0x128], esi
sar edx, 6
mov eax, edx
mov dword [ebp - 0x12c], 1
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x148], eax
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x148]
push eax
push 0
push 0
lea eax, [ebp - 0x12c]
push eax
lea eax, [esi + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
call ebx
test esi, esi
je 0x465644
cmp esi, 0xffffffff
jne 0x465584
cmp eax, 0x2714
jne 0x465678
xor eax, eax
jmp 0x465626
test esi, esi
js 0x465678
push dword [ebp + 0xc]
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x134]
push dword [edi + 0x428]
call dword [eax + 0x10]
mov esi, eax
call ebx
mov ebx, eax
cmp esi, 0xffffffff
jne 0x46560c
cmp ebx, 0x2714
jne 0x4655b9
xor eax, eax
jmp 0x465626
push 1
lea ecx, [ebp - 0x1f8]
call fcn.0040a530
push 0x46c598
push ebx
lea eax, [ebp - 0x1e8]
mov dword [ebp - 4], 1
push str.Error_during_receive__._Error_code:
push eax
call fcn.00401400
add esp, 8
mov ecx, eax
call fcn.00402830
push eax
call fcn.00401400
add esp, 8
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x1f8]
push eax
call fcn.004123d0
mov byte [ebp - 4], 2
jmp 0x46565b
test esi, esi
jne 0x465624
mov ecx, edi
call fcn.00465490
push 0x482240
lea eax, [ebp - 0x12d]
jmp 0x465672
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.0042cf39
mov esp, ebp
pop ebp
ret 0xc
push str.receive___timed_out.
lea ecx, [ebp - 0x28]
call fcn.004060e0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x140]
call fcn.0040f3b0
push 0x4815f0
lea eax, [ebp - 0x140]
push eax
call fcn.00443f23
push str.select___was_called_with_invalid_arguments.
lea ecx, [ebp - 0x140]
call fcn.004117e0
push 0x481708
lea eax, [ebp - 0x140]
push eax
call fcn.00443f23
int3
Function at 0x4656a0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46b7f0
mov eax, dword fs:[0]
push eax
sub esp, 0x20c
mov eax, dword [0x487274]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x148], eax
mov eax, dword [edi + 0x428]
mov esi, dword [eax]
mov eax, 0x10624dd3
imul ecx
mov dword [ebp - 0x140], esi
sar edx, 6
mov eax, edx
mov dword [ebp - 0x144], 1
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x150], eax
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [ebp - 0x14c], eax
lea eax, [ebp - 0x150]
push eax
push 0
lea eax, [ebp - 0x144]
push eax
push 0
lea eax, [esi + 1]
push eax
call dword [sym.imp.WS2_32.dll_select]
mov esi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test esi, esi
je 0x4657b2
cmp esi, 0xffffffff
jne 0x46575a
cmp eax, 0x2714
jne 0x4657e6
xor eax, eax
jmp 0x465795
test esi, esi
js 0x4657e6
push dword [ebp + 0xc]
mov eax, dword [edi]
mov ecx, edi
push dword [ebp - 0x148]
push dword [edi + 0x428]
call dword [eax + 0xc]
mov edi, eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
cmp edi, 0xffffffff
jne 0x465793
cmp esi, 0x2714
jne 0x465807
xor eax, eax
jmp 0x465795
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042cf39
mov esp, ebp
pop ebp
ret 0xc
push str.send___timed_out.
lea ecx, [ebp - 0x28]
call fcn.004060e0
lea eax, [ebp - 0x28]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x15c]
call fcn.0040f3b0
push 0x4815f0
lea eax, [ebp - 0x15c]
push eax
call fcn.00443f23
push str.select___was_called_with_invalid_arguments.
lea ecx, [ebp - 0x15c]
call fcn.004117e0
push 0x481708
lea eax, [ebp - 0x15c]
push eax
call fcn.00443f23
push 1
lea ecx, [ebp - 0x218]
call fcn.0040a530
push 0x46c598
push esi
lea eax, [ebp - 0x208]
mov dword [ebp - 4], 1
push str.Error_during_send__._Error_code:
push eax
call fcn.00401400
add esp, 8
mov ecx, eax
call fcn.00402830
push eax
call fcn.00401400
add esp, 8
lea eax, [ebp - 0x40]
lea ecx, [ebp - 0x218]
push eax
call fcn.004123d0
push eax
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 2
call fcn.0040f3b0
push 0x4815f0
lea eax, [ebp - 0x168]
push eax
call fcn.00443f23
int3
Function at 0x405dc0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
xor esi, esi
lea eax, [edx + eax*2]
mov dword [ebp - 0x10], eax
movzx eax, byte [edx + 1]
cmp byte [edx], ch
lea edx, [edx + 2]
lea edi, [esi + eax]
jne 0x405e10
cmp edi, esi
jb 0x405e7b
cmp edi, dword [ebp + 0x10]
ja 0x405e8e
add esi, dword [ebp + 0xc]
nop word [eax + eax]
test eax, eax
je 0x405e12
dec eax
cmp byte [esi], cl
lea esi, [esi + 1]
jne 0x405e00
jmp 0x405e6f
ja 0x405e19
cmp edx, dword [ebp - 0x10]
mov esi, edi
jne 0x405dd5
mov edi, dword [ebp + 0x18]
movzx ecx, cx
mov al, 1
add edi, ebx
nop word cs:[eax + eax]
nop dword [eax]
movzx edx, byte [ebx]
lea esi, [ebx + 1]
test dl, dl
js 0x405e50
mov ebx, esi
sub ecx, edx
jns 0x405e67
jmp 0x405e71
cmp esi, edi
je 0x405ea2
movzx esi, byte [ebx + 1]
and edx, 0x7f
add ebx, 2
shl edx, 8
or edx, esi
sub ecx, edx
js 0x405e71
xor al, 1
cmp ebx, edi
jne 0x405e30
jmp 0x405e71
xor eax, eax
and al, 1
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
mov edx, edi
push 0x7eb8d4
call fcn.00404a00
add esp, 4
ud2
mov edx, dword [ebp + 0x10]
mov ecx, edi
push 0x7eb8d4
call fcn.00404310
add esp, 4
ud2
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
mov edx, 0x2b
push 0x7eb8c4
call fcn.00404630
add esp, 4
ud2
Function at 0x410180
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov eax, dword [ebp + 0xc]
cmp eax, 3
je 0x410197
test eax, eax
jne 0x4102f8
mov edi, dword [0x7f70c4]
test edi, edi
je 0x4102f8
mov dword [ebp - 0x10], 0
jmp 0x4101b7
mov edi, dword [edi + 8]
test edi, edi
je 0x4101e6
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x410337
dec esi
push esi
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
je 0x4101b0
push 0
push esi
mov esi, eax
call sub.KERNEL32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x4101b0
test byte [ebp - 0x10], 1
je 0x4102f8
mov edi, dword [0x7f70c4]
test edi, edi
je 0x4102f8
mov dword [ebp - 0x10], 0
jmp 0x410217
mov edi, dword [edi + 8]
test edi, edi
je 0x410246
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x410337
dec esi
push esi
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
je 0x410210
push 0
push esi
mov esi, eax
call sub.KERNEL32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x410210
test byte [ebp - 0x10], 1
je 0x4102f8
mov edi, dword [0x7f70c4]
test edi, edi
je 0x4102f8
mov dword [ebp - 0x10], 0
jmp 0x410277
mov edi, dword [edi + 8]
test edi, edi
je 0x4102a6
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x410337
dec esi
push esi
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
je 0x410270
push 0
push esi
mov esi, eax
call sub.KERNEL32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x410270
test byte [ebp - 0x10], 1
je 0x4102f8
mov edi, dword [0x7f70c4]
test edi, edi
je 0x4102f8
mov dword [ebp - 0x10], 0
jmp 0x4102c7
mov edi, dword [edi + 8]
test edi, edi
je 0x4102f2
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x410337
dec esi
push esi
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
je 0x4102c0
push 0
push esi
mov esi, eax
call sub.KERNEL32.dll_TlsSetValue
push esi
call ebx
add esp, 4
mov al, 1
mov dword [ebp - 0x10], eax
jmp 0x4102c0
test byte [ebp - 0x10], 1
jne 0x410302
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov edi, dword [0x7f70c4]
jmp 0x41030d
mov edi, dword [edi + 8]
test edi, edi
je 0x4102f8
mov esi, dword [edi]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x410337
dec esi
push esi
call sub.KERNEL32.dll_TlsGetValue
test eax, eax
je 0x41030a
push 0
push esi
mov esi, eax
call sub.KERNEL32.dll_TlsSetValue
push esi
call ebx
add esp, 4
jmp 0x41030a
mov edx, 0x2b
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
push 0x7ee748
call fcn.00404630
add esp, 4
ud2
Function at 0x410f00
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [0x445030]
test eax, eax
je 0x410f2a
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jbe 0x410f3f
cmp dword [eax + 4], 0
mov edi, eax
je 0x410f3f
add edi, 8
jmp 0x410ffe
mov ecx, 0x445030
call fcn.00411290
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
ja 0x410f1a
mov eax, dword [0x445030]
test eax, eax
je 0x410fe3
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x410ffc
mov esi, eax
test eax, eax
jne 0x410fb2
movzx eax, byte [0x7f7060]
mov eax, dword [0x7f70c0]
test eax, eax
jne 0x410f84
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x411010
mov dword [0x7f70c0], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x411010
mov dword [eax], 0x445030
mov dword [eax + 4], 0
mov esi, eax
mov eax, dword [0x445030]
test eax, eax
je 0x411004
dec eax
push esi
push eax
call sub.KERNEL32.dll_TlsSetValue
mov ecx, dword [esi + 0xc]
cmp dword [esi + 4], 0
lea edi, [esi + 8]
mov dword [esi + 4], 1
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
je 0x410ffe
test ecx, ecx
je 0x410ffe
lock dec dword [ecx]
jne 0x410ffe
call fcn.00411040
jmp 0x410ffe
mov ecx, 0x445030
call fcn.00411290
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x410f5c
xor edi, edi
mov eax, edi
pop esi
pop edi
pop ebp
ret
mov ecx, 0x445030
call fcn.00411290
jmp 0x410fab
mov ecx, 4
mov edx, 0x10
call fcn.00403710
ud2
Function at 0x411290
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
cmp dword [ecx + 4], 0
mov esi, ecx
je 0x4112f9
lea ebx, [esi + 0xc]
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x14]
push 0
push eax
push 0
push ebx
call sub.KERNEL32.dll_InitOnceBeginInitialize
cmp eax, 1
mov dword [ebp - 0x10], eax
jne 0x41132f
cmp dword [ebp - 0x14], 0
je 0x411316
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
je 0x411343
mov edi, eax
inc eax
mov dword [esi], eax
mov eax, dword [0x7f70c4]
nop dword [eax + eax]
mov dword [esi + 8], eax
lock cmpxchg dword [0x7f70c4], esi
jne 0x4112e0
push 0
push 0
push ebx
call sub.KERNEL32.dll_InitOnceComplete
jmp 0x411325
call sub.KERNEL32.dll_TlsAlloc
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x41137f
mov ecx, eax
xor eax, eax
inc ecx
lock cmpxchg dword [esi], ecx
jne 0x41131a
mov edi, dword [ebp - 0x10]
jmp 0x411325
mov edi, dword [esi]
jmp 0x411324
mov edi, eax
push dword [ebp - 0x10]
call sub.KERNEL32.dll_TlsFree
dec edi
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0
call fcn.004113b0
ud2
push 0
push 4
push ebx
call sub.KERNEL32.dll_InitOnceComplete
lea ecx, [ebp - 0x2c]
mov edx, 0x7ee714
mov dword [ebp - 0x2c], 0x7ee6dc
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
mov dword [ebp - 0x20], 0
call fcn.00403c30
ud2
lea ecx, [ebp - 0x10]
lea edx, [ebp - 0x2c]
mov dword [ebp - 0x2c], 0x7ee6dc
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x24], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rsIndex_out_of_bounds
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.00411410
ud2
Function at 0x413170
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov eax, dword [0x445020]
test eax, eax
je 0x413195
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jbe 0x4131aa
cmp dword [eax + 4], 0
je 0x4131aa
add eax, 8
pop esi
pop ebp
ret
mov ecx, 0x445020
call fcn.00411290
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
ja 0x413189
mov eax, dword [0x445020]
test eax, eax
je 0x413229
dec eax
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
je 0x41323e
mov esi, eax
test eax, eax
jne 0x413211
movzx eax, byte [0x7f7060]
mov eax, dword [0x7f70c0]
test eax, eax
jne 0x4131e3
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x41324f
mov dword [0x7f70c0], eax
push 0x10
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x41324f
mov dword [eax], 0x445020
mov dword [eax + 4], 0
mov esi, eax
mov eax, dword [0x445020]
test eax, eax
je 0x413243
dec eax
push esi
push eax
call sub.KERNEL32.dll_TlsSetValue
mov dword [esi + 4], 1
mov dword [esi + 8], 0
lea eax, [esi + 8]
mov byte [esi + 0xc], 0
pop esi
pop ebp
ret
mov ecx, 0x445020
call fcn.00411290
push eax
call sub.KERNEL32.dll_TlsGetValue
cmp eax, 1
jne 0x4131bf
xor eax, eax
pop esi
pop ebp
ret
mov ecx, 0x445020
call fcn.00411290
jmp 0x41320a
mov ecx, 4
mov edx, 0x10
call fcn.00403710
ud2