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

Disassembly:
push ebx
push esi
push edi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov esi, eax
mov eax, dword [esi]
mov ebx, dword [eax - 8]
mov edi, dword [eax - 4]
test byte [ebx + 1], 4
je 0x420305
test byte [edi + 1], 4
je 0x420305
mov eax, dword [edi + 8]
push eax
mov edx, dword [edi + 0x10]
push edx
mov ecx, dword [ebx + 8]
push ecx
mov eax, dword [ebx + 0x10]
push eax
call fcn.004a86e0
add esp, 0x10
test eax, eax
setne dl
sub dword [esi], 4
and edx, 1
mov ecx, dword [esi]
mov edi, edx
mov eax, dword [ecx]
test dword [eax], 0xb405
je 0x4202f0
push eax
call fcn.0043f008
pop ecx
push ebx
call fcn.0043f008
pop ecx
mov dword [ebx], 0x80
mov dword [ebx + 8], edi
jmp 0x4203f4
test byte [edi], 4
je 0x420357
test dword [ebx], 0x47b
jne 0x42031e
push ebx
call fcn.0043ccbc
pop ecx
cmp eax, 1
jne 0x420357
push 0
push ebx
push edi
call fcn.0043cf70
sub dword [esi], 4
mov edi, eax
mov edx, dword [esi]
add esp, 0xc
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x420342
push eax
call fcn.0043f008
pop ecx
push ebx
call fcn.0043f008
pop ecx
mov dword [ebx], 0x80
mov dword [ebx + 8], edi
jmp 0x4203f4
push 0
push ebx
push edi
push ebx
push 0x11
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x420382
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4203f4
push eax
call fcn.0043f008
pop ecx
jmp 0x4203f4
push 0
push edi
push ebx
push ebx
push 0x10
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x4203ad
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4203f4
push eax
call fcn.0043f008
pop ecx
jmp 0x4203f4
push edi
push ebx
push 2
push 0x5407e2
push 0
push 0x455
push 1
call fcn.00457300
add esp, 0x1c
mov edi, eax
test edi, edi
je 0x4203f4
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4203e3
push eax
call fcn.0043f008
pop ecx
push edi
push ebx
call fcn.0043f284
add esp, 8
push edi
call fcn.0043dbc0
pop ecx
pop edi
pop esi
pop ebx
ret
Function at 0x4203f8
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
mov eax, dword [ebx]
mov esi, dword [eax - 4]
mov ecx, dword [esi]
test cl, 0x1a
je 0x420444
test cl, 2
je 0x42041e
fild dword [esi + 8]
jmp 0x42042b
test byte [esi], 8
je 0x420428
fild qword [esi + 8]
jmp 0x42042b
fld qword [esi + 8]
fcomp dword [0x420500]
fnstsw ax
sahf
setb dl
and edx, 1
sub dword [ebx], 4
mov edi, edx
jmp 0x4204ec
push 0
call fcn.00422f60
pop ecx
mov eax, dword [ebx]
mov edx, dword [eax - 4]
push edx
push esi
push 2
push 0x5407da
push 0
push 0x431
push 1
call fcn.00457300
add esp, 0x1c
mov esi, eax
test esi, esi
je 0x4204fc
test byte [esi], 0x80
je 0x4204b2
mov edi, dword [esi + 8]
push esi
call fcn.0043dbc0
pop ecx
sub dword [ebx], 4
mov eax, dword [ebx]
mov eax, dword [eax]
test dword [eax], 0xb405
je 0x42049a
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4204ec
push eax
call fcn.0043f008
pop ecx
jmp 0x4204ec
push esi
mov edx, dword [ebx]
mov ecx, dword [edx - 4]
push ecx
call fcn.0043f284
add esp, 8
push esi
call fcn.0043dbc0
pop ecx
mov eax, dword [ebx]
mov edx, dword [eax - 4]
push edx
push 1
push 0x32
call fcn.0046c000
pop ecx
push eax
push 0
push 0x42a
push 1
call fcn.00457160
add esp, 0x18
jmp 0x4204fc
test edi, edi
je 0x4204f7
call fcn.0041fa74
jmp 0x4204fc
call fcn.0041fe84
pop edi
pop esi
pop ebx
ret

Function at 0x42051c
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax]
mov ebx, dword [edx - 4]
test byte [ebx + 1], 0x10
je 0x420577
call fcn.00456824
mov esi, eax
push 0x5406f0
push 0x18
call fcn.0043b8e4
add esp, 8
mov edi, eax
mov ecx, 6
push esi
rep movsd dword es:[edi], dword [esi]
pop esi
mov ecx, 6
push esi
mov edi, esi
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
pop esi
mov dword [ebx], 1
mov dword [ebx + 8], eax
mov eax, 1
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
pop edi
pop esi
pop ebx
ret

Function at 0x420594
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
add dword [ebx], 4
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jne 0x4205b2
call fcn.00432d24
mov edx, dword [ebx]
mov esi, dword [edx - 4]
push 0x5406f8
push 4
call fcn.0043b8e4
add esp, 8
mov edx, dword [ebx + 0x2c]
mov dword [eax], edx
mov dword [esi], 1
mov dword [esi + 8], eax
mov eax, 1
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov edx, dword [ebx]
sub edx, dword [ebx + 8]
test edx, edx
jns 0x4205eb
add edx, 3
sar edx, 2
add edx, 0xfffffffe
mov dword [ebx + 0x2c], edx
pop esi
pop ebx
ret
Function at 0x4205f8
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov eax, dword [0x555894]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
test edi, edi
je 0x42061c
push edi
call fcn.0043dbc0
pop ecx
test byte [esi + 1], 0x80
je 0x4206d9
mov eax, dword [esi + 8]
cmp word [eax + 0xc], 0
je 0x4206d9
call fcn.0042557c
test ax, ax
jne 0x4206d9
push 0x1b
push esi
call fcn.0042d7d4
add esp, 8
test eax, eax
je 0x4206d9
mov edx, dword [ebx]
mov ecx, dword [edx]
push esi
mov edi, ecx
lea esi, [ebx + 0x10]
mov ecx, 6
rep movsd dword es:[edi], dword [esi]
pop esi
xor eax, eax
mov dword [ebx + 0x10], eax
add dword [ebx], 4
mov edx, dword [ebx]
cmp edx, dword [ebx + 4]
jne 0x42067b
call fcn.00432d24
call fcn.00422df0
push 0
push 0
push esi
mov ecx, dword [ebx]
mov eax, dword [ecx - 4]
push eax
push 0x1b
call fcn.0042d818
add esp, 0x14
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x4206ab
push eax
call fcn.0043f008
pop ecx
test dword [ebx + 0x10], 0xb405
je 0x4206be
lea edx, [ebx + 0x10]
push edx
call fcn.0043f008
pop ecx
sub dword [ebx], 4
lea edi, [ebx + 0x10]
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov ecx, 6
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
xor ecx, ecx
mov edx, dword [eax]
mov dword [edx], ecx
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x420a3c
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebp, eax
mov eax, dword [ebp]
mov edx, dword [eax - 4]
mov edi, dword [edx + 8]
test edi, edi
jle 0x420bbe
mov eax, edi
mov edx, dword [ebp]
add eax, eax
neg eax
mov ecx, dword [edx + eax*4]
mov dword [esp], ecx
mov eax, dword [esp]
push eax
call fcn.0043f498
pop ecx
mov esi, eax
mov ebx, dword [esi + 8]
test byte [ebx + 1], 0x20
je 0x420a8c
push ebx
call fcn.0043f7e0
pop ecx
mov ebx, eax
test byte [ebx + 1], 0x80
je 0x420b3f
test byte [ebx + 1], 0x80
je 0x420b18
mov eax, dword [ebx + 8]
cmp word [eax + 0xc], 0
je 0x420b18
push 0x1a
push ebx
call fcn.0042d7d4
add esp, 8
test eax, eax
je 0x420b18
inc dword [esi + 0x10]
call fcn.00422df0
push 0
call fcn.00422e18
pop ecx
mov eax, dword [ebp]
mov edx, dword [eax - 4]
push edx
mov ecx, dword [esp + 4]
push ecx
push ebx
mov eax, dword [eax - 8]
push eax
push 0x1a
call fcn.0042d818
sub dword [ebp], 4
mov edx, dword [ebp]
add esp, 0x14
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x420af8
push eax
call fcn.0043f008
pop ecx
call fcn.0042557c
test ax, ax
jne 0x420bbe
call fcn.00423ba8
test eax, eax
je 0x420bbe
jmp 0x420bb5
mov eax, dword [esi + 0xc]
test eax, eax
je 0x420b2b
push eax
call fcn.0043dbc0
pop ecx
xor edx, edx
mov dword [esi + 0xc], edx
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
mov eax, dword [ebx + 8]
cmp ecx, dword [eax + 4]
ja 0x420bbe
jmp 0x420bb5
test byte [ebx], 4
je 0x420b6a
mov eax, dword [esi + 0xc]
test eax, eax
je 0x420b57
push eax
call fcn.0043dbc0
pop ecx
xor edx, edx
mov dword [esi + 0xc], edx
push ebx
call fcn.0043ccbc
pop ecx
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp eax, ecx
jb 0x420bbe
jmp 0x420bb5
test byte [ebx + 1], 4
je 0x420b96
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, dword [ebx + 8]
ja 0x420bbe
push 1
mov edx, dword [ebx + 0x10]
add edx, dword [esi + 0x10]
dec edx
push edx
mov ecx, dword [esi + 0xc]
push ecx
call fcn.0043dce8
add esp, 0xc
mov dword [esi + 0xc], eax
jmp 0x420bb5
push ebx
push 1
push 0x2e
call fcn.0046c000
pop ecx
push eax
push 0
push 0x42c
push 1
call fcn.00457160
add esp, 0x18
jmp 0x420bcd
dec edi
test edi, edi
jg 0x420a5f
test edi, edi
sete al
and eax, 1
push eax
call fcn.00422e18
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x420bd4
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebp, eax
mov eax, dword [ebp]
mov edx, dword [eax - 4]
mov edi, dword [edx + 8]
test edi, edi
jle 0x420d34
mov eax, edi
mov edx, dword [ebp]
add eax, eax
neg eax
mov ecx, dword [edx + eax*4]
mov dword [esp], ecx
mov eax, dword [esp]
push eax
call fcn.0043f498
pop ecx
mov esi, eax
mov ebx, dword [esi + 8]
test byte [ebx + 1], 0x20
je 0x420c24
push ebx
call fcn.0043f7e0
pop ecx
mov ebx, eax
test byte [ebx + 1], 0x80
je 0x420cc7
test byte [ebx + 1], 0x80
je 0x420cad
mov eax, dword [ebx + 8]
cmp word [eax + 0xc], 0
je 0x420cad
push 0x1a
push ebx
call fcn.0042d7d4
add esp, 8
test eax, eax
je 0x420cad
dec dword [esi + 0x10]
call fcn.00422df0
push 1
call fcn.00422e18
pop ecx
mov eax, dword [ebp]
mov edx, dword [eax - 4]
push edx
mov ecx, dword [esp + 4]
push ecx
push ebx
mov eax, dword [eax - 8]
push eax
push 0x1a
call fcn.0042d818
sub dword [ebp], 4
mov edx, dword [ebp]
add esp, 0x14
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x420c90
push eax
call fcn.0043f008
pop ecx
call fcn.0042557c
test ax, ax
jne 0x420d34
call fcn.00423ba8
test eax, eax
je 0x420d34
jmp 0x420d2b
mov eax, dword [esi + 0xc]
test eax, eax
je 0x420cc0
push eax
call fcn.0043dbc0
pop ecx
xor edx, edx
mov dword [esi + 0xc], edx
dec dword [esi + 0x10]
je 0x420d34
jmp 0x420d2b
test byte [ebx], 4
je 0x420ce6
mov eax, dword [esi + 0xc]
test eax, eax
je 0x420cdf
push eax
call fcn.0043dbc0
pop ecx
xor edx, edx
mov dword [esi + 0xc], edx
dec dword [esi + 0x10]
je 0x420d34
jmp 0x420d2b
test byte [ebx + 1], 4
je 0x420d0c
dec dword [esi + 0x10]
je 0x420d34
push 1
mov ecx, dword [ebx + 0x10]
add ecx, dword [esi + 0x10]
dec ecx
push ecx
mov eax, dword [esi + 0xc]
push eax
call fcn.0043dce8
add esp, 0xc
mov dword [esi + 0xc], eax
jmp 0x420d2b
push ebx
push 1
push 0x2e
call fcn.0046c000
pop ecx
push eax
push 0
push 0x42c
push 1
call fcn.00457160
add esp, 0x18
jmp 0x420d43
dec edi
test edi, edi
jg 0x420bf7
test edi, edi
sete dl
and edx, 1
push edx
call fcn.00422e18
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x420d9c
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax]
mov ebx, dword [edx - 4]
mov eax, dword [ebx]
test al, 0xa
jne 0x420dee
test ah, 4
jne 0x420dee
push ebx
push 1
push str.SWITCH
push 0
push 0xc20
push 1
call fcn.00457300
add esp, 0x18
mov esi, eax
test esi, esi
jne 0x420ddd
xor eax, eax
pop esi
pop ebx
ret
push esi
push ebx
call fcn.0043f284
add esp, 8
push esi
call fcn.0043dbc0
pop ecx
mov eax, ebx
pop esi
pop ebx
ret
Function at 0x420df4
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edi, eax
call fcn.00420d9c
mov esi, eax
test esi, esi
je 0x420f2f
xor eax, eax
jmp 0x420f19
mov dl, byte [ebx]
sub dl, 0x61
je 0x420e33
sub dl, 3
je 0x420ea8
sub dl, 6
je 0x420e68
jmp 0x420eae
mov ecx, dword [esi]
test cl, 0xa
je 0x420e63
test cl, 2
je 0x420e45
mov eax, dword [esi + 8]
cdq
jmp 0x420e4b
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
push edx
push eax
mov eax, dword [ebx + 1]
cdq
cmp edx, dword [esp + 4]
jne 0x420e5a
cmp eax, dword [esp]
sete al
and eax, 1
add esp, 8
add ebx, 5
jmp 0x420eae
test byte [esi + 1], 4
je 0x420e9c
mov edx, dword [esi + 8]
xor ecx, ecx
mov cl, byte [ebx + 1]
dec ecx
cmp edx, ecx
jne 0x420e93
mov eax, dword [esi + 8]
lea edx, [ebx + 2]
push eax
push edx
mov ecx, dword [esi + 0x10]
push ecx
call fcn.004ab960
add esp, 0xc
test eax, eax
je 0x420e97
xor eax, eax
jmp 0x420e9c
mov eax, 1
xor edx, edx
mov dl, byte [ebx + 1]
add edx, 2
add ebx, edx
jmp 0x420eae
mov eax, 1
inc ebx
mov dl, byte [ebx]
sub dl, 0x19
je 0x420ebf
dec dl
je 0x420ed0
dec dl
je 0x420ee1
jmp 0x420f19
test eax, eax
je 0x420ecb
movsx ecx, byte [ebx + 1]
add ebx, ecx
jmp 0x420f19
add ebx, 2
jmp 0x420f19
test eax, eax
je 0x420edc
movsx edx, word [ebx + 1]
add ebx, edx
jmp 0x420f19
add ebx, 3
jmp 0x420f19
test eax, eax
je 0x420f16
xor edx, edx
xor ecx, ecx
mov dl, byte [ebx + 2]
mov cl, byte [ebx + 1]
shl edx, 8
or ecx, edx
xor edx, edx
mov dl, byte [ebx + 3]
shl edx, 0x10
or ecx, edx
test byte [ebx + 3], 0x80
je 0x420f0b
mov edx, 0xff
jmp 0x420f0d
xor edx, edx
shl edx, 0x18
or ecx, edx
add ebx, ecx
jmp 0x420f19
add ebx, 4
test eax, eax
jne 0x420f2f
mov cx, word [ebp + 0xc]
add word [ebp + 0xc], 0xffff
test cx, cx
jne 0x420e20
sub dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
test dword [eax], 0xb405
je 0x420f45
push eax
call fcn.0043f008
pop ecx
mov eax, ebx
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x420f4c
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edx, dword [eax]
mov ebx, dword [edx - 4]
test byte [ebx], 0x80
je 0x420f79
mov dword [ebx], 0x80
mov eax, dword [ebx + 8]
cmp eax, 1
sbb edx, edx
neg edx
mov dword [ebx + 8], edx
pop esi
pop ebx
ret
push 0
push 0
push ebx
push ebx
push 0x12
call fcn.0042d818
add esp, 0x14
test eax, eax
jne 0x420fbd
push ebx
push 1
push 0x5407eb
push 0
push 0x435
push 1
call fcn.00457300
add esp, 0x18
mov esi, eax
test esi, esi
je 0x420fbd
push esi
push ebx
call fcn.0043f284
add esp, 8
push esi
call fcn.0043dbc0
pop ecx
pop esi
pop ebx
ret
Function at 0x420fc0
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov esi, eax
mov eax, dword [esi]
mov edi, dword [eax - 4]
mov ebx, dword [eax - 8]
test byte [ebx], 0x80
je 0x421005
test byte [edi], 0x80
je 0x421005
mov dword [ebx], 0x80
cmp dword [ebx + 8], 0
je 0x420ff4
cmp dword [edi + 8], 0
jne 0x420ff8
xor eax, eax
jmp 0x420ffd
mov eax, 1
mov dword [ebx + 8], eax
sub dword [esi], 4
jmp 0x421077
push 0
push edi
push ebx
push ebx
push 0x13
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x421030
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421077
push eax
call fcn.0043f008
pop ecx
jmp 0x421077
push edi
push ebx
push 2
push 0x5407f1
push 0
push 0x436
push 1
call fcn.00457300
add esp, 0x1c
mov edi, eax
test edi, edi
je 0x421077
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421066
push eax
call fcn.0043f008
pop ecx
push edi
push ebx
call fcn.0043f284
add esp, 8
push edi
call fcn.0043dbc0
pop ecx
pop edi
pop esi
pop ebx
ret

Function at 0x42107c
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov esi, eax
mov eax, dword [esi]
mov edi, dword [eax - 4]
mov ebx, dword [eax - 8]
test byte [ebx], 0x80
je 0x4210c1
test byte [edi], 0x80
je 0x4210c1
mov dword [ebx], 0x80
cmp dword [ebx + 8], 0
jne 0x4210b4
cmp dword [edi + 8], 0
jne 0x4210b4
xor eax, eax
jmp 0x4210b9
mov eax, 1
mov dword [ebx + 8], eax
sub dword [esi], 4
jmp 0x421133
push 0
push edi
push ebx
push ebx
push 0x14
call fcn.0042d818
add esp, 0x14
test eax, eax
je 0x4210ec
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421133
push eax
call fcn.0043f008
pop ecx
jmp 0x421133
push edi
push ebx
push 2
push 0x5407f7
push 0
push 0x437
push 1
call fcn.00457300
add esp, 0x1c
mov edi, eax
test edi, edi
je 0x421133
sub dword [esi], 4
mov edx, dword [esi]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421122
push eax
call fcn.0043f008
pop ecx
push edi
push ebx
call fcn.0043f284
add esp, 8
push edi
call fcn.0043dbc0
pop ecx
pop edi
pop esi
pop ebx
ret
Function at 0x421a48
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov edi, eax
add dword [edi], 4
mov eax, dword [edi]
cmp eax, dword [edi + 4]
jne 0x421a6e
call fcn.00432d24
mov edx, dword [edi]
mov ecx, dword [edx - 4]
mov dword [ebp - 4], ecx
push esi
mov eax, dword [ebp - 4]
push eax
call fcn.00429c2c
add esp, 8
test esi, esi
je 0x421adc
xor ebx, ebx
cmp esi, ebx
jbe 0x421abe
mov eax, ebx
mov edx, dword [edi]
sub eax, esi
mov eax, dword [edx + eax*4 - 4]
and dword [eax], 0xfffbf7ff
push eax
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 8]
mov edx, ebx
shl edx, 3
mov eax, dword [ecx]
lea edx, [edx + edx*2]
add eax, edx
push eax
call fcn.0043f284
add esp, 8
inc ebx
cmp esi, ebx
ja 0x421a8d
mov ecx, dword [ebp - 4]
mov ebx, esi
push ecx
or eax, 0xffffffff
mov edx, dword [edi]
sub eax, ebx
mov eax, dword [edx + eax*4]
push eax
call fcn.0043f284
shl ebx, 2
add esp, 8
sub dword [edi], ebx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x421ae4
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov eax, dword [0x555894]
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push eax
call sub.KERNEL32.DLL_TlsGetValue
movzx edx, si
or ecx, 0xffffffff
sub ecx, edx
mov eax, dword [eax]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx]
test al, 2
je 0x421b13
mov ebx, dword [ebx + 8]
jmp 0x421b30
test al, 8
je 0x421b1e
mov eax, dword [ebx + 8]
mov ebx, eax
jmp 0x421b30
test al, 0x10
je 0x421b2e
fld qword [ebx + 8]
call fcn.004afcf0
mov ebx, eax
jmp 0x421b30
xor ebx, ebx
push ebx
push edi
call fcn.00429c2c
add esp, 8
dec esi
test si, si
je 0x421b64
jmp 0x421b5b
mov ecx, ebx
push esi
shl ecx, 3
mov eax, dword [edi + 8]
mov edx, dword [eax]
lea ecx, [ecx + ecx*2]
add edx, ecx
push edx
call fcn.00421ae4
add esp, 8
mov eax, ebx
add ebx, 0xffffffff
test eax, eax
jne 0x421b42
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x421b6c
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
push esi
add dword [ebx], 4
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jne 0x421b91
call fcn.00432d24
mov edx, dword [ebx]
mov ecx, dword [edx - 4]
push ecx
call fcn.00421ae4
movzx ecx, si
mov eax, dword [ebx]
add esp, 8
mov edx, dword [eax - 4]
push edx
or edx, 0xffffffff
sub edx, ecx
mov eax, dword [eax + edx*4]
push eax
call fcn.0043f284
add esp, 8
sub dword [ebx], 4
mov ecx, dword [ebx]
mov eax, dword [ecx]
test dword [eax], 0xb405
je 0x421bcf
push eax
call fcn.0043f008
pop ecx
dec esi
test si, si
jne 0x421bb9
pop esi
pop ebx
pop ebp
ret
Function at 0x421bdc
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
push 0
call fcn.0043cc58
pop ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push eax
mov edx, dword [ebp - 4]
push edx
call fcn.0043ccd4
add esp, 8
jmp 0x421c7d
mov eax, dword [ebx]
mov esi, dword [eax - 8]
mov edi, dword [eax - 4]
test dword [esi], 0x47b
je 0x421c59
push edi
push esi
mov eax, dword [ebp - 4]
push eax
call fcn.0043d428
add esp, 0xc
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421c41
push eax
call fcn.0043f008
pop ecx
sub dword [ebx], 4
mov edx, dword [ebx]
mov eax, dword [edx]
test dword [eax], 0xb405
je 0x421c7d
push eax
call fcn.0043f008
pop ecx
jmp 0x421c7d
push edi
push esi
mov edx, dword [ebp - 4]
push edx
push 3
push 0x2f
call fcn.0046c000
pop ecx
push eax
push 0
push 0x46d
push 2
call fcn.00457160
add esp, 0x20
jmp 0x421c88
mov ecx, dword [ebp + 8]
add dword [ebp + 8], 0xffffffff
test ecx, ecx
jne 0x421c0d
mov eax, dword [ebp - 4]
push eax
add dword [ebx], 4
mov edx, dword [ebx]
cmp edx, dword [ebx + 4]
jne 0x421c9b
call fcn.00432d24
mov ecx, dword [ebx]
mov eax, dword [ecx - 4]
push eax
call fcn.0043f284
add esp, 8
mov edx, dword [ebp - 4]
push edx
call fcn.0043dbc0
pop ecx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x421cbc
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
push ebp
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
mov eax, dword [ebx]
mov edx, dword [eax - 4]
push edx
call fcn.0043e230
pop ecx
mov esi, eax
sub dword [ebx], 4
cmp esi, 1
jbe 0x421d53
mov ebp, 1
mov eax, esi
dec eax
push eax
call fcn.00421a48
pop ecx
mov edx, dword [ebx]
mov ecx, dword [edx - 4]
push ecx
call fcn.0043da24
pop ecx
mov edi, eax
sub dword [ebx], 4
mov eax, dword [ebx]
mov eax, dword [eax]
test dword [eax], 0xb405
je 0x421d16
push eax
call fcn.0043f008
pop ecx
mov edx, dword [ebx]
mov eax, dword [edx - 8]
test byte [eax + 1], 0x20
je 0x421d28
call fcn.004213d0
jmp 0x421d2d
call fcn.00421138
cmp word [ebx + 0x34], 0
jne 0x421d4a
push ebp
push edi
call fcn.0042a1a0
add esp, 8
push eax
call fcn.00422db8
pop ecx
inc ebp
cmp esi, ebp
ja 0x421d16
push edi
call fcn.0043dbc0
pop ecx
jmp 0x421d5c
test esi, esi
jne 0x421d5c
call fcn.00422df0
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x421d64
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov esi, eax
mov eax, dword [esi]
mov edx, dword [ebp + 8]
mov ebx, dword [eax + edx*4]
push ebx
call fcn.0043e1f8
pop ecx
mov dword [ebp - 4], eax
test dword [ebx], 0xb405
je 0x421d9e
push ebx
call fcn.0043f008
pop ecx
dec edi
test di, di
je 0x421df0
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
push edi
mov edx, dword [ebp + 8]
sub edx, dword [ebp - 4]
dec edx
push edx
call fcn.00421d64
add esp, 8
add dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
sub ebx, dword [ebp - 8]
movzx eax, di
sub ebx, eax
jmp 0x421de5
movzx edx, di
add edx, ebx
mov ecx, dword [esi]
mov eax, dword [ecx + edx*4]
push eax
mov edx, dword [esi]
mov ecx, dword [edx + ebx*4]
push ecx
call fcn.0043f284
add esp, 8
inc ebx
mov eax, dword [ebp - 8]
add dword [ebp - 8], 0xffffffff
test eax, eax
jne 0x421dcb
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret

Function at 0x421dfc
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov ebx, dword [ebp + 8]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov esi, eax
push ebx
push 0xffffffffffffffff
call fcn.00421d64
add esp, 8
movzx edx, bx
shl edx, 2
sub dword [esi], edx
push eax
call fcn.0042225c
pop ecx
pop esi
pop ebx
pop ebp
ret

Function at 0x421e30
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov eax, dword [0x555894]
push eax
call sub.KERNEL32.DLL_TlsGetValue
mov ebx, eax
push esi
push 0xffffffffffffffff
call fcn.00421d64
add esp, 8
mov edi, eax
movzx eax, si
shl eax, 2
sub dword [ebx], eax
test dword [ebx + 0x10], 0xb405
je 0x421e70
lea edx, [ebx + 0x10]
push edx
call fcn.0043f008
pop ecx
jmp 0x421e75
xor ecx, ecx
mov dword [ebx + 0x10], ecx
push edi
call fcn.0042225c
mov eax, dword [ebx]
pop ecx
lea esi, [ebx + 0x10]
mov ecx, 6
mov edx, dword [eax]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebx + 0x10], eax
add dword [ebx], 4
mov edx, dword [ebx]
cmp edx, dword [ebx + 4]
jne 0x421ea0
call fcn.00432d24
pop edi
pop esi
pop ebx
pop ebp
ret