joyce8/EMBER2024-capa huggingface dataset:
Function at 0x595d20
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1b8
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0x18], ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x595d61
mov dword [esi], str.Ttget_nearby_bodies
rdtsc
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov esi, dword [ebp + 0x10]
lea eax, [esp + 0x40]
mov ecx, esi
mov dword [esp + 0x20], vtable.hkpAllCdPointCollector.0
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], listen
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], 0x7f7fffee
call fcn.0050d7e0
movss xmm0, dword [ebp + 0xc]
lea eax, [esp + 0x20]
subss xmm0, dword [0x718818]
push eax
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], 0x3a83126f
push dword [ebp + 8]
push dword [ebp + 0x18]
push esi
call fcn.005d0330
mov eax, dword [esp + 0x4c]
add esp, 0x18
mov esi, dword [esp + 0x30]
mov ecx, esi
mov dword [esp + 0x10], esi
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
cmp esi, eax
je 0x595ea2
mov esi, dword [ebp + 0x14]
mov edx, ecx
nop word [eax + eax]
mov eax, dword [ecx + 0x28]
cmp byte [eax + 0x18], 1
jne 0x595e87
movsx edi, byte [eax + 0x10]
add edi, eax
cmp byte [ebp + 0x1c], 0
jne 0x595e0f
cmp byte [ebp + 0x20], 0
je 0x595e57
mov edx, dword [edi + 0x80]
xor eax, eax
test edx, edx
jle 0x595e34
mov ecx, dword [edi + 0x7c]
nop
cmp dword [ecx], 0x1400
je 0x595f16
inc eax
add ecx, 0x10
cmp eax, edx
jl 0x595e20
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov ecx, dword [esp + 0x18]
cmp byte [ebp + 0x1c], 0
je 0x595e4d
cmp ecx, dword [esp + 0x14]
je 0x595e7f
cmp byte [ebp + 0x20], 0
je 0x595e57
test ecx, ecx
je 0x595e7f
mov eax, dword [esi + 8]
and eax, 0x3fffffff
cmp dword [esi + 4], eax
jne 0x595e74
push 4
push esi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [eax + ecx*4], edi
inc dword [esi + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
add ecx, 0x30
mov dword [esp + 0x10], ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
cmp ecx, eax
jne 0x595df0
mov ecx, dword [ebp + 0x10]
call fcn.0050d800
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x595ed9
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], vtable.hkpAllCdPointCollector.0
mov dword [esp + 0x34], 0
test eax, eax
js 0x595f0e
and eax, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [eax + eax*2]
shl eax, 4
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x34]
call dword [eax + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x1c
mov edx, dword [edi + 0x7c]
add eax, eax
mov ecx, dword [edx + eax*8 + 8]
jmp 0x595e41
Function at 0x596200
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 0x38]
test eax, eax
jne 0x59627a
mov eax, dword [esi + 0x2c]
cmp dword [eax + 0x20], 0
jne 0x596274
push ebx
push edi
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x14
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, eax
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 4], 0x1ffff
mov dword [edi], vtable.hkbAnimationBindingSet.0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], connect
mov ebx, dword [esi + 0x2c]
mov ecx, dword [ebx + 0x20]
test ecx, ecx
je 0x59626f
cmp ecx, edi
je 0x59626f
call fcn.0045c160
mov dword [ebx + 0x20], edi
pop edi
pop ebx
mov eax, dword [esi + 0x2c]
mov eax, dword [eax + 0x20]
pop esi
ret

Function at 0x5962b0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
cmp byte [esi + 0x54], 0
je 0x5962eb
push edi
mov edi, dword [esi + 0x48]
test edi, edi
je 0x5962d8
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x30
push edi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esp + 0xc]
mov dword [esi + 0x48], eax
mov al, byte [esp + 0x10]
pop edi
mov byte [esi + 0x54], al
pop esi
ret 8
mov eax, dword [esp + 8]
mov dword [esi + 0x48], eax
mov al, byte [esp + 0xc]
mov byte [esi + 0x54], al
pop esi
ret 8

Function at 0x5963f0
Capabilities:
Get thread local storage value

Disassembly:
push edi
mov edi, ecx
cmp dword [edi + 0x4c], 0
jne 0x596446
mov eax, dword [edi + 0x2c]
push esi
mov eax, dword [eax + 0x14]
mov esi, dword [eax + 0x1c]
mov dword [edi + 0x50], esi
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi + esi*2]
shl eax, 4
push eax
push ecx
call fcn.00460640
mov ecx, dword [edi + 0x2c]
mov dword [edi + 0x4c], eax
mov edx, dword [ecx + 0x14]
mov ecx, dword [edx + 0x28]
lea ecx, [ecx + ecx*2]
shl ecx, 4
push ecx
push dword [edx + 0x24]
push eax
call fcn.0045d810
add esp, 0x14
mov byte [edi + 0x55], 1
pop esi
pop edi
ret

Function at 0x596450
Capabilities:
Get thread local storage value

Disassembly:
push edi
mov edi, ecx
cmp byte [edi + 0x55], 0
je 0x596481
push esi
push dword [0x884adc]
mov esi, dword [edi + 0x4c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
push dword [eax + 0x2c]
call fcn.00460680
add esp, 8
mov dword [edi + 0x4c], 0
mov byte [edi + 0x55], 0
pop esi
pop edi
ret

Function at 0x596500
Capabilities:
Get thread local storage value

Disassembly:
push edi
mov edi, dword [ecx + 4]
test edi, edi
je 0x596528
push esi
push dword [0x884adc]
mov esi, dword [ecx]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [edi + edi*2]
shl eax, 2
push eax
push esi
mov edx, dword [ecx]
call dword [edx + 8]
pop esi
pop edi
ret
Function at 0x596580
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.005c63b0
mov eax, dword [esp + 8]
test al, 1
je 0x5965d2
test al, 4
jne 0x5965c7
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x14
cmp ax, cx
je 0x5965aa
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x14
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x5965e0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.00595bf0
mov eax, dword [esp + 8]
test al, 1
je 0x596632
test al, 4
jne 0x596627
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x58
cmp ax, cx
je 0x59660a
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x58
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x596640
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
mov dword [esi], vtable.hkpAllCdPointCollector.0
mov eax, dword [esi + 0x18]
mov dword [esi + 0x14], 0
test eax, eax
js 0x596673
and eax, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [eax + eax*2]
shl eax, 4
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x10]
call dword [eax + 0x10]
mov eax, dword [esp + 8]
mov dword [esi + 0x10], 0
mov dword [esi + 0x18], connect
mov dword [esi], vtable.hkpCdPointCollector.0
test al, 1
je 0x5966c1
test al, 4
jne 0x5966b3
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x1a0
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, esi
pop esi
ret 4
push 0x1a0
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x596880
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
mov dword [esi + 4], 0x1ffff
lea ecx, [esi + 0x20]
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], connect
mov byte [esi + 0x18], 0
mov dword [esi], vtable.hkbNode.0
mov dword [esi + 0x1c], 0
call fcn.0045d8c0
mov edi, dword [esp + 0x10]
or ebx, 0xffffffff
mov word [esi + 0x24], bx
mov byte [esi + 0x26], 0
mov dword [esi], vtable.hkbBehaviorGraph.0
mov byte [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], connect
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], connect
mov dword [esi + 0x48], 0
test edi, edi
je 0x59691d
mov ecx, edi
call fcn.0045c0c0
mov dword [esi + 0x4c], edi
mov edi, dword [esp + 0x14]
test edi, edi
je 0x59692f
mov ecx, edi
call fcn.0045c0c0
mov dword [esi + 0x50], edi
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
mov dword [esi + 0x6c], 0
mov dword [esi + 0x70], 0
mov dword [esi + 0x74], 0
mov dword [esi + 0x78], 0
mov dword [esi + 0x7c], 0
mov dword [esi + 0x80], 0
mov dword [esi + 0x84], 0
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x90], 0
mov dword [esi + 0x94], 0
mov dword [esi + 0x98], connect
mov dword [esi + 0x9c], 0
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], connect
mov word [esi + 0xa8], bx
mov word [esi + 0xaa], bx
mov dword [esi + 0xac], 0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 8
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x596a2d
mov dword [eax], 0x529
mov dword [eax + 4], 0x529
mov dword [esi + 0x48], eax
mov eax, esi
pop edi
pop esi
pop ebx
ret 8
pop edi
mov dword [esi + 0x48], 0
mov eax, esi
pop esi
pop ebx
ret 8
Function at 0x596ec0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
cmp dword [edi + 4], 0
jne 0x596f90
cmp dword [esi + 0x50], 0
je 0x596edd
call fcn.00598470
push ebx
push dword [0x884adc]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call ebx
push 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x596f10
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], connect
jmp 0x596f12
xor eax, eax
mov dword [esi + 0x58], eax
push dword [0x884adc]
call ebx
push 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x596f41
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0xffffffff
jmp 0x596f43
xor eax, eax
mov dword [esi + 0x5c], eax
push dword [0x884adc]
call ebx
push 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
pop ebx
test eax, eax
je 0x596f73
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], connect
jmp 0x596f75
xor eax, eax
push 0
mov dword [esi + 0x60], eax
mov ecx, esi
push edi
mov byte [esi + 0xac], 1
call fcn.005f1b90
mov dword [edi + 4], 0
pop edi
pop esi
ret 4
Function at 0x5978d0
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebp, ebp
mov dword [edi], vtable.hkbBehaviorGraph::GlobalTransitionData.0
cmp dword [edi + 0xc], ebp
jle 0x597987
xor ebx, ebx
nop dword [eax]
mov eax, dword [edi + 8]
mov esi, dword [ebx + eax + 0x10]
test esi, esi
je 0x597945
mov eax, dword [esi + 8]
mov dword [esi + 4], 0
test eax, eax
js 0x597921
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esi]
call dword [eax + 0x10]
mov dword [esi], 0
mov dword [esi + 8], connect
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0xc
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [edi + 8]
mov esi, dword [ebx + eax + 0xc]
test esi, esi
je 0x59797a
push 0x7d8954
mov ecx, esi
call fcn.0046b3e0
mov ecx, esi
call fcn.0046b110
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0xc
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
inc ebp
add ebx, 0x1c
cmp ebp, dword [edi + 0xc]
jl 0x5978f0
mov ecx, dword [edi + 0x34]
xor esi, esi
test ecx, ecx
js 0x5979a0
mov eax, dword [edi + 0x2c]
cmp dword [eax], 0xffffffff
jne 0x5979a0
inc esi
add eax, 8
cmp esi, ecx
jle 0x597993
cmp esi, ecx
jg 0x597a18
mov eax, dword [edi + 0x2c]
mov ebx, dword [eax + esi*8 + 4]
test ebx, ebx
je 0x5979f9
mov eax, dword [ebx + 8]
mov dword [ebx + 4], 0
test eax, eax
js 0x5979d5
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [ebx]
call dword [eax + 0x10]
mov dword [ebx], 0
mov dword [ebx + 8], connect
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0xc
push ebx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [edi + 0x34]
inc esi
cmp esi, ecx
jg 0x597a18
mov eax, dword [edi + 0x2c]
lea eax, [eax + esi*8]
cmp dword [eax], 0xffffffff
jne 0x597a14
inc esi
add eax, 8
cmp esi, ecx
jle 0x597a07
cmp esi, ecx
jle 0x5979a4
push 0x7d8954
lea ecx, [edi + 0x38]
call fcn.0046b3e0
lea ecx, [edi + 0x38]
call fcn.0046b110
push 0x7d8954
lea ecx, [edi + 0x2c]
call fcn.0046b3e0
lea ecx, [edi + 0x2c]
call fcn.0046b110
push 0x7d8954
lea ecx, [edi + 0x20]
call fcn.0046b3e0
lea ecx, [edi + 0x20]
call fcn.0046b110
mov eax, dword [edi + 0x1c]
mov dword [edi + 0x18], 0
test eax, eax
js 0x597a7e
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [edi + 0x14]
call dword [eax + 0x10]
mov dword [edi + 0x14], 0
mov dword [edi + 0x1c], connect
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test edx, edx
js 0x597abd
and edx, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [edx*8]
sub eax, edx
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [edi + 8]
call dword [eax + 0x10]
mov dword [edi + 8], 0
mov dword [edi + 0x10], connect
mov dword [edi], vtable.hkBaseObject.0
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x597b70
Capabilities:
Get thread local storage value

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
push edi
push dword [0x884adc]
mov edi, ecx
call ebx
push 0xb0
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0xb0
mov word [eax + 4], cx
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x597ba4
mov ecx, dword [edi + 0x4c]
push 1
push dword [edi + 0x50]
push ecx
mov ecx, eax
call fcn.00599720
mov esi, eax
lea ecx, [edi + 0x20]
push ecx
lea ecx, [esi + 0x20]
call fcn.0045d9c0
mov cl, byte [edi + 0x28]
mov byte [esi + 0x28], cl
mov ecx, esi
push dword [edi + 0x68]
call fcn.005984f0
push dword [edi + 0x6c]
mov ecx, esi
call fcn.00598520
push dword [edi + 0x70]
mov ecx, esi
call fcn.00598550
push dword [edi + 0x74]
mov ecx, esi
call fcn.00598580
push dword [edi + 0x64]
mov ecx, esi
call fcn.00599140
movzx eax, word [edi + 0xa8]
mov word [esi + 0xa8], ax
movzx eax, word [edi + 0xaa]
mov word [esi + 0xaa], ax
mov eax, dword [edi + 0x38]
mov dword [esi + 0x38], eax
push dword [0x884adc]
call ebx
push 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x597c45
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0xffffffff
jmp 0x597c47
xor eax, eax
mov dword [esi + 0x7c], eax
push dword [0x884adc]
call ebx
push 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x597c82
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0xffffffff
mov dword [esi + 0x80], eax
mov eax, esi
pop edi
pop esi
pop ebx
ret 4
pop edi
mov dword [esi + 0x80], 0
mov eax, esi
pop esi
pop ebx
ret 4
Function at 0x598330
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0x18], ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x59836a
mov dword [esi], str.TtHandleEvents
rdtsc
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov esi, dword [esp + 0x2c]
mov edi, dword [esi + 0x10]
test edi, edi
jle 0x598400
mov ebp, dword [esp + 0x28]
nop dword [eax]
mov edx, dword [esi + 8]
mov eax, dword [esi]
lea ecx, [edx + edx*2]
movq xmm0, qword [eax + ecx*4]
mov ebx, dword [eax + ecx*4 + 8]
lea eax, [edx + 1]
xor ecx, ecx
movq qword [esp + 0x18], xmm0
cmp eax, dword [esi + 4]
cmove eax, ecx
dec dword [esi + 0x10]
mov dword [esi + 8], eax
mov ecx, dword [esi + 0x14]
test ecx, ecx
jne 0x5983b5
mov eax, dword [esp + 0x18]
jmp 0x5983e0
cmp byte [esi + 0x18], 0
setne al
xor al, 1
mov eax, dword [esp + 0x18]
je 0x5983d0
test eax, eax
js 0x5983e0
mov ecx, dword [ecx + 8]
mov eax, dword [ecx + eax*4]
jmp 0x5983e0
test eax, eax
js 0x5983e0
push 0xffffffffffffffff
inc eax
add ecx, 0x14
push eax
call fcn.0046b890
sub esp, 0xc
mov ecx, esp
push ebp
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 4], eax
mov dword [ecx + 8], ebx
mov ecx, dword [esp + 0x24]
call fcn.0059a100
sub edi, 1
jne 0x598380
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x59842f
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x2c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8
Function at 0x598980
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 8
push esi
mov esi, dword [esp + 0x10]
push edi
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
add ecx, 0x10
add ecx, eax
call fcn.00478080
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
cmp dword [eax + 4], 2
jle 0x5989ad
movsx edi, word [eax + 0x32]
jmp 0x5989af
xor edi, edi
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x14], eax
test edi, edi
jle 0x598a69
push dword [eax + 0x24]
push ecx
call fcn.005d4210
mov eax, dword [esi + 0x30]
add esp, 8
mov eax, dword [eax]
movsx ecx, word [eax + 0x34]
add ecx, 0x10
test edi, edi
jle 0x598a65
xorps xmm0, xmm0
add ecx, eax
movaps xmm5, xmm0
mov eax, edi
movss xmm0, dword [0x719764]
movaps xmm6, xmm0
movss xmm0, dword [0x719760]
movaps xmm7, xmm0
movaps xmm4, xmmword [ecx]
movaps xmm0, xmm4
mulps xmm0, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
movaps xmm1, xmm6
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
movaps xmm3, xmm0
rsqrtss xmm2, xmm2
mulss xmm0, xmm2
cmpeqss xmm3, xmm5
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm2
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
movaps xmmword [ecx], xmm3
add ecx, 0x30
sub eax, 1
jne 0x598a06
mov eax, dword [esp + 0x14]
cmp byte [esi + 0x4a], 0
je 0x598ae7
test edi, edi
je 0x598ae7
mov ecx, dword [esi + 0x30]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ecx]
cmp dword [eax + 4], 2
jle 0x598a8b
movsx edi, word [eax + 0x32]
jmp 0x598a8d
xor edi, edi
movsx edx, word [eax + 0x34]
mov ecx, dword [esi + 0x2c]
add edx, eax
lea eax, [edi + edi*2]
shl eax, 4
push eax
mov ecx, dword [ecx]
push edx
mov dword [esp + 0x10], eax
call fcn.005961e0
push eax
call fcn.0045d810
mov eax, dword [esp + 0x18]
add esp, 0xc
cmp eax, edi
je 0x598ae7
mov edx, dword [esp + 0x14]
sub eax, edi
mov edi, dword [esp + 8]
mov ecx, dword [esi + 0x2c]
mov edx, dword [edx + 0x24]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [ecx]
push eax
lea eax, [edi + edx]
push eax
call fcn.005961e0
add eax, edi
push eax
call fcn.0045d810
add esp, 0xc
mov eax, dword [esi + 0x2c]
mov dword [eax + 4], 0
mov edi, dword [esi + 0x38]
test edi, edi
je 0x598b17
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push dword [eax + 0x2c]
call fcn.00460680
add esp, 8
mov dword [esi + 0x38], 0
pop edi
pop esi
add esp, 8
ret 4
Function at 0x598b20
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov ebx, ecx
push 0xffffffffffffffff
push dword [esp + 0x34]
mov dword [esp + 0x1c], ebx
mov ecx, dword [ebx + 0x5c]
call fcn.0046b890
push dword [0x884adc]
mov edi, eax
mov dword [esp + 0x1c], edi
lea esi, [edi + 1]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esi + 0x7f]
and edx, 0xffffff80
mov dword [esp + 0x1c], edx
mov ebp, dword [eax + 0xc]
lea ecx, [edx + ebp]
cmp edx, dword [eax + 8]
jg 0x598b6f
cmp ecx, dword [eax + 0x10]
ja 0x598b6f
mov dword [eax + 0xc], ecx
jmp 0x598b79
push edx
mov ecx, eax
call fcn.0046a3c0
mov ebp, eax
push esi
push 0
push ebp
call fcn.0045d830
add esp, 0xc
mov byte [edi + ebp], 1
mov ecx, edi
mov dword [esp + 0x30], ecx
test edi, edi
js 0x598c9c
mov edx, edi
xorps xmm1, xmm1
shl edx, 7
mov dword [esp + 0x10], edx
cmp byte [ecx + ebp], 0
je 0x598c88
mov eax, dword [ebx + 0x58]
mov eax, dword [eax]
cmp byte [edx + eax + 0x79], 0
lea edi, [edx + eax]
je 0x598c88
cmp byte [edi + 0x7d], 0
jne 0x598bca
mov esi, edi
jmp 0x598bd2
mov esi, dword [edi + 0x5c]
shl esi, 7
add esi, eax
cmp ecx, dword [esp + 0x18]
jne 0x598be7
movss xmm0, dword [esp + 0x34]
lea ebx, [esi + 0x44]
movss dword [ebx], xmm0
jmp 0x598c48
mov ecx, dword [edi + 0x6c]
shl ecx, 7
add ecx, eax
cmp byte [ecx + 0x7d], 0
je 0x598bfd
mov ecx, dword [ecx + 0x5c]
shl ecx, 7
add ecx, eax
movss xmm0, dword [esi + 0x40]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x598c40
movss xmm0, dword [ecx + 0x40]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x598c40
movss xmm0, dword [ecx + 0x44]
lea eax, [esp + 0x20]
push eax
push ecx
movss dword [esp], xmm0
call fcn.005d2cd0
lea ebx, [esi + 0x44]
mov ecx, esi
push ebx
lea eax, [esp + 0x24]
push eax
call fcn.005d3020
jmp 0x598c48
mov eax, dword [ecx + 0x44]
lea ebx, [esi + 0x44]
mov dword [ebx], eax
mov ecx, dword [edi + 0x54]
movss xmm0, dword [ebx]
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
call dword [eax + 0x68]
mov esi, dword [edi + 0x64]
xor edx, edx
mov ebx, dword [esp + 0x14]
test esi, esi
jle 0x598c7d
mov eax, dword [ebx + 0x60]
mov ecx, dword [edi + 0x68]
add ecx, edx
inc edx
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov byte [eax + ebp], 1
cmp edx, esi
jl 0x598c67
mov edx, dword [esp + 0x10]
xorps xmm1, xmm1
mov ecx, dword [esp + 0x30]
dec ecx
add edx, 0xffffff80
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edx
test ecx, ecx
jns 0x598ba3
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x598cd1
lea ecx, [edx + ebp]
cmp ecx, dword [eax + 0xc]
jne 0x598cd1
cmp dword [eax + 0x14], ebp
je 0x598cd1
pop edi
pop esi
mov dword [eax + 0xc], ebp
pop ebp
pop ebx
add esp, 0x1c
ret 8
push edx
push ebp
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8