Function at 0x5dc610
Capabilities:
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
mov esi, dword [esp + 0x58]
lea eax, [esp + 0x30]
push edi
mov edi, dword [esp + 0x58]
push eax
push esi
push edi
call fcn.005dc340
mov ebp, dword [esp + 0x78]
add esp, 0xc
cmp byte [esp + 0x68], 0
mov ebx, eax
mov dword [esp + 0x20], ebx
jne 0x5dc64b
movsx ecx, byte [ebp + 0x4c]
cmp ebx, ecx
jne 0x5dc64b
mov ecx, ebp
jmp 0x5dc653
mov ecx, dword [edi]
mov al, byte [ecx + 0x4d]
mov byte [ebp + 0x4d], al
movss xmm0, dword [ecx + 0x40]
ucomiss xmm0, dword [0x718814]
lahf
test ah, 0x44
jnp 0x5dc96b
movss xmm0, dword [ecx + 0x44]
lea eax, [esp + 0x28]
push eax
push ebx
lea eax, [esp + 0x3c]
push eax
push ecx
movss dword [esp], xmm0
call fcn.005d2e70
cmp byte [ebp + 0x4d], 0
mov byte [ebp + 0x4c], bl
setne al
mov byte [esp + 0x68], al
test ebx, ebx
je 0x5dc8b4
test al, al
je 0x5dc6a7
cmp ebx, 1
je 0x5dc8b4
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebx*4 + 0x7f]
and edx, 0xffffff80
mov dword [esp + 0x24], edx
mov esi, dword [eax + 0xc]
mov dword [esp + 0x10], esi
lea ecx, [esi + edx]
cmp edx, dword [eax + 8]
jg 0x5dc6da
cmp ecx, dword [eax + 0x10]
ja 0x5dc6da
mov dword [eax + 0xc], ecx
jmp 0x5dc6e8
push edx
mov ecx, eax
call fcn.0046a3c0
mov esi, eax
mov dword [esp + 0x10], eax
lea ecx, [ebx - 1]
test ecx, ecx
js 0x5dc6fa
inc ecx
mov edi, esi
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x58]
cmp dword [esp + 0x5c], 0
xorps xmm2, xmm2
mov eax, dword [esp + ebx*4 + 0x30]
movaps xmm6, xmm2
movss xmm4, dword [0x718824]
movaps xmm5, xmm2
mov dword [esp + 0x18], eax
jle 0x5dc81e
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x10]
sub eax, edi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x14], eax
movss xmm3, dword [eax + edi]
comiss xmm2, xmm3
jae 0x5dc802
mov ecx, dword [edi]
xor edx, edx
movsx eax, byte [ecx + 0x4c]
test eax, eax
jle 0x5dc75a
mov esi, dword [esp + 0x18]
nop
cmp dword [ecx + edx*8], esi
je 0x5dc75a
inc edx
cmp edx, eax
jl 0x5dc750
cmp byte [esp + 0x68], 0
movaps xmm0, xmm3
addss xmm6, xmm0
jne 0x5dc77e
movaps xmm0, xmm4
divss xmm0, dword [ecx + 0x40]
subss xmm0, dword [ecx + edx*8 + 4]
mulss xmm0, xmm3
addss xmm5, xmm0
xor esi, esi
test ebx, ebx
jle 0x5dc7fa
mov eax, edx
mov dword [esp + 0x1c], eax
cmp ebx, 1
jle 0x5dc7aa
movsx edi, byte [ecx + 0x4c]
mov ebx, dword [esp + esi*4 + 0x34]
lea eax, [edx + 1]
cdq
idiv edi
cmp dword [ecx + edx*8], ebx
jne 0x5dc797
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
cmp byte [esp + 0x68], 0
jne 0x5dc7bd
test esi, esi
jne 0x5dc7bd
movss xmm1, dword [ecx + edx*8 + 4]
jmp 0x5dc7de
movss xmm2, dword [ecx + eax*8 + 4]
movss xmm1, dword [ecx + edx*8 + 4]
comiss xmm1, xmm2
ja 0x5dc7da
movaps xmm0, xmm4
divss xmm0, dword [ecx + 0x40]
addss xmm1, xmm0
subss xmm1, xmm2
mulss xmm1, xmm3
addss xmm1, dword [ebp + esi*4]
movss dword [ebp + esi*4], xmm1
inc esi
cmp esi, ebx
jl 0x5dc784
mov edi, dword [esp + 0x58]
xorps xmm2, xmm2
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x5c]
add edi, 4
sub esi, 1
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], esi
jne 0x5dc730
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x10]
xor ecx, ecx
test ebx, ebx
jle 0x5dc857
movaps xmm1, xmm4
lea eax, [esp + 0x34]
mov edx, esi
divss xmm1, xmm6
sub edx, eax
lea eax, [edx + ecx*4]
movss xmm0, dword [esp + eax + 0x34]
mov eax, dword [esp + ecx*4 + 0x34]
mulss xmm0, xmm1
mov dword [ebp + ecx*8], eax
addss xmm2, xmm0
movss dword [ebp + ecx*8 + 4], xmm2
inc ecx
cmp ecx, ebx
jl 0x5dc833
cmp byte [esp + 0x68], 0
jne 0x5dc866
divss xmm5, xmm6
addss xmm2, xmm5
divss xmm4, xmm2
mov dword [ebp + 0x48], 0x3f800000
movss dword [ebp + 0x40], xmm4
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x24]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5dc8a6
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5dc8a6
cmp dword [eax + 0x14], esi
je 0x5dc8a6
mov dword [eax + 0xc], esi
jmp 0x5dc94f
push edx
push esi
mov ecx, eax
call fcn.0046a590
jmp 0x5dc94f
xorps xmm6, xmm6
movaps xmm5, xmm6
movaps xmm4, xmm6
movaps xmm2, xmm6
test esi, esi
jle 0x5dc96b
mov ecx, dword [esp + 0x60]
sub edi, ecx
nop
mov edx, dword [edi + ecx]
movss xmm1, dword [ecx]
movss xmm3, dword [edx + 0x40]
ucomiss xmm3, xmm6
lahf
test ah, 0x44
jnp 0x5dc906
comiss xmm1, xmm6
jbe 0x5dc906
movaps xmm0, xmm1
addss xmm2, xmm1
divss xmm0, xmm3
addss xmm5, xmm0
movss xmm0, dword [edx + 0x48]
mulss xmm0, xmm1
addss xmm4, xmm0
add ecx, 4
sub esi, 1
jne 0x5dc8d0
ucomiss xmm2, xmm6
lahf
test ah, 0x44
jnp 0x5dc96b
movss xmm0, dword [esp + 0x64]
comiss xmm0, xmm6
jbe 0x5dc92a
comiss xmm0, xmm2
jbe 0x5dc92a
movaps xmm2, xmm0
divss xmm4, xmm2
divss xmm2, xmm5
movss dword [ebp + 0x48], xmm4
movss dword [ebp + 0x40], xmm2
cmp ebx, 1
jne 0x5dc94f
mov eax, dword [esp + 0x34]
mov dword [ebp], eax
mov dword [ebp + 4], 0
lea eax, [ebp + 0x44]
mov ecx, ebp
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.005d3020
pop edi
pop esi
mov byte [ebp + 0x4e], 0
pop ebp
pop ebx
add esp, 0x44
ret
pop edi
pop esi
mov dword [ebp + 0x48], 0x3f800000
mov dword [ebp + 0x44], 0
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x4c], 0
pop ebp
pop ebx
add esp, 0x44
ret