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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
mov eax, dword [ecx + 0x74]
push esi
push edi
mov dword [esp + 0x14], ecx
mov esi, dword [eax + 0x2c]
mov eax, dword [ecx + 0x78]
mov dword [esp + 0x1c], esi
test eax, eax
je 0x5ce0b4
cmp byte [ecx + 0xa2], 0
je 0x5ce0b4
movss xmm2, dword [ebp + 8]
xorps xmm1, xmm1
comiss xmm1, xmm2
jb 0x5cccf5
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
cmp dword [edx + 4], 6
jg 0x5cccb0
xor dl, dl
jmp 0x5cccbb
movss xmm0, dword [edx + 0x78]
comiss xmm0, xmm1
seta dl
mov byte [ecx + 0xa3], dl
mov edx, dword [eax]
cmp dword [edx + 4], 4
jg 0x5ccccd
xor dl, dl
jmp 0x5cccd8
movss xmm0, dword [edx + 0x58]
comiss xmm0, xmm1
seta dl
push ecx
movss dword [esp], xmm2
push eax
push dword [ebp + 0xc]
mov byte [ecx + 0xa4], dl
call fcn.005cfa20
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [eax + 0x2c]
push dword [0x884adc]
mov edi, dword [eax + 0x1c]
mov dword [esp + 0x28], edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [edi + edi*2]
shl edi, 4
add edi, 0x7f
mov edx, dword [eax + 0xc]
and edi, 0xffffff80
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edx
lea ecx, [edx + edi]
cmp edi, dword [eax + 8]
jg 0x5ccd34
cmp ecx, dword [eax + 0x10]
ja 0x5ccd34
mov dword [eax + 0xc], ecx
jmp 0x5ccd42
push edi
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x5ccd5b
lea ecx, [edx + 0x20]
mov edx, eax
nop
mov byte [ecx], 0
lea ecx, [ecx + 0x30]
sub edx, 1
jne 0x5ccd50
mov eax, dword [esi + 0x14]
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], connect
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], connect
call edi
mov ecx, dword [esp + 0x24]
lea esi, [ecx*4 + 0x7f]
mov ecx, dword [eax + 0xc]
and esi, 0xffffff80
mov dword [esp + 0x4c], ecx
add ecx, esi
mov dword [esp + 0x7c], esi
cmp esi, dword [eax + 8]
jg 0x5ccdcd
cmp ecx, dword [eax + 0x10]
ja 0x5ccdcd
mov dword [eax + 0xc], ecx
jmp 0x5ccdd9
push esi
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x4c], eax
push dword [0x884adc]
call edi
mov edi, dword [eax + 0xc]
mov dword [esp + 0x34], edi
lea ecx, [edi + esi]
cmp esi, dword [eax + 8]
jg 0x5ccdfa
cmp ecx, dword [eax + 0x10]
ja 0x5ccdfa
mov dword [eax + 0xc], ecx
jmp 0x5cce06
push esi
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x24]
sub edx, 1
js 0x5cce1b
mov edi, dword [esp + 0x4c]
lea ecx, [edx + 1]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
test edx, edx
js 0x5cce2b
mov edi, dword [esp + 0x34]
lea ecx, [edx + 1]
or eax, 0xffffffff
rep stosd dword es:[edi], eax
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call edi
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x48], ecx
add ecx, esi
cmp esi, dword [eax + 8]
jg 0x5cce51
cmp ecx, dword [eax + 0x10]
ja 0x5cce51
mov dword [eax + 0xc], ecx
jmp 0x5cce5d
push esi
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x48], eax
push dword [0x884adc]
call edi
mov edi, dword [eax + 0xc]
mov dword [esp + 0x44], edi
lea ecx, [edi + esi]
cmp esi, dword [eax + 8]
jg 0x5cce7e
cmp ecx, dword [eax + 0x10]
ja 0x5cce7e
mov dword [eax + 0xc], ecx
jmp 0x5cce8a
push esi
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x44], eax
mov edx, dword [ebp + 0x10]
xorps xmm3, xmm3
mov edi, dword [esp + 0x14]
movaps xmm1, xmm3
movss dword [esp + 0x20], xmm1
movss dword [esp + 0x18], xmm3
mov ecx, dword [edx]
cmp dword [ecx + 4], 6
jle 0x5ccfc3
movss xmm0, dword [ecx + 0x78]
comiss xmm0, xmm3
seta al
test al, al
je 0x5ccfc3
mov byte [edi + 0xa3], 1
mov eax, dword [edx]
mov dword [esp + 0x30], eax
movsx ecx, word [eax + 0x74]
movsx esi, word [eax + 0x72]
add ecx, eax
movss xmm0, dword [eax + 0x78]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x64]
and ecx, 0x3fffffff
movss dword [esp + 0x18], xmm0
cmp ecx, esi
jge 0x5ccf1d
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 0x20
cmovl eax, ecx
push eax
lea eax, [esp + 0x64]
push eax
push 0x7d8954
call fcn.00467b80
movss xmm1, dword [esp + 0x30]
add esp, 0x10
xorps xmm3, xmm3
mov eax, dword [esp + 0x60]
mov edx, esi
mov ecx, dword [esp + 0x5c]
sub edx, eax
shl eax, 5
add eax, 8
test edx, edx
jle 0x5ccf6a
add ecx, eax
lea eax, [ecx - 8]
test eax, eax
je 0x5ccf5e
mov dword [ecx - 8], 0x42480000
mov dword [ecx - 4], 0x3f4ccccd
mov dword [ecx], 0x3f800000
mov dword [ecx + 4], 0x40000000
mov dword [ecx + 8], 0x3f800000
add ecx, 0x20
sub edx, 1
jne 0x5ccf35
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x60], esi
shl esi, 5
shr esi, 2
test esi, esi
jle 0x5ccf90
nop dword [eax]
mov eax, dword [edx]
lea ecx, [ecx + 4]
mov dword [ecx - 4], eax
lea edx, [edx + 4]
sub esi, 1
jne 0x5ccf80
mov eax, dword [esp + 0x30]
xor ecx, ecx
movsx esi, word [eax + 0x70]
movsx edx, word [eax + 0x76]
imul edx, esi
add edx, 0xf
and edx, 0xfffffff0
add edx, dword [esp + 0xc]
test esi, esi
jle 0x5ccfc3
mov edi, dword [esp + 0x4c]
movsx eax, byte [ecx + edx]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x5ccfb3
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
cmp dword [eax + 4], 4
jle 0x5cd175
movss xmm0, dword [eax + 0x58]
comiss xmm0, xmm3
seta al
test al, al
je 0x5cd149
mov byte [edi + 0xa4], 1
mov eax, dword [ecx]
mov dword [esp + 0x30], eax
movsx ecx, word [eax + 0x54]
movsx esi, word [eax + 0x52]
add ecx, eax
movss xmm0, dword [eax + 0x58]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x58]
and ecx, 0x3fffffff
movss dword [esp + 0x20], xmm0
mov dword [esp + 0x2c], esi
cmp ecx, esi
jge 0x5cd03e
add ecx, ecx
mov eax, esi
cmp esi, ecx
push 0x30
cmovl eax, ecx
push eax
lea eax, [esp + 0x58]
push eax
push 0x7d8954
call fcn.00467b80
add esp, 0x10
xorps xmm3, xmm3
mov eax, dword [esp + 0x54]
mov edx, esi
sub edx, eax
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, 8
test edx, edx
jle 0x5cd0b9
add ecx, dword [esp + 0x50]
lea eax, [ecx - 8]
test eax, eax
je 0x5cd0b1
mov dword [ecx - 8], 0x3e2e147b
mov dword [ecx - 4], 0
mov dword [ecx], 0x3f800000
mov dword [ecx + 4], 0x3f19999a
mov dword [ecx + 8], 0x3d4ccccd
mov dword [ecx + 0xc], 0x3fb33333
mov dword [ecx + 0x10], 0x3fe66666
mov dword [ecx + 0x14], 0x3dcccccd
mov dword [ecx + 0x18], 0x3e99999a
mov dword [ecx + 0x1c], 0x3e99999a
mov dword [ecx + 0x20], 0x3cf5c28f
mov dword [ecx + 0x24], 0x3dcccccd
add ecx, 0x30
sub edx, 1
jne 0x5cd057
mov eax, dword [esp + 0x28]
mov dword [esp + 0x54], esi
mov dword [esp + 0xc], eax
test esi, esi
jle 0x5cd109
xor edi, edi
nop dword [eax + eax]
mov edx, dword [esp + 0x50]
mov ecx, eax
add edx, edi
mov esi, 0xc
nop dword [eax]
mov eax, dword [ecx]
lea edx, [edx + 4]
mov dword [edx - 4], eax
lea ecx, [ecx + 4]
sub esi, 1
jne 0x5cd0e0
mov eax, dword [esp + 0xc]
add edi, 0x30
add eax, 0x40
sub dword [esp + 0x2c], 1
mov dword [esp + 0xc], eax
jne 0x5cd0d0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
xor ecx, ecx
movsx esi, word [eax + 0x50]
movsx edx, word [eax + 0x56]
imul edx, esi
add edx, 0xf
and edx, 0xfffffff0
add edx, dword [esp + 0x28]
test esi, esi
jle 0x5cd140
mov edi, dword [esp + 0x34]
nop dword [eax]
movsx eax, byte [ecx + edx]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, esi
jl 0x5cd130
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
movss xmm1, dword [esp + 0x20]
movss xmm2, dword [0x718824]
comiss xmm1, xmm2
mov byte [esp + 0x13], 0
jbe 0x5cd17d
movss xmm0, dword [esp + 0x18]
comiss xmm2, xmm0
jb 0x5cd17d
movaps xmm1, xmm2
subss xmm1, xmm0
movss dword [esp + 0x20], xmm1
jmp 0x5cd182
movss xmm2, dword [0x718824]
mov byte [esp + 0x13], 1
mov ecx, dword [ecx]
movss dword [esp + 0x2c], xmm3
mov edx, dword [ecx + 4]
cmp edx, 5
jle 0x5cd1b7
movss xmm0, dword [ecx + 0x68]
comiss xmm0, xmm3
seta al
test al, al
je 0x5cd1b7
cmp word [ecx + 0x62], 0
movsx eax, word [ecx + 0x64]
jle 0x5cd1b7
movss xmm0, dword [eax + ecx]
movss dword [esp + 0x2c], xmm0
cmp edx, 8
jle 0x5cd298
movss xmm0, dword [ecx + 0x98]
comiss xmm0, xmm3
seta al
test al, al
je 0x5cd298
comiss xmm0, xmm2
jbe 0x5cd298
movsx eax, word [ecx + 0x94]
xor edx, edx
movsx esi, word [ecx + 0x92]
add eax, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x30], esi
cmp esi, 4
jl 0x5cd269
lea ecx, [eax + 8]
add esi, 0xfffffffc
mov eax, dword [esp + 0x38]
shr esi, 2
add eax, 0x21
inc esi
lea edx, [esi*4]
movss xmm0, dword [ecx - 8]
comiss xmm0, xmm2
jbe 0x5cd226
mov word [eax - 1], 1
movss xmm0, dword [ecx - 4]
comiss xmm0, xmm2
jbe 0x5cd236
mov word [eax + 0x2f], 1
movss xmm0, dword [ecx]
comiss xmm0, xmm2
jbe 0x5cd245
mov word [eax + 0x5f], 1
movss xmm0, dword [ecx + 4]
comiss xmm0, xmm2
jbe 0x5cd258
mov word [eax + 0x8f], 1
add ecx, 0x10
add eax, 0xc0
sub esi, 1
jne 0x5cd216
mov esi, dword [esp + 0x30]
cmp edx, esi
jge 0x5cd298
mov ecx, dword [esp + 0x38]
lea eax, [edx + edx*2]
add ecx, 0x21
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 0xc]
movss xmm0, dword [ecx + edx*4]
comiss xmm0, xmm2
jbe 0x5cd290
mov word [eax - 1], 1
inc edx
add eax, 0x30
cmp edx, esi
jl 0x5cd280
mov edx, dword [ebp + 0x10]
mov edx, dword [edx]
cmp dword [edx + 4], 9
jle 0x5cd323
movss xmm0, dword [edx + 0xa8]
comiss xmm0, xmm3
seta al
test al, al
je 0x5cd323
movsx eax, word [edx + 0xa2]
movsx esi, word [edx + 0xa6]
movsx ecx, word [edx + 0xa4]
mov dword [esp + 0xc], eax
add ecx, edx
movsx eax, word [edx + 0xa0]
xor edx, edx
imul esi, eax
add esi, 0xf
and esi, 0xfffffff0
add esi, ecx
cmp dword [esp + 0xc], edx
jle 0x5cd323
nop
movsx eax, byte [edx + esi]
lea ecx, [ecx + 0x30]
mov edi, dword [esp + 0x38]
inc edx
lea eax, [eax + eax*2]
add eax, eax
mov word [edi + eax*8 + 0x20], 0x101
movaps xmm0, xmmword [ecx - 0x30]
movaps xmmword [edi + eax*8], xmm0
movaps xmm0, xmmword [ecx - 0x20]
movaps xmmword [edi + eax*8 + 0x10], xmm0
cmp edx, dword [esp + 0xc]
jl 0x5cd2f0
mov edi, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx]
cmp dword [ecx + 4], 7
jle 0x5cd35a
movss xmm0, dword [ecx + 0x88]
comiss xmm0, xmm3
seta al
test al, al
je 0x5cd35a
movsx eax, word [ecx + 0x84]
add eax, ecx
push 8
push eax
lea eax, [edi + 0x50]
push eax
call fcn.0045d810
add esp, 0xc
jmp 0x5cd366
mov eax, dword [edi + 0xc]
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x10]
mov dword [edi + 0x54], eax
cmp byte [edi + 0xa4], 0
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x1c], eax
jne 0x5cd4a0
cmp byte [edi + 0xa3], 0
jne 0x5cd4a0
cmp byte [edi + 0x14], 0
movss xmm0, dword [edi + 0x9c]
addss xmm0, dword [ebp + 8]
movss dword [edi + 0x9c], xmm0
je 0x5cd3d8
mov eax, dword [edi + 0x78]
test eax, eax
je 0x5cd3d4
mov eax, dword [eax + 8]
mov eax, dword [eax]
test eax, eax
je 0x5cd3d4
cmp dword [eax + 8], 0
je 0x5cd3d4
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
mov ecx, dword [edi + 0x78]
call fcn.0058ab40
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
mov eax, dword [esp + 0x1c]
cmp dword [edi + 0x88], 0
jne 0x5cd40e
mov esi, dword [eax + 0x1c]
mov eax, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [edi + 0x8c], esi
push dword [0x884adc]
call eax
mov ecx, dword [eax + 0x2c]
lea eax, [esi + esi*2]
shl eax, 4
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
mov dword [edi + 0x88], eax
mov eax, dword [edi + 0x8c]
mov esi, dword [ebp + 0xc]
lea eax, [eax + eax*2]
mov ecx, dword [esi]
shl eax, 4
push eax
call fcn.005961e0
push eax
push dword [edi + 0x88]
call fcn.0045d810
mov eax, dword [esi]
add esp, 0xc
mov eax, dword [eax + 0x48]
movaps xmm0, xmmword [eax]
movaps xmmword [edi + 0x20], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [edi + 0x30], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [edi + 0x40], xmm0
mov word [edi + 0xa0], 0x101
mov edi, dword [esp + 0x3c]
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x5cdf50
add ecx, edx
cmp ecx, dword [eax + 0xc]
mov ecx, dword [esp + 0x44]
jne 0x5cdf50
cmp dword [eax + 0x14], ecx
je 0x5cdf50
mov dword [eax + 0xc], ecx
jmp 0x5cdf59
mov esi, dword [edi + 0x84]
mov dword [edi + 0x9c], 0
test esi, esi
je 0x5cd4d7
push dword [0x884adc]
mov eax, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call eax
push esi
push dword [eax + 0x2c]
call fcn.00460680
add esp, 8
mov dword [edi + 0x84], 0
movss xmm0, dword [ebp + 8]
push ecx
movss dword [esp], xmm0
mov ecx, edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.005cfa20
cmp dword [esp + 0x24], 0
mov byte [edi + 0xa4], 0
jle 0x5cd5b1
mov edi, dword [esp + 0x34]
mov eax, edi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
sub edx, edi
mov esi, dword [esp + 0x48]
add ecx, 0x20
movss xmm0, dword [esp + 0x20]
movss xmm1, dword [esp + 0x18]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x44]
sub edx, edi
sub esi, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], edi
nop dword [eax + eax]
mov edi, dword [esp + 0x30]
mov dword [edx + eax], 0
mov dword [esi + eax], 0
cmp dword [edi + eax], 0xffffffff
mov edi, dword [esp + 0x14]
jne 0x5cd576
cmp dword [eax], 0xffffffff
jne 0x5cd56d
cmp byte [ecx], 0
jne 0x5cd5a4
mov word [ecx], 1
jmp 0x5cd5a4
mov dword [esi + eax], 0x3f800000
jmp 0x5cd59d
cmp dword [eax], 0xffffffff
jne 0x5cd584
mov dword [edx + eax], 0x3f800000
jmp 0x5cd5a4
cmp byte [esp + 0x13], 0
je 0x5cd593
mov dword [eax], 0xffffffff
jmp 0x5cd5a4
movss dword [edx + eax], xmm1
movss dword [esi + eax], xmm0
mov byte [edi + 0xa4], 1
add ecx, 0x30
add eax, 4
sub dword [esp + 0xc], 1
jne 0x5cd540
cmp byte [edi + 0xa4], 0
jne 0x5cd5c1
mov byte [edi + 0xa1], 1
mov eax, dword [edi + 0x78]
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp dword [eax + 0xc], ecx
jle 0x5cd68d
mov eax, dword [esp + 0x38]
add eax, 0x20
mov dword [esp + 0x28], eax
nop
mov eax, dword [edi + 0x78]
mov eax, dword [eax + 8]
mov esi, dword [eax + ecx*4]
mov ecx, dword [ebp + 0xc]
movzx eax, byte [esi + 0xe8]
mov dword [esp + 0xc], eax
call fcn.005c62e0
push 0
push esi
lea ecx, [edi + 0x68]
call fcn.0046b890
test eax, eax
jne 0x5cd66b
mov eax, dword [esp + 0x28]
cmp byte [eax], 0
je 0x5cd657
cmp dword [esp + 0xc], 4
je 0x5cd66b
push 0
push 1
push 4
mov ecx, esi
call fcn.00511ff0
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov eax, dword [edi + 0x58]
and ecx, 0x1f
sar edx, 5
mov eax, dword [eax + edx*4]
shr eax, cl
test al, 1
je 0x5cd66b
mov ecx, dword [esi + 8]
mov byte [esi + 0x2a], 9
test ecx, ecx
je 0x5cd66b
push 1
push 0
push esi
call fcn.0050c200
jmp 0x5cd66b
cmp dword [esp + 0xc], 4
jne 0x5cd66b
push 0
push 1
push 1
mov ecx, esi
call fcn.00511ff0
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x78]
inc ecx
add dword [esp + 0x28], 0x30
mov dword [esp + 0x18], ecx
cmp ecx, dword [eax + 0xc]
jl 0x5cd5e0
mov ecx, dword [edi + 0x78]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
test eax, eax
je 0x5cd459
cmp dword [eax + 8], 0
je 0x5cd459
xor edx, edx
mov dword [esp + 0x18], edx
cmp dword [ecx + 0x18], edx
jle 0x5cd7cb
mov ecx, dword [edi + 0x78]
mov eax, dword [ecx + 0x14]
mov esi, dword [eax + edx*4]
mov dword [esp + 0xc], esi
cmp dword [esi + 8], 0
jne 0x5cd6df
mov eax, dword [ecx + 8]
mov ecx, dword [eax]
test ecx, ecx
je 0x5cd6d7
mov ecx, dword [ecx + 8]
jmp 0x5cd6d9
xor ecx, ecx
push esi
call fcn.0050afc0
mov eax, dword [esi + 0x14]
mov al, byte [eax + 0xe8]
cmp al, 5
je 0x5cd6f0
cmp al, 4
jne 0x5cd709
mov eax, dword [esi + 0x18]
mov al, byte [eax + 0xe8]
cmp al, 5
je 0x5cd788
cmp al, 4
je 0x5cd788
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
mov ecx, dword [edi + 0x78]
xor eax, eax
mov esi, dword [esi + 0x14]
mov edx, dword [ecx + 0xc]
test edx, edx
jle 0x5cd751
mov ecx, dword [ecx + 8]
cmp dword [ecx], esi
je 0x5cd731
inc eax
add ecx, 4
cmp eax, edx
jl 0x5cd723
jmp 0x5cd751
cmp eax, 0xffffffff
je 0x5cd751
mov ecx, dword [edi + 0x78]
xor esi, esi
mov edx, dword [ecx + 0x24]
test edx, edx
jle 0x5cd751
mov ecx, dword [ecx + 0x20]
cmp dword [ecx], eax
je 0x5cd754
inc esi
add ecx, 4
cmp esi, edx
jl 0x5cd745
or esi, 0xffffffff
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x13]
push eax
call fcn.00506c70
cmp byte [eax], 0
jne 0x5cd7ae
cmp esi, 0xffffffff
je 0x5cd7ae
mov eax, dword [edi + 0x78]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x18]
cmp byte [eax + esi*8 + 4], 0
je 0x5cd7ae
push ecx
mov ecx, dword [esp + 0x10]
mov eax, esp
mov byte [eax], 1
jmp 0x5cd7a9
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
lea eax, [esp + 0x6b]
mov ecx, esi
push eax
call fcn.00506c70
cmp byte [eax], 0
je 0x5cd7ae
push ecx
mov eax, esp
mov ecx, esi
mov byte [eax], 0
call fcn.00506c50
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
mov edx, dword [esp + 0x18]
mov eax, dword [edi + 0x78]
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [eax + 0x18]
jl 0x5cd6b6
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x40]
mov esi, dword [eax + 0xc]
lea edx, [ecx + ecx*2]
mov dword [esp + 0x18], esi
shl edx, 4
add edx, 0x7f
and edx, 0xffffff80
mov dword [esp + 0x78], edx
lea ecx, [esi + edx]
cmp edx, dword [eax + 8]
jg 0x5cd804
cmp ecx, dword [eax + 0x10]
ja 0x5cd804
mov dword [eax + 0xc], ecx
jmp 0x5cd810
push edx
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x10]
mov edx, dword [eax]
cmp dword [edx + 4], 2
jle 0x5cd821
movsx ecx, word [edx + 0x32]
jmp 0x5cd823
xor ecx, ecx
movsx eax, word [edx + 0x34]
lea esi, [ecx + ecx*2]
shl esi, 4
add esi, edx
add esi, eax
add eax, edx
mov dword [esp + 0x30], esi
lea esi, [ecx + 0x20]
sar esi, 5
or esi, 0x80000000
mov dword [esp + 0xc], eax
mov dword [esp + 0x74], esi
cmp ecx, dword [esp + 0x40]
jne 0x5cd866
mov edx, dword [esp + 0x30]
mov eax, ecx
sar eax, 5
and ecx, 0x1f
mov eax, dword [edx + eax*4]
shr eax, cl
test al, 1
jne 0x5cd87e
mov esi, dword [esp + 0x18]
push esi
push dword [esp + 0x20]
push dword [ebp + 0x10]
call fcn.005df320
add esp, 0xc
mov dword [esp + 0xc], esi
mov eax, dword [edi + 0x78]
push dword [0x884adc]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x44], eax
mov esi, dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea esi, [esi + esi*2]
shl esi, 4
add esi, 0x7f
mov edx, dword [eax + 0xc]
and esi, 0xffffff80
mov dword [esp + 0x70], esi
mov dword [esp + 0x1c], edx
lea ecx, [edx + esi]
cmp esi, dword [eax + 8]
jg 0x5cd8c0
cmp ecx, dword [eax + 0x10]
ja 0x5cd8c0
mov dword [eax + 0xc], ecx
jmp 0x5cd8ce
push esi
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x1c], eax
push edx
push dword [esp + 0x10]
mov ecx, edi
call fcn.005cecc0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x3c]
mov esi, dword [eax + 0xc]
mov dword [esp + 0x14], esi
lea ecx, [esi + edx]
cmp edx, dword [eax + 8]
jg 0x5cd903
cmp ecx, dword [eax + 0x10]
ja 0x5cd903
mov dword [eax + 0xc], ecx
jmp 0x5cd911
push edx
mov ecx, eax
call fcn.0046a3c0
mov esi, eax
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x74]
mov eax, dword [esp + 0x40]
mov ecx, dword [ecx + 0x48]
push ecx
movss xmm0, dword [ecx + 0x20]
movss dword [esp], xmm0
push esi
push dword [esp + 0x24]
push dword [eax + 0x1c]
push 1
call fcn.005ce9c0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
lea eax, [esp + 0xc4]
push eax
movsx eax, word [ecx + 0x14]
add eax, ecx
push eax
push 1
call fcn.005cea30
movaps xmm0, xmmword [0x719da0]
add esp, 0x20
cmp byte [edi + 0xa4], 0
movaps xmmword [esp + 0xd0], xmm0
je 0x5cdc6a
movss xmm0, dword [ebp + 8]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x5cdc6a
cmp byte [edi + 0xa5], 0
jne 0x5cd99a
mov byte [edi + 0xa5], 1
mov dword [edi + 0x98], 0
mov eax, dword [edi + 0x80]
mov dword [eax + 4], 0
mov esi, dword [edi + 0x80]
mov edx, dword [esp + 0x54]
mov dword [esp + 0xc], edx
mov ecx, dword [esi + 4]
mov eax, dword [esi + 8]
add ecx, edx
and eax, 0x3fffffff
cmp eax, ecx
jge 0x5cd9e2
add eax, eax
cmp ecx, eax
push 0x30
cmovl ecx, eax
push ecx
push esi
push 0x7d8954
call fcn.00467b80
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov eax, dword [esi + 4]
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, 8
test edx, edx
jle 0x5cda5a
add ecx, dword [esi]
lea eax, [ecx - 8]
test eax, eax
je 0x5cda4e
mov dword [ecx - 8], 0x3e2e147b
mov dword [ecx - 4], 0
mov dword [ecx], 0x3f800000
mov dword [ecx + 4], 0x3f19999a
mov dword [ecx + 8], 0x3d4ccccd
mov dword [ecx + 0xc], 0x3fb33333
mov dword [ecx + 0x10], 0x3fe66666
mov dword [ecx + 0x14], 0x3dcccccd
mov dword [ecx + 0x18], 0x3e99999a
mov dword [ecx + 0x1c], 0x3e99999a
mov dword [ecx + 0x20], 0x3cf5c28f
mov dword [ecx + 0x24], 0x3dcccccd
add ecx, 0x30
sub edx, 1
jne 0x5cd9f4
mov edx, dword [esp + 0xc]
add dword [esi + 4], edx
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x5cda80
lea eax, [eax + eax*2]
shl eax, 4
push eax
mov eax, dword [edi + 0x80]
push dword [esp + 0x54]
push dword [eax]
call fcn.0045d810
add esp, 0xc
mov esi, dword [edi + 0x80]
mov eax, dword [esp + 0x40]
add esi, 0xc
mov ecx, dword [esi + 8]
mov edx, dword [eax + 0x1c]
and ecx, 0x3fffffff
mov dword [esp + 0xc], edx
cmp ecx, edx
jge 0x5cdac3
add ecx, ecx
mov eax, edx
cmp edx, ecx
push 4
cmovl eax, ecx
push eax
push esi
push 0x7d8954
call fcn.00467b80
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov eax, dword [esp + 0x40]
mov dword [esi + 4], edx
mov eax, dword [eax + 0x1c]
shl eax, 2
push eax
mov eax, dword [edi + 0x80]
push dword [esp + 0x38]
push dword [eax + 0xc]
call fcn.0045d810
movss xmm1, dword [esp + 0x38]
add esp, 0xc
cmp dword [edi + 0x7c], 0
jne 0x5cdaf6
movss dword [edi + 0x98], xmm1
movss xmm0, dword [edi + 0x98]
comiss xmm1, xmm0
jbe 0x5cdbe7
divss xmm0, xmm1
push dword [0x884adc]
movss dword [esp + 0x10], xmm0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edx, dword [esp + 0x3c]
mov esi, dword [eax + 0xc]
lea ecx, [esi + edx]
cmp edx, dword [eax + 8]
jg 0x5cdb36
cmp ecx, dword [eax + 0x10]
ja 0x5cdb36
mov dword [eax + 0xc], ecx
jmp 0x5cdb40
push edx
mov ecx, eax
call fcn.0046a3c0
mov esi, eax
mov eax, dword [ebp + 0x10]
push esi
push dword [edi + 0x7c]
mov edx, dword [eax]
movsx ecx, word [edx + 0x14]
add ecx, edx
push ecx
mov ecx, edi
call fcn.005cca00
mov eax, dword [eax + 0x2c]
push dword [eax + 0xc]
push dword [esp + 0x34]
call fcn.0057e750
mov eax, dword [esp + 0x30]
add esp, 0x14
movss xmm0, dword [esp + 0xc]
push eax
push ecx
movss dword [esp], xmm0
push eax
push esi
push dword [esp + 0x34]
call fcn.0057eab0
mov eax, dword [edi + 0x74]
add esp, 0x10
mov eax, dword [eax + 0x48]
movss xmm0, dword [eax + 0x20]
mov eax, dword [esp + 0x44]
movss dword [esp], xmm0
push dword [esp + 0x18]
push dword [esp + 0x24]
push dword [eax + 0x1c]
push 1
call fcn.005ce9c0
add esp, 0x14
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5cdbde
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cdbde
cmp dword [eax + 0x14], esi
je 0x5cdbde
mov dword [eax + 0xc], esi
jmp 0x5cdbe7
push edx
push esi
mov ecx, eax
call fcn.0046a590
cmp byte [edi + 0xa1], 0
je 0x5cdc02
mov ecx, dword [edi + 0x80]
call fcn.00704220
mov byte [edi + 0xa1], 0
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
push dword [esp + 0x48]
mov ecx, dword [edi + 0x80]
call fcn.00704240
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xb0]
movss xmm0, dword [ebp + 8]
push 0
push eax
push esi
push ecx
mov ecx, dword [edi + 0x80]
movss dword [esp], xmm0
call fcn.00704060
mov ecx, dword [edi + 0x80]
push 0
call fcn.00704240
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
movss xmm0, dword [edi + 0x98]
addss xmm0, dword [ebp + 8]
movss dword [edi + 0x98], xmm0
jmp 0x5cdc71
mov byte [edi + 0xa5], 0
mov ecx, dword [ebp + 0xc]
call fcn.005c62e0
push dword [esp + 0x44]
mov ecx, edi
push dword [esp + 0x50]
push dword [esp + 0x64]
call fcn.005cea80
cmp dword [esp + 0x60], 0
jle 0x5cdcac
cmp byte [edi + 0xa3], 0
je 0x5cdcac
test eax, eax
je 0x5cdcac
push esi
push dword [edi + 0x78]
call fcn.00703a60
add esp, 8
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [esp + 0x3c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], edx
lea ecx, [edx + esi]
cmp esi, dword [eax + 8]
jg 0x5cdcd5
cmp ecx, dword [eax + 0x10]
ja 0x5cdcd5
mov dword [eax + 0xc], ecx
jmp 0x5cdce3
push esi
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x28], eax
movaps xmm0, xmmword [0x719770]
xor eax, eax
xor ecx, ecx
mov byte [esp + 0x13], 0
movaps xmmword [esp + 0xa0], xmm0
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0x24]
jge 0x5cde39
mov esi, dword [esp + 0x38]
mov dword [esp + 0xc], edx
add esi, 0x21
nop dword [eax + eax]
mov edx, dword [edi + 0x78]
mov eax, dword [edx + 0x20]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x6c], eax
test eax, eax
js 0x5cde1a
mov eax, dword [edx + 8]
mov edx, dword [esp + 0x6c]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x5cde1a
cmp byte [esi - 1], 0
je 0x5cde1a
push 0
push eax
lea ecx, [edi + 0x68]
call fcn.0046b890
test eax, eax
jne 0x5cde16
cmp byte [esi], al
je 0x5cdd7e
movaps xmm0, xmmword [esi - 0x21]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [esi - 0x11]
jmp 0x5cddc0
cmp byte [esp + 0x13], 0
jne 0x5cddad
push dword [esp + 0x28]
lea eax, [esp + 0xb4]
push dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x4c]
push dword [eax + 0xc]
push dword [esp + 0x34]
call fcn.0057e640
add esp, 0x14
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0xc]
movaps xmm0, xmmword [eax]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [eax + 0x10]
mov ecx, dword [ebp + 0xc]
movaps xmmword [esp + 0x90], xmm0
call fcn.005c62e0
movss xmm0, dword [0x718824]
lea eax, [esp + 0x90]
divss xmm0, dword [ebp + 8]
push dword [esp + 0x6c]
push ecx
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.006fd610
mov ecx, dword [ebp + 0xc]
add esp, 0x10
call fcn.005c62e0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x20], eax
jmp 0x5cde1e
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
add dword [esp + 0xc], 0x30
inc ecx
add esi, 0x30
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x24]
jl 0x5cdd20
cmp eax, dword [esp + 0x24]
jne 0x5cde42
mov byte [edi + 0xa7], 1
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x28]
lea edx, [edi + 0xf]
and edx, 0xfffffff0
cmp edi, dword [eax + 8]
jg 0x5cde73
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cde73
cmp dword [eax + 0x14], esi
je 0x5cde73
mov dword [eax + 0xc], esi
jmp 0x5cde7c
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [esp + 0x14]
lea edx, [edi + 0xf]
and edx, 0xfffffff0
cmp edi, dword [eax + 8]
jg 0x5cdea9
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cdea9
cmp dword [eax + 0x14], esi
je 0x5cdea9
mov dword [eax + 0xc], esi
jmp 0x5cdeb2
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x1c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5cdee3
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cdee3
cmp dword [eax + 0x14], esi
je 0x5cdee3
mov dword [eax + 0xc], esi
jmp 0x5cdeec
push edx
push esi
mov ecx, eax
call fcn.0046a590
mov eax, dword [esp + 0x74]
test eax, eax
js 0x5cdf0e
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x34]
call dword [eax + 0x10]
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x18]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5cdf42
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cdf42
cmp dword [eax + 0x14], esi
je 0x5cdf42
mov dword [eax + 0xc], esi
jmp 0x5cd45d
push edx
push esi
mov ecx, eax
call fcn.0046a590
jmp 0x5cd45d
push edx
push ecx
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x48]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x5cdf89
add ecx, edx
cmp ecx, dword [eax + 0xc]
mov ecx, dword [esp + 0x48]
jne 0x5cdf89
cmp dword [eax + 0x14], ecx
je 0x5cdf89
mov dword [eax + 0xc], ecx
jmp 0x5cdf92
push edx
push ecx
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x34]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x5cdfc2
add ecx, edx
cmp ecx, dword [eax + 0xc]
mov ecx, dword [esp + 0x34]
jne 0x5cdfc2
cmp dword [eax + 0x14], ecx
je 0x5cdfc2
mov dword [eax + 0xc], ecx
jmp 0x5cdfcb
push edx
push ecx
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
mov esi, dword [esp + 0x4c]
jg 0x5cdff8
lea ecx, [esi + edx]
cmp ecx, dword [eax + 0xc]
jne 0x5cdff8
cmp dword [eax + 0x14], esi
je 0x5cdff8
mov dword [eax + 0xc], esi
jmp 0x5ce001
push edx
push esi
mov ecx, eax
call fcn.0046a590
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], 0
test eax, eax
js 0x5ce02e
and eax, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [eax + eax*2]
shl eax, 4
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x54]
call dword [eax + 0x10]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], connect
mov dword [esp + 0x60], 0
test eax, eax
js 0x5ce068
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 5
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x60]
call dword [eax + 0x10]
push dword [0x884adc]
mov dword [esp + 0x60], 0
mov dword [esp + 0x68], connect
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [esp + 0x38]
lea edx, [edi + 0xf]
and edx, 0xfffffff0
cmp edi, dword [eax + 8]
jg 0x5ce0ab
lea ecx, [esi + edx]
cmp ecx, dword [eax + 0xc]
jne 0x5ce0ab
cmp dword [eax + 0x14], esi
je 0x5ce0ab
mov dword [eax + 0xc], esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push edx
push esi
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc