Function at 0x526ab0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x67021b
mov eax, dword fs:[0]
push eax
mov eax, 0x5de0
call fcn.00632960
mov eax, dword [0x73bb00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x5cc4], esi
mov eax, dword [esi]
mov dword [ebp - 0x5ca8], esi
call dword [eax + 0x18]
mov ecx, esi
mov byte [esi + 0x526c35], 1
call fcn.0052b360
mov eax, dword [0x780c78]
mov byte [ebp - 0x5c8d], 0
mov byte [ebp - 0x5cb9], 0
mov dword [esi + eax*4 + 0x575fc4], 0xffffffff
lea eax, [esi + 0x52b228]
lea ecx, [eax + 0x48200]
cmp eax, ecx
je 0x526b40
mov byte [eax + 0x11f8], 0
add eax, 0x1208
cmp eax, ecx
jne 0x526b30
mov dword [esi + 0x52757c], 0
mov dword [esi + 0x527578], 0
mov ecx, dword [esi + 0x5267f8]
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0xa8]
call eax
xor edx, edx
mov dword [ebp - 0x5cb4], eax
mov dword [ebp - 0x5ca0], edx
test eax, eax
jle 0x527e0d
movaps xmm0, xmmword [0x6807a0]
fld qword [0x67ed40]
fstp qword [ebp - 0x5ce0]
movups xmmword [ebp - 0x5d10], xmm0
nop word [eax + eax]
mov ecx, dword [esi + 0x5267f8]
lea edi, [ebp - 0x5c8c]
push edi
push edx
push 0
mov eax, dword [ecx]
mov eax, dword [eax + 0xb0]
call eax
mov edi, eax
mov eax, dword [ebp - 0x5c8c]
mov dword [ebp - 0x5cac], edi
cmp eax, 0xb
jne 0x527128
mov eax, dword [ebp - 0x5c88]
cmp eax, 0x40
jge 0x527dea
imul eax, eax, 0x1208
push 0x10
add eax, 0x52b228
add eax, esi
mov dword [ebp - 0x5c94], eax
add eax, 0xc
push eax
push 4
push edi
mov dword [ebp - 0x5c98], eax
call fcn.00629d50
add esp, 0x10
test al, al
jne 0x526c23
push 0x10
push str.nameless_tee
push dword [ebp - 0x5c98]
call fcn.00623c10
add esp, 0xc
mov eax, dword [ebp - 0x5c94]
push 0xc
add eax, 0x1c
push eax
lea eax, [edi + 0x10]
push 3
push eax
call fcn.00629d50
mov ecx, dword [ebp - 0x5c94]
mov eax, dword [edi + 0x1c]
push 0x18
mov dword [ecx + 0x28], eax
lea eax, [ecx + 0x2c]
push eax
lea eax, [edi + 0x20]
push 6
push eax
call fcn.00629d50
mov ecx, dword [ebp - 0x5c94]
add esp, 0x20
mov eax, dword [edi + 0x38]
mov dword [ecx], eax
mov eax, dword [edi + 0x3c]
mov dword [ecx + 4], eax
mov eax, dword [edi + 0x40]
mov edi, ecx
mov ecx, eax
mov dword [ebp - 0x5c9c], ecx
mov dword [edi + 8], eax
cmp byte [esi + 0x526c5e], 0
jne 0x526cb8
cmp byte [edi + 0x2c], 0x78
lea edx, [edi + 0x2c]
mov dword [ebp - 0x5c9c], ecx
jne 0x526cb8
cmp byte [edi + 0x2d], 0x5f
mov dword [ebp - 0x5c9c], ecx
jne 0x526cb8
push 0x18
push str.default
push edx
call fcn.00623c10
mov ecx, dword [edi + 8]
add esp, 0xc
mov dword [ebp - 0x5c9c], ecx
mov ecx, dword [edi + 4]
xorps xmm0, xmm0
movss xmm3, dword [0x67b0c4]
xorps xmm1, xmm1
movzx eax, cl
movss dword [ebp - 0x5c94], xmm1
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x67b110]
mov eax, ecx
shr ecx, 8
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm2, xmm0
xorps xmm0, xmm0
divss xmm2, xmm3
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm2, dword [0x67b0b0]
addsd xmm0, qword [eax*8 + 0x67b110]
movzx eax, cl
addss xmm2, dword [0x67b0b0]
cvtpd2ps xmm1, xmm0
movaps xmm0, xmm2
movss dword [ebp - 0x5cac], xmm2
addss xmm0, xmm2
movss xmm2, dword [0x67b0b4]
divss xmm1, xmm3
subss xmm0, xmm2
mulss xmm1, dword [0x67ed4c]
andps xmm0, xmmword [0x67ed80]
subss xmm2, xmm0
movss dword [ebp - 0x5cc0], xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x67b110]
cvtpd2ps xmm0, xmm0
divss xmm0, xmm3
mulss xmm2, xmm0
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x5c98], xmm2
movsd qword [ebp - 0x5cd0], xmm0
fld qword [ebp - 0x5cd0]
fld qword [ebp - 0x5ce0]
call fcn.006431f0
movsd xmm1, qword [0x67b0b8]
xorps xmm6, xmm6
movss xmm2, dword [ebp - 0x5c98]
xorps xmm3, xmm3
cvttss2si eax, dword [ebp - 0x5cc0]
fstp qword [ebp - 0x5cd0]
movsd xmm0, qword [ebp - 0x5cd0]
xorps xmm4, xmm4
subsd xmm0, xmm1
andps xmm0, xmmword [0x67ed90]
subsd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
cmp eax, 6
ja case.default.0x526dec
jmp dword [eax*4 + 0x528c38]
movaps xmm5, xmm0
movaps xmm3, xmm2
jmp 0x526e29
movaps xmm5, xmm2
movaps xmm3, xmm0
jmp 0x526e29
movaps xmm5, xmm2
movaps xmm4, xmm0
jmp 0x526e29
movaps xmm5, xmm0
movaps xmm4, xmm2
jmp 0x526e29
movaps xmm3, xmm0
movaps xmm4, xmm2
jmp case.default.0x526dec
movaps xmm3, xmm2
movaps xmm4, xmm0
movss xmm5, dword [ebp - 0x5c94]
movss xmm7, dword [0x67b0b0]
movss xmm1, dword [ebp - 0x5cac]
mov ecx, dword [ebp - 0x5c9c]
mulss xmm2, xmm7
movzx eax, cl
movss dword [ebp - 0x5c9c], xmm6
subss xmm1, xmm2
addss xmm4, xmm1
movaps xmm0, xmm1
addss xmm0, xmm5
addss xmm3, xmm1
movss dword [ebp - 0x5ce8], xmm4
movss xmm4, dword [0x67b0b4]
movss dword [ebp - 0x5cec], xmm0
movss dword [ebp - 0x5cf0], xmm3
movss xmm3, dword [0x67b0c4]
movss dword [ebp - 0x5ce4], xmm4
movups xmm0, xmmword [ebp - 0x5cf0]
movups xmmword [edi + 0x4ec], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x67b110]
mov eax, ecx
shr ecx, 8
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm2, xmm0
movd xmm0, eax
divss xmm2, xmm3
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
mulss xmm2, xmm7
addsd xmm0, qword [eax*8 + 0x67b110]
movzx eax, cl
addss xmm2, xmm7
cvtpd2ps xmm1, xmm0
movaps xmm0, xmm2
movss dword [ebp - 0x5c98], xmm2
addss xmm0, xmm2
movaps xmm2, xmm4
divss xmm1, xmm3
subss xmm0, xmm4
mulss xmm1, dword [0x67ed4c]
andps xmm0, xmmword [0x67ed80]
subss xmm2, xmm0
movss dword [ebp - 0x5cc0], xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x67b110]
cvtpd2ps xmm0, xmm0
divss xmm0, xmm3
mulss xmm2, xmm0
cvtps2pd xmm0, xmm1
movss dword [ebp - 0x5cac], xmm2
movsd qword [ebp - 0x5cd0], xmm0
fld qword [ebp - 0x5cd0]
fld qword [ebp - 0x5ce0]
call fcn.006431f0
movsd xmm1, qword [0x67b0b8]
xorps xmm2, xmm2
movss xmm3, dword [ebp - 0x5cac]
cvttss2si eax, dword [ebp - 0x5cc0]
fstp qword [ebp - 0x5cd0]
movsd xmm0, qword [ebp - 0x5cd0]
subsd xmm0, xmm1
andps xmm0, xmmword [0x67ed90]
subsd xmm1, xmm0
cvtps2pd xmm0, xmm3
mulsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
cmp eax, 6
ja case.default.0x526fad
jmp dword [eax*4 + 0x528c54]
movaps xmm5, xmm0
movaps xmm1, xmm3
jmp 0x526fea
movaps xmm5, xmm3
movaps xmm1, xmm0
jmp 0x526fea
movaps xmm5, xmm3
movaps xmm2, xmm0
jmp 0x526fea
movaps xmm5, xmm0
movaps xmm2, xmm3
jmp 0x526fea
movaps xmm1, xmm0
movaps xmm2, xmm3
jmp case.default.0x526fad
movaps xmm1, xmm3
movaps xmm2, xmm0
movss xmm5, dword [ebp - 0x5c9c]
mulss xmm3, dword [0x67b0b0]
lea eax, [edi + 0x2c]
lea ecx, [esi + 0x50fc28]
mov dword [edi + 0x50c], 0x42800000
movss xmm4, dword [ebp - 0x5c98]
push eax
subss xmm4, xmm3
movaps xmm0, xmm4
addss xmm1, xmm4
addss xmm0, xmm5
addss xmm2, xmm4
movss dword [ebp - 0x5d00], xmm1
movss dword [ebp - 0x5cfc], xmm0
movss xmm0, dword [0x67b0b4]
movss dword [ebp - 0x5cf8], xmm2
movss dword [ebp - 0x5cf4], xmm0
movups xmm0, xmmword [ebp - 0x5d00]
movups xmmword [edi + 0x4fc], xmm0
call fcn.00511410
mov ecx, dword [edi]
test ecx, ecx
movups xmm0, xmmword [eax + 0x18]
movups xmmword [edi + 0x448], xmm0
movups xmm0, xmmword [eax + 0x28]
movups xmmword [edi + 0x458], xmm0
movups xmm0, xmmword [eax + 0x38]
movups xmmword [edi + 0x468], xmm0
movups xmm0, xmmword [eax + 0x48]
movups xmmword [edi + 0x478], xmm0
movups xmm0, xmmword [eax + 0x58]
movups xmmword [edi + 0x488], xmm0
movups xmm0, xmmword [eax + 0x68]
movups xmmword [edi + 0x498], xmm0
movups xmm0, xmmword [eax + 0x88]
movups xmmword [edi + 0x4a8], xmm0
movups xmm0, xmmword [eax + 0x98]
movups xmmword [edi + 0x4b8], xmm0
movups xmm0, xmmword [eax + 0xa8]
movups xmmword [edi + 0x4c8], xmm0
movups xmm0, xmmword [eax + 0x78]
setne al
mov byte [edi + 0x4d8], al
movups xmmword [edi + 0x4dc], xmm0
test ecx, ecx
jne 0x5270f9
movups xmm0, xmmword [ebp - 0x5d10]
movups xmmword [edi + 0x4ec], xmm0
movups xmmword [edi + 0x4fc], xmm0
mov eax, dword [esi + 0x527064]
test eax, eax
je 0x52710f
test byte [eax], 1
mov byte [ebp - 0x5cc8], 1
jne 0x527116
mov byte [ebp - 0x5cc8], 0
push dword [ebp - 0x5cc8]
mov ecx, edi
call fcn.0052d500
jmp 0x527dea
cmp eax, 0xa
jne 0x52721e
mov eax, dword [edi + 4]
cmp eax, 0x40
jge 0x527dea
cmp eax, dword [ebp - 0x5c88]
jne 0x527dea
imul ecx, eax, 0x1208
mov eax, dword [edi + 8]
mov dword [ecx + esi + method.CGameClient.virtual_68], eax
imul eax, dword [edi + 4], 0x1208
mov byte [eax + esi + 0x52b81c], 1
mov eax, dword [edi + 4]
mov dword [esi + eax*4 + 0x527070], edi
inc dword [esi + 0x527574]
cmp dword [edi], 0
je 0x527199
mov eax, dword [edi + 4]
mov dword [esi + 0x527570], eax
mov dword [esi + 0x527050], edi
cmp dword [edi + 8], 0xffffffff
jne 0x527199
mov byte [esi + 0x527580], 1
mov eax, dword [edi + 8]
cmp eax, 0xffffffff
je 0x5271e2
inc dword [esi + eax*4 + 0x527578]
mov ecx, dword [edi + 4]
imul eax, ecx, 0x58
cmp byte [eax + esi + 0x573430], 0
jne 0x527dea
lea eax, [ecx + 0xfdaf]
mov ecx, dword [esi + 0x5267f8]
imul edx, eax, 0x58
mov eax, dword [0x780c78]
mov eax, dword [ecx + eax*4 + 0x20]
mov byte [edx + esi + 8], 1
mov dword [edx + esi + 4], eax
jmp 0x527dea
mov ecx, dword [edi + 4]
imul eax, ecx, 0x58
cmp byte [eax + esi + 0x573430], 0
je 0x527dea
lea eax, [ecx + 0xfdaf]
mov ecx, dword [esi + 0x5267f8]
imul edx, eax, 0x58
mov eax, dword [0x780c78]
add edx, esi
mov eax, dword [ecx + eax*4 + 0x20]
sub eax, dword [edx + 4]
add dword [edx], eax
mov byte [edx + 8], 0
jmp 0x527dea
cmp eax, 0x10024
jne 0x5272d2
mov eax, dword [ebp - 0x5c88]
mov byte [esi + 0x574a98], 1
cmp eax, 0x40
jge 0x527dea
imul ecx, eax, 0x1208
mov eax, dword [edi + 4]
mov dword [ecx + esi + 0x52b828], eax
imul eax, dword [ebp - 0x5c88], 0x1208
mov cl, byte [edi]
and cl, 1
mov byte [eax + esi + 0x52b82c], cl
imul eax, dword [ebp - 0x5c88], 0x1208
mov ecx, dword [edi]
shr ecx, 1
and cl, 1
mov byte [eax + esi + 0x52b82d], cl
imul eax, dword [ebp - 0x5c88], 0x1208
mov ecx, dword [edi]
shr ecx, 2
and cl, 1
mov byte [eax + esi + 0x52b82e], cl
mov eax, dword [ebp - 0x5c88]
cmp eax, dword [esi + 0x527570]
jne 0x527dea
imul eax, eax, 0x1208
cmp byte [eax + esi + 0x52b82d], 0
jne 0x5272c6
cmp byte [eax + esi + 0x52b82e], 0
je 0x527dea
mov byte [esi + 0x527580], 1
jmp 0x527dea
cmp eax, 9
jne 0x5276fd
mov edx, dword [ebp - 0x5c88]
cmp edx, 0x40
jge 0x527dea
mov ecx, dword [esi + 0x5267f8]
push edx
push 9
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0xac]
call eax
imul ecx, dword [ebp - 0x5c88], 0xec
mov edx, eax
movups xmm0, xmmword [edi]
movups xmmword [ecx + esi + 0x5275f0], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [ecx + esi + 0x527600], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [ecx + esi + 0x527610], xmm0
movups xmm0, xmmword [edi + 0x30]
movups xmmword [ecx + esi + 0x527620], xmm0
movups xmm0, xmmword [edi + 0x40]
movups xmmword [ecx + esi + 0x527630], xmm0
movq xmm0, qword [edi + 0x50]
movq qword [ecx + esi + 0x527640], xmm0
test edx, edx
je 0x5276e3
imul eax, dword [ebp - 0x5c88], 0xec
mov byte [eax + esi + 0x527594], 1
imul eax, dword [ebp - 0x5c88], 0xec
movups xmm0, xmmword [edx]
movups xmmword [eax + esi + 0x527598], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [eax + esi + 0x5275a8], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [eax + esi + 0x5275b8], xmm0
movups xmm0, xmmword [edx + 0x30]
movups xmmword [eax + esi + 0x5275c8], xmm0
movups xmm0, xmmword [edx + 0x40]
movups xmmword [eax + esi + 0x5275d8], xmm0
movq xmm0, qword [edx + 0x50]
movq qword [eax + esi + 0x5275e8], xmm0
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [0x780c78]
mov eax, dword [ecx + eax*4 + 0x18]
mov dword [ebp - 0x5c98], eax
imul eax, dword [ebp - 0x5c88], 0xec
lea edx, [eax + 0x527598]
add edx, esi
mov dword [ebp - 0x5cac], edx
mov edx, dword [ebp - 0x5c98]
sub edx, dword [eax + esi + 0x527598]
mov dword [ebp - 0x5cc0], edx
mov edx, dword [0x780c78]
mov ecx, dword [ecx + edx*4 + 0x20]
sub ecx, dword [eax + esi + 0x5275f0]
mov edx, dword [ebp - 0x5c88]
mov dword [ebp - 0x5c9c], ecx
cmp ecx, 0x96
jg 0x527583
mov ecx, dword [ebp - 0x5c98]
imul eax, edx, 0x1208
cmp dword [eax + esi + 0x52b988], ecx
jne 0x527583
add eax, 0x52b930
push 0x58
add eax, esi
push eax
push dword [ebp - 0x5cac]
call fcn.00620550
add esp, 0xc
test eax, eax
jne 0x5274d5
imul ecx, dword [ebp - 0x5c88], 0x1208
imul eax, dword [ebp - 0x5c88], 0xec
movups xmm0, xmmword [ecx + esi + 0x52b988]
movups xmmword [eax + esi + 0x527598], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b998]
movups xmmword [eax + esi + 0x5275a8], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b9a8]
movups xmmword [eax + esi + 0x5275b8], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b9b8]
movups xmmword [eax + esi + 0x5275c8], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b9c8]
movups xmmword [eax + esi + 0x5275d8], xmm0
movq xmm0, qword [ecx + esi + 0x52b9d8]
movq qword [eax + esi + 0x5275e8], xmm0
imul eax, dword [ebp - 0x5c88], 0x1208
push 0x58
add eax, 0x52b930
add eax, esi
push eax
imul eax, dword [ebp - 0x5c88], 0xec
add eax, 0x5275f0
add eax, esi
push eax
call fcn.00620550
add esp, 0xc
test eax, eax
jne 0x52757d
imul ecx, dword [ebp - 0x5c88], 0x1208
imul eax, dword [ebp - 0x5c88], 0xec
movups xmm0, xmmword [ecx + esi + 0x52b988]
movups xmmword [eax + esi + 0x5275f0], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b998]
movups xmmword [eax + esi + 0x527600], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b9a8]
movups xmmword [eax + esi + 0x527610], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b9b8]
movups xmmword [eax + esi + 0x527620], xmm0
movups xmm0, xmmword [ecx + esi + 0x52b9c8]
movups xmmword [eax + esi + 0x527630], xmm0
movq xmm0, qword [ecx + esi + 0x52b9d8]
movq qword [eax + esi + 0x527640], xmm0
mov edx, dword [ebp - 0x5c88]
cmp dword [ebp - 0x5cc0], 0x96
jg 0x5275ce
imul eax, edx, 0xec
add eax, 0x527598
add eax, esi
mov dword [ebp - 0x5cac], eax
cmp dword [eax], 0
je 0x5275ce
mov ecx, dword [0x780c78]
mov eax, dword [esi + 0x5267f8]
push dword [eax + ecx*4 + 0x18]
lea ecx, [ebp - 0x5ca8]
push dword [ebp - 0x5cac]
call fcn.0051faa0
mov edx, dword [ebp - 0x5c88]
cmp dword [ebp - 0x5c9c], 0x96
jg 0x527619
imul eax, edx, 0xec
add eax, 0x5275f0
add eax, esi
mov dword [ebp - 0x5cac], eax
cmp dword [eax], 0
je 0x527619
mov ecx, dword [0x780c78]
mov eax, dword [esi + 0x5267f8]
push dword [eax + ecx*4 + 0x20]
lea ecx, [ebp - 0x5ca8]
push dword [ebp - 0x5cac]
call fcn.0051faa0
mov edx, dword [ebp - 0x5c88]
movups xmm0, xmmword [edi]
imul eax, edx, 0x1208
movups xmmword [eax + esi + 0x52b930], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [eax + esi + 0x52b940], xmm0
movups xmm0, xmmword [edi + 0x20]
movups xmmword [eax + esi + 0x52b950], xmm0
movups xmm0, xmmword [edi + 0x30]
movups xmmword [eax + esi + 0x52b960], xmm0
movups xmm0, xmmword [edi + 0x40]
movups xmmword [eax + esi + 0x52b970], xmm0
movq xmm0, qword [edi + 0x50]
movq qword [eax + esi + 0x52b980], xmm0
imul ecx, dword [ebp - 0x5c88], 0xec
imul eax, dword [ebp - 0x5c88], 0x1208
movups xmm0, xmmword [ecx + esi + 0x5275f0]
movups xmmword [eax + esi + 0x52b988], xmm0
movups xmm0, xmmword [ecx + esi + 0x527600]
movups xmmword [eax + esi + 0x52b998], xmm0
movups xmm0, xmmword [ecx + esi + 0x527610]
movups xmmword [eax + esi + 0x52b9a8], xmm0
movups xmm0, xmmword [ecx + esi + 0x527620]
movups xmmword [eax + esi + 0x52b9b8], xmm0
movups xmm0, xmmword [ecx + esi + 0x527630]
movups xmmword [eax + esi + 0x52b9c8], xmm0
movq xmm0, qword [ecx + esi + 0x527640]
movq qword [eax + esi + 0x52b9d8], xmm0
jmp 0x527dea
imul eax, dword [ebp - 0x5c88], 0x1208
mov dword [eax + esi + 0x52b988], 0xffffffff
jmp 0x527dea
cmp eax, 0x10023
jne 0x5278cf
mov eax, dword [ebp - 0x5c88]
cmp eax, 0x40
jge 0x527dea
movups xmm0, xmmword [edi]
imul eax, eax, 0xec
movups xmmword [eax + esi + 0x527648], xmm0
movups xmm0, xmmword [edi + 0x10]
movups xmmword [eax + esi + 0x527658], xmm0
movq xmm0, qword [edi + 0x20]
movq qword [eax + esi + 0x527668], xmm0
mov ecx, dword [esi + 0x5267f8]
push dword [ebp - 0x5c88]
push 0x10023
mov eax, dword [ecx]
push 1
mov eax, dword [eax + 0xac]
call eax
imul ecx, dword [ebp - 0x5c88], 0xec
mov dword [ecx + esi + 0x527670], eax
imul eax, dword [ebp - 0x5c88], 0xec
mov byte [eax + esi + 0x527674], 1
imul eax, dword [ebp - 0x5c88], 0xec
mov byte [eax + esi + 0x527675], 0
cmp dword [edi + 0x14], 0xffffffff
je 0x5277ac
imul eax, dword [ebp - 0x5c88], 0xec
mov byte [eax + esi + 0x527675], 1
imul edi, dword [ebp - 0x5c88], 0x1208
mov ecx, dword [ebp - 0x5cac]
push ecx
mov al, byte [ecx]
and al, 1
mov byte [edi + esi + 0x52b280], al
mov eax, dword [ecx]
shr eax, 1
and al, 1
mov byte [edi + esi + 0x52b281], al
mov eax, dword [ecx]
shr eax, 2
and al, 1
mov byte [edi + esi + 0x52b282], al
mov eax, dword [ecx]
shr eax, 6
and al, 1
mov byte [edi + esi + 0x52b285], al
mov eax, dword [ecx]
shr eax, 8
and al, 1
mov byte [edi + esi + 0x52b286], al
mov eax, dword [ecx]
shr eax, 9
and al, 1
mov byte [edi + esi + 0x52b287], al
mov eax, dword [ecx]
shr eax, 7
and al, 1
mov byte [edi + esi + 0x52b288], al
mov eax, dword [ecx]
shr eax, 0xa
and al, 1
mov byte [edi + esi + 0x52b289], al
mov eax, dword [ecx]
shr eax, 5
and al, 1
mov byte [edi + esi + 0x52b28a], al
mov eax, dword [ecx]
shr eax, 3
and al, 1
mov byte [edi + esi + 0x52b283], al
mov eax, dword [ecx]
shr eax, 4
and al, 1
mov byte [edi + esi + 0x52b284], al
mov eax, dword [ecx + 4]
mov dword [edi + esi + 0x52b290], eax
cmp dword [ecx + 4], 0xffffffff
sete al
mov byte [edi + esi + 0x52b294], al
mov eax, dword [ecx]
shr eax, 0x14
and al, 1
mov byte [edi + esi + 0x52b295], al
mov eax, dword [ecx]
shr eax, 0xc
and al, 1
mov byte [edi + esi + 0x52b28c], al
mov eax, dword [ecx]
shr eax, 0xb
and al, 1
mov byte [edi + esi + 0x52b28b], al
mov eax, dword [ecx]
lea ecx, [edi + 0x52b298]
shr eax, 0xd
add ecx, esi
and al, 1
mov byte [edi + esi + 0x52b28d], al
call fcn.0062a680
movzx eax, byte [edi + esi + 0x52b280]
lea ecx, [esi + 0x574a9c]
push eax
push dword [ebp - 0x5c88]
call fcn.006305a0
jmp 0x527dea
cmp eax, 0x1002b
jne 0x527919
mov eax, dword [ebp - 0x5c88]
cmp eax, 0x40
jge 0x527dea
imul eax, eax, 0x1208
mov byte [eax + esi + 0x52c420], 1
movd xmm0, dword [edi]
cvtdq2ps xmm0, xmm0
movss dword [eax + esi + 0x52c424], xmm0
movd xmm0, dword [edi + 4]
cvtdq2ps xmm0, xmm0
movss dword [eax + esi + 0x52c428], xmm0
jmp 0x527dea
cmp eax, 0xc
jne 0x527957
mov ecx, dword [esi + 0x5267f8]
push dword [ebp - 0x5c88]
mov dword [esi + 0x527054], edi
push 0xc
mov eax, dword [ecx]
push 1
mov eax, dword [eax + 0xac]
call eax
mov dword [esi + 0x527058], eax
mov eax, dword [esi + 0x527054]
mov eax, dword [eax]
mov dword [esi + 0x527584], eax
jmp 0x527dea
cmp eax, 6
jne 0x5279fa
mov dword [esi + 0x527064], edi
mov cl, byte [edi + 4]
and cl, 1
cmp byte [esi + 0x526c2c], 0
mov byte [ebp - 0x5ca1], cl
jne 0x52798b
test cl, cl
je 0x52799f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x94]
jmp 0x527999
test cl, cl
jne 0x52799f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x98]
mov cl, byte [ebp - 0x5ca1]
mov edx, dword [esi + 0x527064]
mov eax, dword [edx + 8]
cmp eax, dword [esi + 0x526998]
je 0x5279cc
test cl, cl
jne 0x5279cc
test byte [edx + 4], 4
jne 0x5279cc
cmp byte [esi + 0x526c2d], cl
jne 0x5279cc
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x9c]
mov ecx, dword [esi + 0x527064]
mov eax, dword [ecx + 8]
mov dword [esi + 0x526998], eax
mov al, byte [ebp - 0x5ca1]
mov byte [esi + 0x526c2c], al
mov eax, dword [ecx + 4]
shr eax, 2
and al, 1
mov byte [esi + 0x526c2d], al
jmp 0x527dea
cmp eax, 0x10025
jne 0x527a75
mov al, byte [ebp - 0x5c8d]
test al, al
jne 0x527df0
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x2e48]
push edx
mov byte [ebp - 0x5c8d], 1
mov eax, dword [ecx]
call dword [eax + 0xa0]
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x2e48]
push edx
push dword [ebp - 0x5ca0]
mov eax, dword [ecx]
push 0
mov eax, dword [eax + 0xb4]
call eax
push eax
lea eax, [ebp - 0x5d30]
push edi
push eax
call fcn.00520f50
add esp, 0x10
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [esi + 0x526c44], xmm0
movups xmmword [esi + 0x526c54], xmm1
jmp 0x527dea
cmp eax, 7
jne 0x527b40
mov eax, dword [ebp - 0x5c88]
mov dword [esi + 0x527068], edi
mov dword [esi + 0x52706c], eax
cmp dword [edi + 8], 0xffffffff
jne 0x527ab6
cmp dword [esi + 0x526c38], 0
jne 0x527ac0
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [0x780c78]
mov eax, dword [ecx + eax*4 + 0x20]
mov dword [esi + 0x526c38], eax
jmp 0x527ac0
mov dword [esi + 0x526c38], 0
cmp dword [edi + 0xc], 0xffffffff
lea edx, [edi + 0xc]
jne 0x527ae9
cmp dword [esi + 0x526c3c], 0
jne 0x527af3
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [0x780c78]
mov eax, dword [ecx + eax*4 + 0x20]
mov dword [esi + 0x526c3c], eax
jmp 0x527af3
mov dword [esi + 0x526c3c], 0
cmp dword [esi + 0x52699c], 0xfffffffe
jne 0x527b09
cmp dword [edi + 8], 0
jl 0x527b06
push 0
jmp 0x527b19
lea edx, [edi + 0xc]
cmp dword [esi + 0x5269a0], 0xfffffffe
jne 0x527b23
cmp dword [edx], 0
jl 0x527b23
push 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xa0]
mov ecx, dword [esi + 0x527068]
mov eax, dword [ecx + 8]
mov dword [esi + 0x52699c], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0x5269a0], eax
jmp 0x527dea
cmp eax, 5
jne 0x527b63
mov eax, dword [ebp - 0x5c88]
and eax, 0x80000001
jns 0x527b57
dec eax
or eax, 0xfffffffe
inc eax
mov dword [esi + eax*4 + 0x52705c], edi
jmp 0x527dea
cmp eax, 0x1002c
jne 0x527dea
cmp dword [ebp - 0x5c84], 0x24
jl 0x527dea
mov ecx, dword [ebp - 0x5c88]
lea eax, [ebp - 0x5c88]
test ecx, ecx
mov dword [ebp - 0x5cc0], 0x3f
lea edx, [ebp - 0x5cac]
mov dword [ebp - 0x5cac], 0
cmovns edx, eax
mov dword [ebp - 0x5cd8], 0xff
cmp ecx, 0x3f
mov dword [ebp - 0x5cd4], 0
mov ecx, dword [edi]
lea eax, [ebp - 0x5cc0]
cmovle eax, edx
test ecx, ecx
lea edx, [ebp - 0x5cd4]
cmovns edx, edi
cmp ecx, 0xff
mov ecx, dword [esi + 0x574e60]
mov eax, dword [eax]
mov dword [ebp - 0x5c94], eax
lea eax, [ebp - 0x5cd8]
cmovle eax, edx
sub ecx, dword [esi + 0x574e5c]
mov eax, dword [eax]
mov dword [ebp - 0x5c98], eax
mov eax, 0x9cc8e161
imul ecx
xor eax, eax
add edx, ecx
sar edx, 9
mov ecx, edx
dec edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x5c98]
test ecx, ecx
cmovg eax, ecx
cmp edx, eax
je 0x527c3b
lea ecx, [esi + 0x574be0]
push edx
call fcn.00629c50
mov eax, dword [ebp - 0x5c98]
mov dword [esi + 0x52687c], eax
mov ecx, dword [esi + 0x574e60]
mov eax, 0x9cc8e161
sub ecx, dword [esi + 0x574e5c]
imul ecx
mov dword [ebp - 0x5c9c], 0
add edx, ecx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x527cf1
mov ecx, dword [ebp - 0x5c9c]
mov dword [ebp - 0x5c98], 0
nop dword [eax]
mov eax, ecx
inc dword [ebp - 0x5c9c]
cdq
mov ecx, 0x20
idiv ecx
mov ecx, edx
mov edx, dword [ebp - 0x5c94]
mov eax, dword [edi + eax*4 + 4]
sar eax, cl
and eax, 0xffffff01
mov dword [ebp - 0x5cac], eax
mov eax, dword [esi + 0x574e5c]
add eax, dword [ebp - 0x5c98]
mov ecx, dword [ebp - 0x5cac]
add dword [ebp - 0x5c98], 0x344
mov byte [eax + edx], cl
mov eax, 0x9cc8e161
mov ecx, dword [esi + 0x574e60]
sub ecx, dword [esi + 0x574e5c]
imul ecx
add edx, ecx
mov ecx, dword [ebp - 0x5c9c]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x527c80
cmp dword [ebp - 0x5c84], 0x44
jl 0x527d6e
add edi, 0x34
mov dword [ebp - 0x5c98], 4
nop word [eax + eax]
mov eax, dword [edi]
mov dword [ebp - 0x5cac], eax
test eax, eax
jle 0x527d62
mov ecx, dword [esi + 0x574e60]
mov eax, 0x9cc8e161
sub ecx, dword [esi + 0x574e5c]
imul ecx
add edx, ecx
mov ecx, dword [edi - 0x10]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
test ecx, ecx
js 0x527d62
cmp ecx, eax
jg 0x527d62
mov edx, dword [esi + 0x574e5c]
imul eax, ecx, 0xd1
mov ecx, dword [ebp - 0x5cac]
add eax, dword [ebp - 0x5c94]
mov dword [edx + eax*4 + 0x44], ecx
add edi, 4
sub dword [ebp - 0x5c98], 1
jne 0x527d10
mov eax, dword [esi + 0x574e60]
mov ecx, dword [esi + 0x574e5c]
mov edx, dword [ebp - 0x5c94]
mov dword [ebp - 0x5cac], eax
cmp ecx, eax
je 0x527dca
nop word [eax + eax]
mov edi, dword [ecx + edx*4 + 0x44]
xor eax, eax
cmp byte [edx + ecx], al
je 0x527da9
test edi, edi
sete al
lea eax, [eax*2 + 0x16]
jmp 0x527db5
test edi, edi
sete al
lea eax, [eax*2 + 0x17]
mov dword [ecx + edx*4 + 0x144], eax
add ecx, 0x344
cmp ecx, dword [ebp - 0x5cac]
jne 0x527d90
mov eax, dword [0x780c78]
or ecx, 0xffffffff
cmp byte [ebp - 0x5cb9], 0
mov byte [ebp - 0x5cb9], 1
cmove ecx, edx
mov dword [esi + eax*4 + 0x575fc4], ecx
mov al, byte [ebp - 0x5c8d]
mov edx, dword [ebp - 0x5ca0]
inc edx
mov dword [ebp - 0x5ca0], edx
cmp edx, dword [ebp - 0x5cb4]
jl 0x526ba0
test al, al
jne 0x527e51
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x2e48]
push edx
mov eax, dword [ecx]
call dword [eax + 0xa0]
lea eax, [ebp - 0x2e48]
push eax
push 0
lea eax, [ebp - 0x5d30]
push 0
push eax
call fcn.00520f50
add esp, 0x10
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [esi + 0x526c44], xmm0
movups xmmword [esi + 0x526c54], xmm1
mov ecx, dword [esi + 0x527570]
test ecx, ecx
js 0x527f0b
mov eax, dword [0x780c78]
mov dword [esi + eax*4 + 0x574a3c], ecx
mov edx, dword [esi + 0x527570]
imul eax, edx, 0xec
cmp byte [eax + esi + 0x527594], 0
je 0x527ee3
cmp byte [esi + 0x527580], 0
jne 0x527f0b
lea ecx, [esi + 0x5275f0]
add ecx, eax
add eax, 0x527598
add eax, esi
mov dword [esi + 0x527048], ecx
mov dword [esi + 0x52704c], eax
movd xmm0, dword [ecx + 4]
movd xmm1, dword [ecx + 8]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0x5cb8], xmm0
mov eax, dword [ebp - 0x5cb8]
movss dword [ebp - 0x5cb4], xmm1
mov ecx, dword [ebp - 0x5cb4]
mov dword [esi + 0x526c68], eax
mov dword [esi + 0x526c6c], ecx
jmp 0x527f0b
mov ecx, dword [esi + 0x5267f8]
push edx
push 9
push 1
mov eax, dword [ecx]
mov eax, dword [eax + 0xac]
call eax
test eax, eax
je 0x527f0b
mov eax, dword [esi + 0x510f90]
lea ecx, [esi + 0x510f90]
call dword [eax + 0x40]
mov eax, dword [esi + 0x5267f8]
cmp dword [eax + 8], 4
jne 0x527f6c
cmp dword [esi + 0x527570], 0xffffffff
jne 0x527f33
cmp dword [esi + 0x526c64], 0xfffffffe
jne 0x527f33
mov dword [esi + 0x526c64], 0xffffffff
mov ecx, dword [esi + 0x526c64]
cmp ecx, 0xfffffffe
je 0x527f6c
mov byte [esi + 0x527580], 1
cmp ecx, 0xffffffff
jle 0x527f62
imul eax, ecx, 0xec
cmp byte [eax + esi + 0x527594], 0
je 0x527f62
mov dword [esi + 0x527584], ecx
jmp 0x527f6c
mov dword [esi + 0x527584], 0xffffffff
lea eax, [esi + 0x57344c]
mov dword [ebp - 0x5cb4], eax
lea ecx, [esi + 0x52b228]
lea edx, [esi + 0x527070]
mov dword [ebp - 0x5cc8], ecx
mov esi, dword [ebp - 0x5cb4]
mov eax, 0x40
mov dword [ebp - 0x5ca8], edx
mov dword [ebp - 0x5ca0], eax
cmp dword [edx], 0
jne 0x528049
cmp byte [ecx + 0x5f4], 0
je 0x528049
call fcn.0052bb00
lea eax, [ebp - 0x5cb4]
mov dword [esi - 0x20], 0
push eax
lea eax, [esi - 0x18]
mov dword [esi - 0x24], 0
push esi
push eax
mov byte [esi - 0x1c], 0
mov dword [ebp - 0x5cb4], 0
call fcn.0051d1d0
lea eax, [ebp - 0x5cb4]
mov dword [ebp - 0x5cb4], 0
push eax
lea edi, [esi + 0x18]
push edi
push esi
call fcn.0051d1d0
mov ecx, dword [ebp - 0x5cc8]
add esp, 0x18
mov edx, dword [ebp - 0x5ca8]
mov eax, dword [ebp - 0x5ca0]
mov dword [edi], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0
add edx, 4
add ecx, 0x1208
add esi, 0x58
mov dword [ebp - 0x5ca8], edx
sub eax, 1
mov dword [ebp - 0x5cc8], ecx
mov dword [ebp - 0x5ca0], eax
jne 0x527fa1
mov esi, dword [ebp - 0x5cc4]
xor ecx, ecx
mov dword [ebp - 0x5ca0], ecx
lea eax, [esi + 0x527070]
lea edi, [esi + 0x52b244]
mov dword [ebp - 0x5c94], eax
cmp ecx, dword [esi + 0x527570]
je 0x5280b9
cmp dword [eax], 0
je 0x5280b9
mov ecx, dword [esi + 0x526820]
push 1
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
lea eax, [edi - 0x10]
push eax
call edx
test al, al
je 0x5280b9
mov al, 1
jmp 0x5280bb
xor al, al
mov byte [edi + 0x5db], al
mov eax, dword [ebp - 0x5c94]
cmp dword [eax], 0
je 0x5281cd
lea ecx, [edi - 0x10]
lea eax, [esi + 0x44d67c]
push ecx
mov ecx, eax
call fcn.004842e0
test al, al
je 0x528128
push 1
lea eax, [edi - 0x10]
push eax
lea ecx, [esi + 0x44d67c]
call fcn.00484430
mov byte [edi + 0x5dd], al
lea ecx, [esi + 0x44d67c]
push 3
lea eax, [edi - 0x10]
push eax
call fcn.00484430
mov byte [edi + 0x5df], al
lea eax, [edi - 0x10]
push 2
push eax
lea eax, [esi + 0x44d67c]
mov ecx, eax
call fcn.00484430
jmp 0x528138
mov byte [edi + 0x5df], 0
xor al, al
mov byte [edi + 0x5dd], 0
mov byte [edi + 0x5e1], al
lea eax, [esi + 0x44d67c]
push edi
mov ecx, eax
call fcn.004842e0
test al, al
je 0x528176
push 4
push edi
lea ecx, [esi + 0x44d67c]
call fcn.00484430
mov byte [edi + 0x5de], al
lea eax, [esi + 0x44d67c]
push 5
push edi
mov ecx, eax
call fcn.00484430
jmp 0x52817f
mov byte [edi + 0x5de], 0
xor al, al
mov byte [edi + 0x5e0], al
lea ecx, [esi + 0x44d6a0]
lea eax, [edi - 0x10]
push eax
call fcn.0047ed00
test al, al
je 0x5281be
lea eax, [edi - 0x10]
push eax
lea ecx, [esi + 0x44d6a0]
call fcn.0047ed40
mov cl, al
shr eax, 1
and cl, 1
and al, 1
mov byte [edi + 0x5e2], cl
mov byte [edi + 0x5e3], al
jmp 0x5281c7
mov word [edi + 0x5e2], 0
mov eax, dword [ebp - 0x5c94]
mov ecx, dword [ebp - 0x5ca0]
cmp ecx, dword [esi + 0x527570]
je 0x5281fc
cmp dword [eax], 0
je 0x5281fc
mov ecx, dword [esi + 0x526824]
push 1
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
lea eax, [edi - 0x10]
push eax
call edx
test al, al
je 0x5281fc
mov al, 1
jmp 0x5281fe
xor al, al
mov ecx, dword [ebp - 0x5ca0]
mov byte [edi + 0x5dc], al
inc ecx
mov eax, dword [ebp - 0x5c94]
add edi, 0x1208
add eax, 4
mov dword [ebp - 0x5ca0], ecx
mov dword [ebp - 0x5c94], eax
cmp ecx, 0x40
jl 0x528090
push 0x100
lea eax, [esi + 0x527070]
lea ecx, [esi + 0x527270]
push eax
push ecx
call fcn.006205c0
add esp, 0xc
lea ecx, [ebp - 0x1018]
lea edi, [esi + 0x527370]
push 0x20
call fcn.0051afc0
push esi
push dword [ebp - 0x1014]
lea eax, [esi + 0x527270]
mov dword [ebp - 4], 0
push dword [ebp - 0x1018]
push 0x40
push edi
push eax
call fcn.0051d010
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1014], 0x400
jbe 0x5282a4
push dword [ebp - 0x1018]
call fcn.005308b0
add esp, 4
mov al, byte [esi + 0x526c45]
lea edi, [esi + 0x527170]
mov byte [ebp - 0x5cb4], al
lea eax, [esi + 0x527270]
push 0x100
push eax
push edi
call fcn.006205c0
add esp, 0xc
lea ecx, [ebp - 0x1018]
push 0x20
call fcn.0051afc0
push dword [ebp - 0x5cb4]
lea eax, [esi + 0x527270]
mov dword [ebp - 4], 1
push dword [ebp - 0x1014]
push dword [ebp - 0x1018]
push 0x40
push eax
push edi
call fcn.0051cf60
add esp, 0x18
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1014], 0x400
jbe 0x528324
push dword [ebp - 0x1018]
call fcn.005308b0
add esp, 4
xor eax, eax
mov dword [ebp - 0x5ca0], eax
mov dword [ebp - 0x5c9c], eax
lea edx, [esi + 0x527370]
xor ecx, ecx
lea edx, [edx + eax*4]
mov dword [ebp - 0x5c98], ecx
mov dword [ebp - 0x5ca8], edx
nop dword [eax]
cmp eax, 0x40
jge 0x5283ae
mov edx, dword [edi]
test edx, edx
je 0x52839f
push dword [edx + 4]
lea ecx, [esi + 0x574a9c]
call fcn.00630620
mov ecx, dword [ebp - 0x5c98]
cmp eax, dword [ebp - 0x5c9c]
jne 0x528399
mov edx, dword [ebp - 0x5ca8]
mov eax, dword [edi]
mov dword [edx], eax
mov eax, dword [ebp - 0x5ca0]
inc eax
add edx, 4
mov dword [ebp - 0x5ca0], eax
mov dword [ebp - 0x5ca8], edx
jmp 0x52839f
mov eax, dword [ebp - 0x5ca0]
inc ecx
add edi, 4
mov dword [ebp - 0x5c98], ecx
cmp ecx, 0x40
jl 0x528350
mov ecx, dword [ebp - 0x5c9c]
lea edi, [esi + 0x527170]
inc ecx
mov dword [ebp - 0x5c9c], ecx
cmp ecx, 0x40
jle 0x528332
xor eax, eax
lea edi, [esi + 0x527270]
mov dword [ebp - 0x5ca0], eax
mov dword [ebp - 0x5c9c], eax
nop
lea edx, [esi + 0x527470]
xor ecx, ecx
lea edx, [edx + eax*4]
mov dword [ebp - 0x5c98], ecx
mov dword [ebp - 0x5ca8], edx
cmp eax, 0x40
jge 0x528455
mov edx, dword [edi]
test edx, edx
je 0x528446
push dword [edx + 4]
lea ecx, [esi + 0x574a9c]
call fcn.00630620
mov ecx, dword [ebp - 0x5c98]
cmp eax, dword [ebp - 0x5c9c]
jne 0x528440
mov edx, dword [ebp - 0x5ca8]
mov eax, dword [edi]
mov dword [edx], eax
mov eax, dword [ebp - 0x5ca0]
inc eax
add edx, 4
mov dword [ebp - 0x5ca0], eax
mov dword [ebp - 0x5ca8], edx
jmp 0x528446
mov eax, dword [ebp - 0x5ca0]
inc ecx
add edi, 4
mov dword [ebp - 0x5c98], ecx
cmp ecx, 0x40
jl 0x5283f7
mov ecx, dword [ebp - 0x5c9c]
lea edi, [esi + 0x527270]
inc ecx
mov dword [ebp - 0x5c9c], ecx
cmp ecx, 0x40
jle 0x5283e0
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x5c80]
push edx
mov eax, dword [ecx]
call dword [eax + 0xa0]
lea ecx, [ebp - 0x5dec]
call fcn.00497870
cmp byte [ebp - 0x5a48], 0x30
je 0x528522
lea eax, [ebp - 0x5a48]
push 0x6b2448
push eax
call fcn.00623ad0
add esp, 8
test eax, eax
je 0x5284f2
lea eax, [ebp - 0x5a48]
push 0x6b244c
push eax
call fcn.00623ad0
add esp, 8
test eax, eax
je 0x5284f2
lea eax, [ebp - 0x5a48]
push 0x6b2450
push eax
call fcn.00623ad0
add esp, 8
test eax, eax
je 0x5284f2
mov dword [esi + 0x526c40], 1
jmp 0x528522
imul eax, dword [0x780c78], 0xbc
push 0x21
add eax, 0x52b0b0
add eax, esi
push eax
lea eax, [ebp - 0x5dec]
push eax
call fcn.00620550
add esp, 0xc
neg eax
sbb eax, eax
and eax, 2
mov dword [esi + 0x526c40], eax
xor edi, edi
mov ecx, dword [esi + 0x5267f8]
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
test al, al
jne 0x52854a
inc edi
cmp edi, 4
jl 0x528524
jmp 0x5285d5
imul eax, dword [0x780c78], 0xbc
push 0xbc
add eax, 0x52b0b0
add eax, esi
push eax
lea eax, [ebp - 0x5dec]
push eax
call fcn.00620550
add esp, 0xc
test eax, eax
je 0x5285d5
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x18], 6
mov word [ebp - 0x14], 0
call fcn.00611270
imul eax, dword [0x780c78], 0xbc
add eax, esi
xor edi, edi
mov esi, eax
nop dword [eax]
push dword [esi + edi*4 + 0x52b0b0]
lea ecx, [ebp - 0x824]
call fcn.00610f30
inc edi
cmp edi, 0x2f
jb 0x5285a0
mov esi, dword [ebp - 0x5cc4]
lea edx, [ebp - 0x824]
push 0x18
push edx
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [ecx]
call dword [eax + 0xc0]
xor edi, edi
nop word [eax + eax]
cmp byte [edi + esi + 0x575ea8], 0
jne 0x528656
cmp dword [esi + 0x527050], 0
je 0x528656
cmp edi, 1
jne 0x528609
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
test al, al
je 0x528656
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x18], 0x1a
mov word [ebp - 0x14], 0
call fcn.00611270
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x64]
call eax
push eax
lea ecx, [ebp - 0x824]
call fcn.00610f30
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x824]
push 1
push edx
push edi
mov eax, dword [ecx]
call dword [eax + 0xbc]
mov byte [edi + esi + 0x575ea8], 1
inc edi
cmp edi, 2
jl 0x5285e0
cmp byte [esi + 0x527580], 0
je 0x5286c7
cmp byte [esi + 0x575e59], 0
je 0x5286c7
mov edi, dword [esi + 0x5267f8]
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x18], 0x10030
mov word [ebp - 0x14], 0
call fcn.00611270
push 2
lea ecx, [ebp - 0x824]
call fcn.00610f30
cmp byte [ebp - 0x1c], 0
jne 0x5286b2
mov eax, dword [edi]
lea ecx, [ebp - 0x824]
push 1
push ecx
mov ecx, edi
call dword [eax + 0xc0]
mov eax, dword [0x780c78]
mov dword [esi + eax*4 + 0x575eac], 2
jmp 0x528741
mov eax, dword [0x780c78]
mov edi, dword [0x782908]
mov eax, dword [esi + eax*4 + 0x575eac]
cmp eax, 0xffffffff
je 0x5286e2
cmp eax, edi
je 0x528741
mov eax, dword [esi + 0x5267f8]
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x5cb4], eax
mov dword [ebp - 0x18], 0x10030
mov word [ebp - 0x14], 0
call fcn.00611270
push edi
lea ecx, [ebp - 0x824]
call fcn.00610f30
cmp byte [ebp - 0x1c], 0
jne 0x52872f
mov ecx, dword [ebp - 0x5cb4]
lea edx, [ebp - 0x824]
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 0xc0]
mov eax, dword [0x780c78]
mov ecx, dword [0x782908]
mov dword [esi + eax*4 + 0x575eac], ecx
cmp byte [esi + 0x1ad9], 0
movss xmm2, dword [esi + 0x1adc]
movss dword [ebp - 0x5c94], xmm2
je 0x528794
movss xmm0, dword [esi + 0x1ae0]
comiss xmm0, xmm2
jbe 0x528774
movaps xmm2, xmm0
movss dword [ebp - 0x5c94], xmm2
jmp 0x528794
comiss xmm2, xmm0
jbe 0x528794
movss xmm0, dword [esi + 0x581bcc]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x528794
movaps xmm2, xmm0
movss dword [ebp - 0x5c94], xmm0
ucomiss xmm2, dword [esi + 0x581bcc]
lahf
test ah, 0x44
jp 0x5287f2
mov eax, dword [esi + 0x5267f0]
movd xmm1, dword [eax + 8]
movd xmm0, dword [eax + 0xc]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
ucomiss xmm1, dword [esi + 0x581bd0]
lahf
test ah, 0x44
jp 0x5287f2
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
test al, al
je 0x528928
cmp byte [esi + 0x581bd4], 0
jne 0x528928
movss xmm2, dword [ebp - 0x5c94]
mov eax, dword [esi + 0x5267f0]
lea ecx, [ebp - 0x5cac]
push ecx
lea ecx, [ebp - 0x5cb4]
push ecx
movd xmm1, dword [eax + 8]
lea ecx, [esi + 0x574a28]
movd xmm0, dword [eax + 0xc]
sub esp, 8
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm2
divss xmm1, xmm0
movss dword [esp], xmm1
call fcn.00539f90
cvttss2si eax, dword [ebp - 0x5cac]
mov ecx, dword [esi + 0x5267f8]
cvttss2si edi, dword [ebp - 0x5cb4]
mov dword [ebp - 0x5cc0], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x12c]
call eax
movss xmm0, dword [ebp - 0x5c94]
lea ecx, [ebp - 0x824]
movss dword [eax + 0x19c], xmm0
mov dword [ebp - 0x18], 0x1002f
mov word [ebp - 0x14], 0
call fcn.00611270
push edi
lea ecx, [ebp - 0x824]
call fcn.00610f30
push dword [ebp - 0x5cc0]
lea ecx, [ebp - 0x824]
call fcn.00610f30
movss xmm0, dword [ebp - 0x5c94]
ucomiss xmm0, dword [esi + 0x581bcc]
lahf
test ah, 0x44
jnp 0x5288cc
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x824]
push 1
push edx
push 0
mov eax, dword [ecx]
call dword [eax + 0xbc]
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
test al, al
je 0x5288f6
mov ecx, dword [esi + 0x5267f8]
lea edx, [ebp - 0x824]
push 1
push edx
push 1
mov eax, dword [ecx]
call dword [eax + 0xbc]
mov eax, dword [esi + 0x5267f0]
movss xmm0, dword [ebp - 0x5c94]
movss dword [esi + 0x581bcc], xmm0
movd xmm1, dword [eax + 8]
movd xmm0, dword [eax + 0xc]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [esi + 0x581bd0], xmm1
mov ecx, dword [esi + 0x5267f8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov byte [esi + 0x581bd4], al
mov eax, dword [esi + 0x525fc4]
mov edi, dword [esi + 0x525fc0]
mov dword [ebp - 0x5cb4], eax
cmp edi, eax
je 0x528967
mov esi, eax
mov ecx, dword [edi]
mov eax, dword [ecx]
call dword [eax + 0x28]
add edi, 4
cmp edi, esi
jne 0x528953
mov esi, dword [ebp - 0x5cc4]
mov ecx, dword [esi + 0x527048]
test ecx, ecx
je 0x52898f
mov edx, dword [esi + 0x52704c]
test edx, edx
je 0x52898f
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
jne 0x52898b
mov eax, dword [ecx + 8]
cmp eax, dword [edx + 8]
je 0x52898f
mov cl, 1
jmp 0x528991
xor cl, cl
cmp dword [0x7812e4], 0
jne 0x5289a6
mov dword [esi + 0x526988], 5
jmp 0x5289ce
mov eax, dword [esi + 0x526988]
test eax, eax
jle 0x5289bd
test cl, cl
jne 0x5289ce
dec eax
mov dword [esi + 0x526988], eax
test eax, eax
jne 0x5289ce
test cl, cl
je 0x5289ce
mov ecx, dword [esi + 0x52681c]
mov eax, dword [ecx]
call dword [eax + 0x3c]
movss xmm1, dword [0x67ed54]
lea edx, [esi + 0x52b280]
xor ecx, ecx
mov dword [ebp - 0x5cc4], edx
mov dword [ebp - 0x5ca8], ecx
lea edi, [esi + 0x52760c]
cmp byte [edi - 0x78], 0
je 0x528bb8
test byte [edi], 2
je 0x528bb8
test byte [edi - 0x58], 2
jne 0x528bb8
cmp dword [0x780420], 0
je 0x528acd
mov eax, dword [esi + 0x527064]
test eax, eax
je 0x528a2e
test byte [eax + 4], 5
jne 0x528acd
mov eax, dword [esi + 0x5267f8]
cmp dword [eax + 8], 4
je 0x528acd
cmp byte [esi + 0x527580], 0
jne 0x528acd
cmp dword [esi + 0x527048], 0
je 0x528acd
cmp ecx, dword [esi + 0x527570]
je 0x528bb8
cmp dword [0x78042c], 0
je 0x528acd
cmp dword [0x780430], 0
je 0x528acd
imul eax, dword [0x780c78], 0xbc
xorps xmm2, xmm2
mov dword [ebp - 0x5cb4], eax
movd xmm0, dword [eax + esi + 0x52b12c]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x528ac1
mov eax, dword [ebp - 0x5cb4]
movd xmm0, dword [eax + esi + 0x52b130]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x528acd
cmp ecx, dword [esi + 0x575fb4]
je 0x528bb8
movd xmm2, dword [edi - 0x18]
movd xmm3, dword [edi - 0x14]
movd xmm0, dword [edi - 0x70]
movd xmm1, dword [edi - 0x6c]
mov eax, dword [esi + 0x5267f8]
mov edx, dword [0x780c78]
cvtdq2ps xmm2, xmm2
push ecx
lea ecx, [esi + 0x574a9c]
push dword [esi + 0x527570]
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
subss xmm2, xmm0
subss xmm3, xmm1
mulss xmm2, dword [eax + edx*4 + 0x28]
mulss xmm3, dword [eax + edx*4 + 0x28]
addss xmm2, xmm0
movss xmm0, dword [0x67b0b4]
movss dword [ebp - 0x5cb4], xmm0
addss xmm3, xmm1
movss dword [ebp - 0x5cb0], xmm2
movss dword [ebp - 0x5cac], xmm3
call fcn.00630570
test al, al
je 0x528b6a
mov eax, dword [ebp - 0x5cc4]
cmp byte [eax], 0
jne 0x528b6a
imul eax, dword [esi + 0x527570], 0x1208
cmp byte [eax + esi + 0x52b280], 0
je 0x528b7f
movd xmm0, dword [0x78290c]
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x67ed54]
jmp 0x528b87
movss xmm0, dword [ebp - 0x5cb4]
push ecx
movss dword [esp], xmm0
lea ecx, [esi + 0x5110a8]
push dword [ebp - 0x5cac]
push dword [ebp - 0x5cb0]
call fcn.004991e0
movss xmm1, dword [0x67ed54]
mov ecx, dword [ebp - 0x5ca8]
mov edx, dword [ebp - 0x5cc4]
inc ecx
add edx, 0x1208
add edi, 0xec
mov dword [ebp - 0x5ca8], ecx
mov dword [ebp - 0x5cc4], edx
cmp ecx, 0x40
jl 0x5289f0
mov ecx, dword [esi + 0x527570]
mov eax, dword [esi + 0x526c30]
cmp ecx, eax
je 0x528bf0
mov dword [esi + 0x575fb4], eax
mov dword [esi + 0x526c30], ecx
mov ecx, esi
mov dword [esi + 0x575fb8], 0
call fcn.0052c360
mov eax, dword [esi + 0x5267f8]
cmp dword [eax + 8], 4
je 0x528c1a
mov ecx, esi
call fcn.0052c9f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0063292f
mov esp, ebp
pop ebp
ret