Function at 0x5d83e0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1a8
push esi
mov esi, dword [ebp + 8]
push edi
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [esi + 0x68]
mov dword [esp + 0x40], eax
call edi
mov ecx, dword [esp + 0x3c]
shl ecx, 2
add ecx, 0x7f
mov edx, dword [eax + 0xc]
and ecx, 0xffffff80
mov dword [esp + 0x88], ecx
add ecx, edx
mov esi, dword [esp + 0x88]
cmp esi, dword [eax + 8]
mov esi, dword [ebp + 8]
mov dword [esp + 0x4c], edx
jg 0x5d843c
cmp ecx, dword [eax + 0x10]
ja 0x5d843c
mov dword [eax + 0xc], ecx
jmp 0x5d8450
push dword [esp + 0x88]
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x4c], eax
xor ecx, ecx
cmp dword [esi + 0x44], ecx
jle 0x5d846b
mov eax, dword [esi + 0x4c]
cmp byte [eax + ecx*2], 0
je 0x5d8465
mov dword [edx], ecx
add edx, 4
inc ecx
cmp ecx, dword [esi + 0x44]
jl 0x5d8457
movsx eax, word [esi + 0x3a]
movss xmm0, dword [esi + 0x28]
shr eax, 6
and eax, 0xffffff01
movss dword [esp + 0x68], xmm0
cmp dword [esp + 0x3c], 1
mov dword [esp + 0x84], eax
jne 0x5d866a
xorps xmm2, xmm2
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x5d866a
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov eax, dword [eax]
cmp edx, eax
je 0x5d84c0
push edx
push eax
call fcn.005d3f10
mov edx, dword [ebp + 0x10]
add esp, 8
xorps xmm2, xmm2
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax]
mov eax, dword [esi + 0x40]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x68], eax
movss xmm0, dword [eax + 0x2c]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x5d852a
mov eax, dword [edx]
movsx ecx, word [eax + 0x14]
add ecx, eax
mov eax, dword [ebp + 0x14]
movaps xmm0, xmmword [eax]
movaps xmmword [ecx], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [ecx + 0x10], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [ecx + 0x20], xmm0
mov ecx, dword [edx]
cmp dword [ecx + 4], 1
jle 0x5d852a
movsx eax, word [ecx + 0x24]
xorps xmm0, xmm0
movaps xmmword [eax + ecx], xmm0
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [eax + ecx + 0x10], xmm0
movaps xmm0, xmmword [0x719da0]
movaps xmmword [eax + ecx + 0x20], xmm0
mov esi, dword [edx]
cmp dword [esi + 4], 2
jle 0x5d9ac2
movsx ecx, word [esi + 0x32]
mov dword [esp + 0x18], ecx
test ecx, ecx
jle 0x5d9ac2
movsx eax, word [esi + 0x34]
lea edx, [ecx + ecx*2]
add eax, esi
shl edx, 4
mov esi, dword [esp + 0x68]
add edx, eax
lea eax, [ecx + 0x20]
mov dword [esp + 0x20], edx
sar eax, 5
or eax, 0x80000000
mov dword [esp + 0x54], 0
mov esi, dword [esi + 0x24]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x50], 0
test esi, esi
je 0x5d8590
mov eax, dword [esi + 0x20]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x50], eax
xor esi, esi
mov al, 1
test ecx, ecx
jle 0x5d8602
movss xmm1, dword [0x718824]
cmp esi, dword [esp + 0x54]
jge 0x5d85b1
mov ecx, dword [esp + 0x50]
movss xmm0, dword [ecx + esi*4]
jmp 0x5d85b4
movaps xmm0, xmm1
test al, al
je 0x5d85cf
mov eax, esi
mov ecx, esi
sar eax, 5
and ecx, 0x1f
mov eax, dword [edx + eax*4]
shr eax, cl
test al, 1
je 0x5d85cf
mov al, 1
jmp 0x5d85d1
xor al, al
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x5d85f9
mov eax, dword [esp + 0x20]
mov edx, esi
sar edx, 5
mov ecx, esi
and ecx, 0x1f
mov eax, dword [eax + edx*4]
btr eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [ecx + edx*4], eax
xor al, al
mov edx, ecx
mov ecx, dword [esp + 0x18]
inc esi
cmp esi, ecx
jl 0x5d85a0
movzx eax, al
mov esi, ecx
and ecx, 0x1f
sar esi, 5
dec eax
mov edx, 1
shl edx, cl
not eax
mov ecx, dword [esp + 0x20]
and eax, edx
not edx
and edx, dword [ecx + esi*4]
or eax, edx
cmp byte [esp + 0x84], 0
mov dword [ecx + esi*4], eax
je 0x5d8642
push 0
push dword [ebp + 0x10]
call fcn.005d4210
mov ecx, dword [esp + 0x28]
add esp, 8
mov eax, dword [esp + 0x1c]
test eax, eax
js 0x5d9ac2
and eax, 0x3fffffff
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push ecx
mov ecx, 0x7d8954
call dword [eax + 0x10]
jmp 0x5d9ac2
push dword [0x884c50]
call edi
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x5d869c
mov dword [ecx], 0x7a528c
mov dword [ecx + 0xc], str.Stinit
rdtsc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov dword [eax + 0x18], 0x3f800000
mov eax, dword [ecx]
cmp dword [eax + 4], 1
jle 0x5d86b7
mov dword [eax + 0x28], 0x3f800000
mov eax, dword [ecx]
cmp dword [eax + 4], 2
jle 0x5d86d4
movsx esi, word [eax + 0x32]
mov dword [esp + 0x14], esi
test esi, esi
jle 0x5d86da
mov dword [eax + 0x38], 0x3f800000
jmp 0x5d86da
xor esi, esi
mov dword [esp + 0x14], esi
push dword [0x884adc]
xorps xmm0, xmm0
movss dword [esp + 0x84], xmm0
movss dword [esp + 0x5c], xmm0
call edi
lea ecx, [esi*4 + 0x7f]
and ecx, 0xffffff80
mov dword [esp + 0x54], ecx
mov edx, dword [eax + 0xc]
add ecx, edx
mov esi, dword [esp + 0x54]
cmp esi, dword [eax + 8]
mov esi, dword [esp + 0x14]
mov dword [esp + 0x30], edx
jg 0x5d8722
cmp ecx, dword [eax + 0x10]
ja 0x5d8722
mov dword [eax + 0xc], ecx
jmp 0x5d8733
push dword [esp + 0x54]
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x30], eax
lea ecx, [esi - 1]
test ecx, ecx
js 0x5d8747
inc ecx
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [ebp + 0x10]
push dword [0x884adc]
mov eax, dword [eax]
mov esi, dword [eax + 4]
call edi
lea ecx, [esi*4 + 0x7f]
and ecx, 0xffffff80
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0xc]
add ecx, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x50]
cmp edx, dword [eax + 8]
mov edx, dword [esp + 0x38]
jg 0x5d8785
cmp ecx, dword [eax + 0x10]
ja 0x5d8785
mov dword [eax + 0xc], ecx
jmp 0x5d8796
push dword [esp + 0x50]
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x38], eax
lea ecx, [esi - 1]
test ecx, ecx
js 0x5d87aa
inc ecx
mov edi, edx
xor eax, eax
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push dword [ebp + 0x10]
call fcn.005d4b90
add esp, 4
mov esi, eax
push dword [0x884adc]
call edi
lea edx, [esi*4 + 0x7f]
and edx, 0xffffff80
mov dword [esp + 0xf4], edx
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x44], ecx
add ecx, edx
cmp edx, dword [eax + 8]
jg 0x5d87e8
cmp ecx, dword [eax + 0x10]
ja 0x5d87e8
mov dword [eax + 0xc], ecx
jmp 0x5d87f4
push edx
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x44], eax
push dword [0x884c50]
call edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d8825
mov dword [esi], str.StzeroTracks
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
push dword [ebp + 0x10]
call fcn.005d3480
add esp, 4
push dword [0x884c50]
call edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d8861
mov dword [esi], str.Stclear_pose
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
push dword [0x884adc]
cmp byte [eax + 0x71], cl
mov esi, dword [eax + 0x68]
setne cl
inc ecx
mov dword [esp + 0x60], ecx
call edi
lea esi, [esi*4 + 0x7f]
and esi, 0xffffff80
mov dword [esp + 0xf0], esi
mov edx, dword [eax + 0xc]
mov dword [esp + 0x20], edx
lea ecx, [esi + edx]
cmp esi, dword [eax + 8]
jg 0x5d88a6
cmp ecx, dword [eax + 0x10]
ja 0x5d88a6
mov dword [eax + 0xc], ecx
jmp 0x5d88b4
push esi
mov ecx, eax
call fcn.0046a3c0
mov edx, eax
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x14]
test esi, esi
jle 0x5d89bc
mov eax, dword [esp + 0x3c]
test eax, eax
setg dl
mov byte [esp + 0x12], dl
test eax, eax
jle 0x5d890d
mov esi, dword [esp + 0x20]
mov edx, eax
mov ecx, dword [ebp + 0xc]
sub esi, ecx
nop dword [eax]
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov eax, dword [eax]
movzx eax, byte [eax + 0x3c]
and eax, 1
mov dword [esi + ecx - 4], eax
mov eax, dword [ecx - 4]
mov eax, dword [eax]
mov al, byte [eax + 0x3c]
and al, 1
and byte [esp + 0x12], al
sub edx, 1
jne 0x5d88e0
mov esi, dword [esp + 0x14]
mov dl, byte [esp + 0x12]
mov eax, dword [ebp + 8]
cmp byte [eax + 0x71], 0
je 0x5d8931
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
lea eax, [esi*4]
mov esi, dword [esp + 0x14]
mov dword [ecx + eax - 4], 2
test dl, dl
je 0x5d89d8
mov eax, dword [ebp + 0x10]
xorps xmm2, xmm2
movaps xmm1, xmmword [0x719da0]
mov eax, dword [eax]
movsx ecx, word [eax + 0x14]
movaps xmmword [ecx + eax], xmm2
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmmword [ecx + eax + 0x20], xmm1
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
cmp dword [ecx + 4], 1
jle 0x5d8988
movsx eax, word [ecx + 0x24]
movaps xmmword [eax + ecx], xmm2
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [eax + ecx + 0x10], xmm0
movaps xmmword [eax + ecx + 0x20], xmm1
mov eax, dword [ebp + 0x10]
test esi, esi
jle 0x5d8a39
xor edx, edx
mov eax, dword [eax]
movsx ecx, word [eax + 0x34]
add ecx, edx
add edx, 0x30
movaps xmmword [ecx + eax], xmm2
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmmword [ecx + eax + 0x20], xmm1
mov eax, dword [ebp + 0x10]
sub esi, 1
jne 0x5d8992
jmp 0x5d8a39
mov ecx, dword [esp + 0x3c]
lea eax, [ecx*4]
push eax
push 0
push edx
call fcn.0045d830
add esp, 0xc
mov byte [esp + 0x12], 0
mov eax, dword [ebp + 0x10]
xorps xmm0, xmm0
mov eax, dword [eax]
movsx ecx, word [eax + 0x14]
movaps xmmword [ecx + eax], xmm0
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmmword [ecx + eax + 0x20], xmm0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
cmp dword [ecx + 4], 1
jle 0x5d8a12
movsx eax, word [ecx + 0x24]
movaps xmmword [eax + ecx], xmm0
movaps xmmword [eax + ecx + 0x10], xmm0
movaps xmmword [eax + ecx + 0x20], xmm0
mov eax, dword [ebp + 0x10]
test esi, esi
jle 0x5d8a39
xor edx, edx
mov eax, dword [eax]
movsx ecx, word [eax + 0x34]
add ecx, edx
add edx, 0x30
movaps xmmword [ecx + eax], xmm0
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmmword [ecx + eax + 0x20], xmm0
mov eax, dword [ebp + 0x10]
sub esi, 1
jne 0x5d8a18
push dword [0x884c50]
call edi
mov dword [esp + 0x1c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d8a6a
mov dword [esi], str.Stblend_loop
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov esi, dword [esp + 0x14]
test esi, esi
jle 0x5d8a7f
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
movsx ecx, word [eax + 0x34]
add ecx, eax
jmp 0x5d8a81
xor ecx, ecx
lea edx, [esi + esi*2]
mov dword [esp + 0x48], ecx
shl edx, 4
lea eax, [esi + 1]
add ecx, edx
mov dword [esp + 0xd4], edx
lea edx, [eax + 0x1f]
mov dword [esp + 0xe8], eax
sar edx, 5
mov eax, edx
mov dword [esp + 0x6c], ecx
or eax, 0x80000000
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
lea eax, [esi + 1]
mov dword [esp + 0x78], eax
test esi, esi
jle 0x5d8ae4
xor eax, eax
test edx, edx
jle 0x5d8ae4
nop dword [eax + eax]
mov dword [ecx + eax*4], 0
inc eax
cmp eax, dword [esp + 0x70]
jge 0x5d8ae4
mov ecx, dword [esp + 0x6c]
jmp 0x5d8ad0
mov ecx, dword [esp + 0x5c]
xor eax, eax
mov byte [esp + 0x13], 0
mov dword [esp + 0x40], eax
test ecx, ecx
js 0x5d992c
nop dword [eax + eax]
mov esi, dword [esp + 0x3c]
test esi, esi
jle 0x5d9215
mov ecx, dword [ebp + 0xc]
mov eax, dword [esp + 0x20]
sub ecx, eax
mov edx, dword [esp + 0x4c]
sub eax, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], esi
nop
add eax, edx
mov edx, dword [esp + 0x40]
mov ecx, dword [eax + ecx]
cmp edx, dword [eax]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x34], ecx
jne 0x5d91ee
xor esi, esi
cmp dword [esp + 0x14], esi
jle 0x5d8b59
mov eax, dword [ecx]
movsx esi, word [eax + 0x34]
add esi, eax
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0xd4]
add eax, esi
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x94], eax
lea eax, [ecx + 0x1f]
mov ecx, dword [edx]
mov edx, dword [ebp + 8]
sar eax, 5
mov dword [esp + 0x98], eax
or eax, 0x80000000
mov dword [esp + 0xcc], eax
mov dword [esp + 0x9c], eax
mov eax, dword [edx + 0x40]
push ecx
push edx
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x24], eax
call fcn.005d9b10
mov eax, dword [esp + 0x24]
add esp, 8
fstp dword [esp + 0x2c]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov eax, dword [eax + 0x24]
test eax, eax
je 0x5d8bdd
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x40]
sub eax, 0
je 0x5d8edb
sub eax, 1
je 0x5d8d8c
sub eax, 1
jne 0x5d919d
push dword [0x884c50]
call edi
mov dword [esp + 0x1c], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x5d8c33
mov dword [edi], str.Ttsubtract_bones
rdtsc
mov dword [esp + 0xec], eax
mov ecx, dword [esp + 0xec]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x5d8c76
push dword [esp + 0x60]
movss xmm0, dword [esp + 0x30]
push dword [esp + 0x68]
push ecx
movss dword [esp], xmm0
push esi
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x50]
push dword [esp + 0x6c]
call fcn.005db150
add esp, 0x28
mov edx, dword [ebp + 0x10]
xorps xmm2, xmm2
movaps xmm1, xmmword [0x719da0]
mov eax, dword [edx]
movsx ecx, word [eax + 0x14]
movaps xmmword [ecx + eax], xmm2
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [ecx + eax + 0x10], xmm0
movaps xmmword [ecx + eax + 0x20], xmm1
mov eax, dword [edx]
movsx ecx, word [eax + 0x24]
add ecx, eax
movaps xmmword [ecx], xmm2
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [ecx + 0x10], xmm0
movaps xmmword [ecx + 0x20], xmm1
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d8ced
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xf8], eax
mov ecx, dword [esp + 0xf8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d8d22
mov dword [esi], str.Ttsubtract_tracks
rdtsc
mov dword [esp + 0xfc], eax
mov ecx, dword [esp + 0xfc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
push dword [esp + 0x44]
mov esi, dword [ebp + 0x10]
push dword [esp + 0x3c]
push esi
push ecx
mov dword [esp], 0xbf800000
push dword [esp + 0x44]
call fcn.005d3510
movss xmm0, dword [esp + 0x40]
add esp, 0x14
push esi
push ecx
movss dword [esp], xmm0
call fcn.005d39b0
add esp, 8
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d9197
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0xa4]
jmp 0x5d918e
movss xmm0, dword [esp + 0x2c]
comiss xmm0, dword [0x77f9a4]
jbe 0x5d919d
push dword [0x884c50]
call edi
mov dword [esp + 0x1c], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x5d8dd6
mov dword [edi], str.Ttadd_bones
rdtsc
mov dword [esp + 0xa8], eax
mov ecx, dword [esp + 0xa8]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x5d8e19
push dword [esp + 0x60]
movss xmm0, dword [esp + 0x30]
push dword [esp + 0x68]
push ecx
movss dword [esp], xmm0
push esi
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x50]
push dword [esp + 0x6c]
call fcn.005da310
add esp, 0x28
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d8e4e
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0xac]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d8e83
mov dword [esi], str.Ttadd_tracks
rdtsc
mov dword [esp + 0xb0], eax
mov ecx, dword [esp + 0xb0]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
push dword [esp + 0x44]
movss xmm0, dword [esp + 0x30]
push dword [esp + 0x3c]
push dword [ebp + 0x10]
push ecx
movss dword [esp], xmm0
push dword [esp + 0x44]
call fcn.005d3510
add esp, 0x14
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d9197
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xb4]
jmp 0x5d918e
movss xmm0, dword [esp + 0x2c]
comiss xmm0, dword [0x77f9a4]
jbe 0x5d910e
push dword [0x884c50]
call edi
mov dword [esp + 0xbc], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x5d8f2b
mov dword [edi], str.Ttblend_bones
rdtsc
mov dword [esp + 0xb8], eax
mov ecx, dword [esp + 0xb8]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0xbc]
mov dword [ecx + 4], eax
movss xmm1, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
movaps xmm0, xmm1
addss xmm0, dword [esp + 0x80]
movss dword [esp + 0x80], xmm0
test eax, eax
jle 0x5d8f89
push dword [esp + 0x60]
push dword [esp + 0x68]
push ecx
movss dword [esp], xmm1
push esi
push eax
lea eax, [esp + 0x27]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0x88]
push eax
push dword [esp + 0x50]
push dword [esp + 0x6c]
call fcn.005d9bd0
movss xmm1, dword [esp + 0x54]
add esp, 0x28
mov eax, dword [esp + 0x1c]
xorps xmm5, xmm5
mov esi, dword [esp + 0x34]
mov edi, dword [ebp + 0x10]
movss xmm4, dword [eax + 0x2c]
mov eax, dword [esi]
mulss xmm4, xmm1
movsx ecx, word [eax + 0x14]
add ecx, eax
movaps xmm2, xmm4
mov eax, dword [edi]
shufps xmm2, xmm2, 0
movaps xmm0, xmmword [ecx]
movsx edx, word [eax + 0x14]
mulps xmm0, xmm2
add edx, eax
addps xmm0, xmmword [edx]
movaps xmmword [edx], xmm0
movaps xmm0, xmmword [ecx + 0x20]
mulps xmm0, xmm2
addps xmm0, xmmword [edx + 0x20]
movaps xmmword [edx + 0x20], xmm0
movaps xmm3, xmmword [ecx + 0x10]
movaps xmm0, xmmword [edx + 0x10]
mulps xmm0, xmm3
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
comiss xmm5, xmm0
jbe 0x5d9015
movaps xmm0, xmmword [0x719550]
lea eax, [esp + 0x110]
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x110], xmm0
jmp 0x5d9024
movaps xmmword [esp + 0x120], xmm2
lea eax, [esp + 0x120]
movups xmm0, xmmword [eax]
mulps xmm3, xmm0
addps xmm3, xmmword [edx + 0x10]
movaps xmmword [edx + 0x10], xmm3
mov edx, dword [edi]
cmp dword [edx + 4], 1
jle 0x5d90c7
mov eax, dword [esi]
movaps xmm0, xmm2
movsx ecx, word [eax + 0x24]
add ecx, eax
movsx eax, word [edx + 0x24]
add eax, edx
mulps xmm0, xmmword [ecx]
addps xmm0, xmmword [eax]
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [ecx + 0x20]
mulps xmm0, xmm2
addps xmm0, xmmword [eax + 0x20]
movaps xmmword [eax + 0x20], xmm0
movaps xmm3, xmmword [ecx + 0x10]
movaps xmm0, xmmword [eax + 0x10]
mulps xmm0, xmm3
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
comiss xmm5, xmm0
jbe 0x5d90aa
movaps xmm0, xmmword [0x719550]
lea ecx, [esp + 0x130]
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x130], xmm0
jmp 0x5d90b9
movaps xmmword [esp + 0x140], xmm2
lea ecx, [esp + 0x140]
movups xmm0, xmmword [ecx]
mulps xmm3, xmm0
addps xmm3, xmmword [eax + 0x10]
movaps xmmword [eax + 0x10], xmm3
addss xmm4, dword [esp + 0x58]
push dword [0x884c50]
movss dword [esp + 0x5c], xmm4
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d9108
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xc0]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push dword [0x884c50]
call edi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d913f
mov dword [esi], str.Ttblend_tracks
rdtsc
mov dword [esp + 0xc4], eax
mov ecx, dword [esp + 0xc4]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
push dword [esp + 0x44]
movss xmm0, dword [esp + 0x30]
push dword [esp + 0x3c]
push dword [ebp + 0x10]
push ecx
movss dword [esp], xmm0
push dword [esp + 0x44]
call fcn.005d3510
add esp, 0x14
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d9197
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0xc8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x98], 0
test eax, eax
js 0x5d91d0
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x98]
call dword [eax + 0x10]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x94], 0
mov dword [esp + 0x9c], inet_addr
mov ecx, dword [esp + 0xd0]
add edx, 4
mov eax, dword [esp + 0x28]
sub esi, 1
mov dword [esp + 0x7c], edx
mov dword [esp + 0x18], esi
jne 0x5d8b30
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
cmp byte [esp + 0x12], 0
jne 0x5d9225
test eax, eax
je 0x5d922e
jmp 0x5d991b
cmp eax, 1
jne 0x5d991b
push dword [0x884c50]
call edi
mov dword [esp + 0x28], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d9265
mov dword [esi], str.TtCompute_Sparseness
rdtsc
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0xd8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
cmp byte [esp + 0x13], 0
jne 0x5d928e
cmp byte [esp + 0x84], 0
jne 0x5d928e
cmp dword [esp + 0x3c], 0
je 0x5d928e
lea eax, [esp + 0x6c]
push eax
call fcn.005d40d0
add esp, 4
test al, al
je 0x5d92b6
cmp dword [esp + 0x14], 0
jle 0x5d92b6
xor ecx, ecx
mov byte [esp + 0x27], 1
cmp dword [esp + 0x70], ecx
jle 0x5d92bb
mov eax, dword [esp + 0x6c]
mov dword [eax + ecx*4], 0xffffffff
inc ecx
cmp ecx, dword [esp + 0x70]
jl 0x5d92a2
jmp 0x5d92bb
mov byte [esp + 0x27], 0
push dword [0x884c50]
call edi
mov dword [esp + 0x28], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d92f2
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0xdc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
cmp byte [esp + 0x12], 0
jne 0x5d9913
push dword [0x884c50]
call edi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5d932e
mov dword [esi], str.Ttadd_reference_pose
rdtsc
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xe0]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
xor edi, edi
cmp dword [esp + 0x14], edi
jle 0x5d947e
mov ecx, dword [esp + 0x48]
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x34], eax
sub eax, ecx
mov dword [esp + 0x18], eax
lea esi, [ecx + 0x10]
nop
mov eax, dword [esp + 0x6c]
mov edx, edi
sar edx, 5
mov ecx, edi
and ecx, 0x1f
mov eax, dword [eax + edx*4]
shr eax, cl
test al, 1
je 0x5d9445
mov edx, dword [esp + 0x30]
movss xmm1, dword [esp + 0x68]
movss xmm0, dword [edx + edi*4]
comiss xmm1, xmm0
jb 0x5d9465
xorps xmm6, xmm6
ucomiss xmm1, xmm6
lahf
test ah, 0x44
jp 0x5d93a2
ucomiss xmm0, xmm6
lahf
test ah, 0x44
jp 0x5d93a2
movss xmm4, dword [0x718824]
jmp 0x5d93a9
movaps xmm4, xmm1
subss xmm4, xmm0
mov eax, dword [esp + 0x34]
movaps xmm2, xmm4
mov ecx, dword [esp + 0x18]
shufps xmm2, xmm2, 0
movaps xmm0, xmmword [eax]
mulps xmm0, xmm2
addps xmm0, xmmword [esi - 0x10]
movaps xmmword [esi - 0x10], xmm0
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmm2
addps xmm0, xmmword [esi + 0x10]
movaps xmmword [esi + 0x10], xmm0
movaps xmm3, xmmword [ecx + esi]
movaps xmm5, xmmword [esi]
movaps xmm0, xmm3
mulps xmm0, xmm5
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
comiss xmm6, xmm0
jbe 0x5d941a
movaps xmm0, xmmword [0x719550]
lea ecx, [esp + 0x150]
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x150], xmm0
jmp 0x5d9429
movaps xmmword [esp + 0x160], xmm2
lea ecx, [esp + 0x160]
movups xmm0, xmmword [ecx]
mulps xmm3, xmm0
addps xmm3, xmm5
movaps xmmword [esi], xmm3
movss xmm0, dword [edx + edi*4]
addss xmm0, xmm4
movss dword [edx + edi*4], xmm0
jmp 0x5d9469
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
movaps xmm0, xmmword [eax]
movaps xmmword [esi - 0x10], xmm0
movaps xmm0, xmmword [ecx + esi]
movaps xmmword [esi], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0x10], xmm0
jmp 0x5d9469
mov eax, dword [esp + 0x34]
inc edi
add eax, 0x30
add esi, 0x30
mov dword [esp + 0x34], eax
cmp edi, dword [esp + 0x14]
jl 0x5d9350
movss xmm0, dword [esp + 0x68]
movss xmm6, dword [esp + 0x58]
comiss xmm0, xmm6
jb 0x5d95ea
xorps xmm5, xmm5
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jp 0x5d94b2
ucomiss xmm6, xmm5
lahf
test ah, 0x44
jp 0x5d94b2
movss xmm3, dword [0x718824]
jmp 0x5d94b9
movaps xmm3, xmm0
subss xmm3, xmm6
mov edx, dword [ebp + 0x10]
movaps xmm2, xmm3
shufps xmm2, xmm2, 0
mov eax, dword [edx]
movsx ecx, word [eax + 0x14]
add ecx, eax
mov eax, dword [ebp + 0x14]
movaps xmm0, xmmword [eax]
mulps xmm0, xmm2
addps xmm0, xmmword [ecx]
movaps xmmword [ecx], xmm0
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmm2
addps xmm0, xmmword [ecx + 0x20]
movaps xmmword [ecx + 0x20], xmm0
movaps xmm4, xmmword [eax + 0x10]
movaps xmm0, xmm4
mulps xmm0, xmmword [ecx + 0x10]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
comiss xmm5, xmm0
jbe 0x5d952c
movaps xmm0, xmmword [0x719550]
lea eax, [esp + 0x170]
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x170], xmm0
jmp 0x5d953b
movaps xmmword [esp + 0x180], xmm2
lea eax, [esp + 0x180]
movups xmm0, xmmword [eax]
mulps xmm4, xmm0
addps xmm4, xmmword [ecx + 0x10]
movaps xmmword [ecx + 0x10], xmm4
mov ecx, dword [edx]
cmp dword [ecx + 4], 1
jle 0x5d95e0
movsx eax, word [ecx + 0x24]
movaps xmm0, xmm2
mulps xmm0, xmmword [0x884c20]
add eax, ecx
addps xmm0, xmmword [eax]
movaps xmmword [eax], xmm0
movaps xmm0, xmm2
mulps xmm0, xmmword [0x884c40]
addps xmm0, xmmword [eax + 0x20]
movaps xmmword [eax + 0x20], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmm4, xmmword [0x884c30]
mulps xmm0, xmm4
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x4e
addps xmm1, xmm0
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xb1
addps xmm0, xmm1
comiss xmm5, xmm0
jbe 0x5d95c3
movaps xmm0, xmmword [0x719550]
lea ecx, [esp + 0x190]
subps xmm0, xmm2
shufps xmm0, xmm0, 0
movaps xmmword [esp + 0x190], xmm0
jmp 0x5d95d2
movaps xmmword [esp + 0x1a0], xmm2
lea ecx, [esp + 0x1a0]
movups xmm0, xmmword [ecx]
mulps xmm0, xmm4
addps xmm0, xmmword [eax + 0x10]
movaps xmmword [eax + 0x10], xmm0
addss xmm3, xmm6
movss dword [esp + 0x58], xmm3
push dword [0x884c50]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call edi
mov dword [esp + 0x28], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d9627
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xe4], eax
mov ecx, dword [esp + 0xe4]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
push dword [0x884c50]
call edi
mov dword [esp + 0x28], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d965e
mov dword [esi], str.Ttnormalize
rdtsc
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0x8c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
movaps xmm1, xmmword [0x719330]
movss xmm5, dword [esp + 0x58]
shufps xmm5, xmm5, 0
divps xmm1, xmm5
mov esi, dword [ebp + 0x10]
mov eax, dword [esi]
movsx ecx, word [eax + 0x14]
add ecx, eax
movss xmm2, dword [0x719760]
movaps xmm0, xmmword [ecx]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movaps xmmword [ecx], xmm0
movaps xmm0, xmmword [ecx + 0x20]
mulps xmm0, xmm1
movaps xmmword [ecx + 0x20], xmm0
movaps xmm4, xmmword [ecx + 0x10]
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
xorps xmm1, xmm1
movaps xmm6, xmm1
movss xmm1, dword [0x719764]
movaps xmm7, xmm1
movaps xmm1, xmm2
movaps xmmword [esp + 0x100], xmm1
movaps xmm1, xmm7
shufps xmm0, xmm0, 0
movaps xmm3, xmm0
movaps xmm2, xmm0
rsqrtss xmm3, xmm3
mulss xmm0, xmm3
cmpeqss xmm2, xmm6
mulss xmm0, xmm3
subss xmm1, xmm0
movaps xmm0, xmmword [esp + 0x100]
mulss xmm0, xmm3
mulss xmm0, xmm1
andnps xmm2, xmm0
shufps xmm2, xmm2, 0
mulps xmm2, xmm4
movaps xmmword [ecx + 0x10], xmm2
mov ecx, dword [esi]
cmp dword [ecx + 4], 1
jle 0x5d97ae
movaps xmm1, xmmword [0x719330]
divps xmm1, xmm5
movsx eax, word [ecx + 0x24]
add eax, ecx
movaps xmm5, xmmword [esp + 0x100]
movaps xmm0, xmmword [eax]
shufps xmm1, xmm1, 0
mulps xmm0, xmm1
movaps xmmword [eax], xmm0
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmm1
movaps xmmword [eax + 0x20], xmm0
movaps xmm4, xmmword [eax + 0x10]
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, xmm7
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
movaps xmm3, xmm0
rsqrtss xmm2, xmm2
mulss xmm0, xmm2
cmpeqss xmm3, xmm6
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
movaps xmmword [eax + 0x10], xmm3
jmp 0x5d97b6
movaps xmm5, xmmword [esp + 0x100]
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x5d98b3
cmp byte [esp + 0x27], 0
je 0x5d97e4
mov ecx, dword [esi]
push eax
push dword [esp + 0x34]
movsx eax, word [ecx + 0x34]
add eax, ecx
push eax
call fcn.00473bb0
add esp, 0xc
jmp 0x5d98b3
xor esi, esi
test eax, eax
jle 0x5d98b0
mov edi, dword [esp + 0x48]
add edi, 0x10
mov eax, dword [esp + 0x6c]
mov edx, esi
sar edx, 5
mov ecx, esi
and ecx, 0x1f
mov eax, dword [eax + edx*4]
shr eax, cl
test al, 1
je 0x5d989c
mov eax, dword [esp + 0x30]
movaps xmm1, xmmword [0x719560]
shufps xmm1, xmm1, 0
movss xmm0, dword [eax + esi*4]
shufps xmm0, xmm0, 0
divps xmm1, xmm0
shufps xmm1, xmm1, 0
movaps xmm0, xmm1
mulps xmm0, xmmword [edi - 0x10]
movaps xmmword [edi - 0x10], xmm0
movaps xmm0, xmmword [edi + 0x10]
mulps xmm0, xmm1
movaps xmmword [edi + 0x10], xmm0
movaps xmm4, xmmword [edi]
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, xmm7
shufps xmm0, xmm0, 0
movaps xmm2, xmm0
movaps xmm3, xmm0
rsqrtss xmm2, xmm2
mulss xmm0, xmm2
cmpeqss xmm3, xmm6
mulss xmm0, xmm2
subss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
mulss xmm0, xmm1
andnps xmm3, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
movaps xmmword [edi], xmm3
inc esi
add edi, 0x30
cmp esi, dword [esp + 0x14]
jl 0x5d97f5
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [ebp + 0x10]
push esi
push dword [esp + 0x48]
push dword [esp + 0x40]
call fcn.005d3b10
movss xmm0, dword [esp + 0x8c]
add esp, 0xc
push esi
push ecx
movss dword [esp], xmm0
call fcn.005d3ed0
add esp, 8
push dword [0x884c50]
call edi
mov dword [esp + 0x28], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d9913
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x90]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
inc eax
mov dword [esp + 0x40], eax
cmp eax, ecx
jle 0x5d8b00
mov esi, dword [esp + 0x14]
cmp byte [esp + 0x84], 0
mov al, byte [esp + 0x12]
je 0x5d9953
test al, al
je 0x5d9957
test esi, esi
jle 0x5d9953
push 0
push dword [ebp + 0x10]
call fcn.005d4210
mov al, byte [esp + 0x1a]
add esp, 8
test al, al
jne 0x5d9960
mov eax, dword [ebp + 8]
cmp byte [eax + 0x71], 0
je 0x5d996d
test esi, esi
jle 0x5d996d
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
or byte [eax + 0x3c], 1
push dword [0x884c50]
call edi
mov dword [esp + 0x8c], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x5d99aa
mov dword [esi], 0x77f784
rdtsc
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x90]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x8c]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], 0
test eax, eax
js 0x5d99d4
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x70]
call dword [eax + 0x10]
push dword [0x884adc]
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], connect
call edi
mov ecx, dword [esp + 0xf0]
mov esi, dword [esp + 0x20]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5d9a14
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5d9a14
cmp dword [eax + 0x14], esi
je 0x5d9a14
mov dword [eax + 0xc], esi
jmp 0x5d9a1d
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0xf4]
mov esi, dword [esp + 0x44]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5d9a4d
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5d9a4d
cmp dword [eax + 0x14], esi
je 0x5d9a4d
mov dword [eax + 0xc], esi
jmp 0x5d9a56
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x38]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5d9a83
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5d9a83
cmp dword [eax + 0x14], esi
je 0x5d9a83
mov dword [eax + 0xc], esi
jmp 0x5d9a8c
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x30]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5d9ab9
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5d9ab9
cmp dword [eax + 0x14], esi
je 0x5d9ab9
mov dword [eax + 0xc], esi
jmp 0x5d9ac2
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x4c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5d9af6
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5d9af6
cmp dword [eax + 0x14], esi
je 0x5d9af6
mov dword [eax + 0xc], esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edx
push esi
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
mov esp, ebp
pop ebp
ret