Function at 0x52f790
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x300
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x48], 0
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x84], edi
test eax, eax
je 0x531dc4
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52f7d0
sub ecx, edx
je 0x531dc4
mov byte [ebp - 0x29], al
mov eax, dword [ebx + 8]
cmp byte [eax + 0xc], 0
movss xmm1, dword [eax + 8]
je 0x52f806
mov eax, dword [edi]
movss xmm0, dword [eax + 0x28]
divss xmm0, dword [0x739a6c]
mov eax, dword [ebx + 8]
mulss xmm1, xmm0
minss xmm1, dword [0x739a48]
movss xmm0, dword [0x739900]
comiss xmm0, xmm1
movss dword [ebp - 0x50], xmm1
jbe 0x52f825
movss dword [ebp - 0x50], xmm0
mov eax, dword [eax]
mov edx, 0x720774
test eax, eax
mov dword [ebp - 0x15c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x158], 0
cmovne edx, eax
mov ecx, edx
movups xmmword [ebp - 0x16c], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52f854
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x16c]
call fcn.00414570
mov edx, dword [ebx + 8]
mov eax, dword [edx + 4]
cmp eax, 8
je 0x52f927
lea eax, [eax + eax*2]
mov esi, dword [eax*4 + 0x72fc88]
lea ecx, [ebp - 0x100]
call fcn.0052d3a0
mov edx, esi
lea edi, [edx + 1]
mov cl, byte [edx]
inc edx
test cl, cl
jne 0x52f893
sub edx, edi
mov ecx, eax
push edx
push esi
call fcn.00413010
push eax
lea ecx, [ebp - 0x1b0]
call fcn.00413f80
mov eax, dword [ebp - 0x158]
cmp eax, 0xf
jbe 0x52f8d2
push eax
push dword [ebp - 0x16c]
lea eax, [ebp - 0x16c]
push eax
call fcn.00414390
add esp, 0xc
movups xmm0, xmmword [ebp - 0x1b0]
lea ecx, [ebp - 0x1b0]
mov byte [ebp - 0x1b0], 0
movups xmmword [ebp - 0x16c], xmm0
movq xmm0, qword [ebp - 0x1a0]
movq qword [ebp - 0x15c], xmm0
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0xf
call fcn.004143d0
lea ecx, [ebp - 0x100]
call fcn.004143d0
mov edi, dword [ebp - 0x84]
cmp dword [ebp - 0x158], 0xf
lea esi, [ebp - 0x16c]
push 1
cmova esi, dword [ebp - 0x16c]
lea ecx, [ebp - 0x300]
call fcn.0040be50
test esi, esi
lea ecx, [ebp - 0x2f0]
mov edx, str.DEFAULT
cmovne edx, esi
call fcn.0040e220
mov dl, 0x5f
mov ecx, eax
call fcn.0046a580
movss xmm0, dword [ebp - 0x50]
mov esi, eax
mulss xmm0, dword [0x739a14]
call fcn.006d4800
push eax
mov ecx, esi
call fcn.00439e40
lea eax, [ebp - 0x1e4]
push eax
lea ecx, [ebp - 0x2e8]
call fcn.0040d4a0
lea ecx, [ebp - 0x300]
call fcn.00404ea0
cmp dword [ebp - 0x1d0], 0xf
lea eax, [ebp - 0x1e4]
push dword [ebp - 0x1d4]
cmova eax, dword [ebp - 0x1e4]
push eax
push 0x811c9dc5
mov dword [ebp - 0x44], 0
call fcn.004107e0
add esp, 0xc
lea ecx, [edi + 0x20]
push eax
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.004100f0
mov eax, dword [eax + 4]
test eax, eax
je 0x52fa04
cmp eax, dword [edi + 0x24]
je 0x52fa04
mov esi, dword [eax + 0x20]
mov eax, dword [edi]
mov dword [ebp - 0x30], esi
mov eax, dword [eax + 0xfc]
mov dword [esi + 0x1c], eax
jmp 0x52fa6c
cmp dword [ebp - 0x158], 0xf
lea ecx, [ebp - 0x44]
movss xmm0, dword [ebp - 0x50]
lea eax, [ebp - 0x16c]
cmova eax, dword [ebp - 0x16c]
mov edx, dword [edi]
push ecx
push ecx
mov ecx, dword [edi + 8]
movss dword [esp], xmm0
push eax
lea eax, [edi + 0x40]
push eax
call fcn.0052d720
mov eax, dword [edi]
add esp, 0x10
mov esi, dword [ebp - 0x44]
mov ecx, edi
mov dword [ebp - 0x30], esi
mov eax, dword [eax + 0xfc]
mov dword [esi + 0x1c], eax
call fcn.005321c0
lea eax, [ebp - 0x1e4]
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [edi + 0x20]
call fcn.00533150
mov eax, dword [eax]
mov dword [eax + 0x20], esi
mov eax, dword [esi + 0x24]
cmp eax, dword [esi + 0x28]
je 0x531d2a
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x154]
push dword [ebx + 0xc]
movss xmm0, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
movss dword [ebp - 0x94], xmm0
mov dword [ebp - 0x88], eax
call fcn.004142a0
cmp dword [ebp - 0x140], 0xf
lea edi, [ebp - 0x154]
mov edx, dword [ebp - 0x154]
lea esi, [ebp - 0x154]
cmova edi, edx
lea eax, [ebp - 0x154]
add edi, dword [ebp - 0x144]
cmp dword [ebp - 0x140], 0xf
push 0xd
cmova esi, edx
add esi, dword [ebp - 0x144]
cmp dword [ebp - 0x140], 0xf
push esi
cmova eax, edx
push eax
call fcn.005aec10
cmp eax, esi
je 0x52fb04
lea ecx, [eax + 1]
cmp ecx, esi
je 0x52fb04
mov dl, byte [ecx]
cmp dl, 0xd
je 0x52faff
mov byte [eax], dl
inc eax
inc ecx
cmp ecx, esi
jne 0x52faf5
push edi
push eax
lea eax, [ebp - 0xcc]
push eax
lea ecx, [ebp - 0x154]
call fcn.0046a500
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [eax]
mov eax, dword [ecx + 0xd0]
lea edi, [ecx + 0xd8]
test al, 1
jne 0x52fbfe
or eax, 1
mov dword [edi], 0x737c14
push 1
mov dword [ecx + 0xd0], eax
call fcn.005ae132
mov dword [edi + 0xc], eax
xorps xmm0, xmm0
movups xmmword [edi + 0x10], xmm0
mov dword [edi + 0x20], 0
add esp, 4
mov dword [edi + 0x24], 0xf
mov byte [edi + 0x10], 0
movups xmmword [edi + 0x28], xmm0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 3
mov dword [edi + 0x28], 0
push 0x10
mov word [edi + 0x48], 0
mov byte [edi + 0x4a], 0
call fcn.005ab82c
mov esi, eax
lea ecx, [ebp - 0x1cc]
add esp, 4
mov dword [esi + 4], 0
push 0x737c10
mov dword [esi], 0x737c18
mov dword [esi + 8], 0xffffffff
mov dword [esi + 0xc], 4
call fcn.004112e0
lea ecx, [ebp - 0x1cc]
call fcn.00411390
push esi
mov ecx, edi
mov dword [esi], 0x737c40
call fcn.00532db0
push 0x6dab20
call fcn.005ab8f0
add esp, 4
cmp dword [ebp - 0x140], 0xf
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 0x144]
xorps xmm0, xmm0
cmova edx, dword [ebp - 0x154]
mov ecx, edi
add eax, edx
mov dword [ebp - 0xf0], 0
push eax
push edx
lea eax, [ebp - 0x240]
mov dword [ebp - 0xec], 3
movups xmmword [ebp - 0x100], xmm0
push eax
mov dword [ebp - 0x100], 0
call fcn.005328b0
cmp dword [ebp - 0x22c], 3
lea esi, [ebp - 0x240]
cmova esi, dword [ebp - 0x240]
mov ecx, esi
cmp dword [esi], 0
je 0x52fdaf
mov eax, dword [esi]
cmp eax, 0xa
je 0x52fc82
mov eax, dword [esi + 4]
add esi, 4
test eax, eax
jne 0x52fc73
mov eax, esi
sub eax, ecx
sar eax, 2
push eax
push ecx
lea ecx, [ebp - 0x100]
call fcn.00532690
mov edx, dword [ebp - 0x88]
test edx, edx
je 0x52fcb3
mov ecx, dword [ebp - 0x1c]
mov eax, ecx
sub eax, dword [ebp - 0x20]
sar eax, 2
cmp eax, edx
jae 0x52fd9b
push 0x1c
call fcn.005ab82c
mov edi, eax
lea ecx, [ebp - 0x100]
mov eax, dword [ebp - 0xf0]
add esp, 4
cmp dword [ebp - 0xec], 3
xorps xmm0, xmm0
cmova ecx, dword [ebp - 0x100]
mov dword [ebp - 0x40], ecx
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
cmp eax, 0x3ffffffe
ja 0x531dd1
cmp eax, 3
ja 0x52fd12
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], 3
movups xmm0, xmmword [ecx]
movups xmmword [edi], xmm0
jmp 0x52fd5e
or eax, 3
cmp eax, 0x3ffffffe
jbe 0x52fd23
mov eax, 0x3ffffffe
jmp 0x52fd2e
cmp eax, 4
mov ecx, 4
cmovb eax, ecx
lea edx, [ebp - 0x44]
mov dword [ebp - 0x44], eax
call fcn.00533ff0
mov edx, dword [ebp - 0xf0]
mov ecx, dword [ebp - 0x44]
mov dword [edi + 0x14], ecx
mov dword [edi], eax
lea ecx, [edx*4 + 4]
mov dword [edi + 0x10], edx
push ecx
push dword [ebp - 0x40]
push eax
call fcn.005c3580
add esp, 0xc
or dword [ebp - 0x48], 1
mov byte [edi + 0x18], 0
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x40], edi
cmp eax, dword [ebp - 0x18]
je 0x52fd79
mov dword [eax], edi
add dword [ebp - 0x1c], 4
jmp 0x52fd86
lea ecx, [ebp - 0x40]
push ecx
push eax
lea ecx, [ebp - 0x20]
call fcn.00533690
cmp dword [esi], 0
je 0x52fdaf
add esi, 4
mov ecx, esi
cmp dword [esi], 0
jne 0x52fc71
jmp 0x52fdaf
mov edx, dword [ebx + 8]
mov esi, dword [ecx - 4]
mov ecx, esi
mov dl, byte [edx + 0x18]
call fcn.0052f710
mov byte [esi + 0x18], 0
lea ecx, [ebp - 0x240]
call fcn.005346c0
mov eax, dword [ebp - 0xec]
cmp eax, 3
jbe 0x52fdd4
mov edx, dword [ebp - 0x100]
push eax
call fcn.00534680
add esp, 4
xor eax, eax
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x34], eax
xorps xmm0, xmm0
mov dword [ebp - 0xa0], eax
xorps xmm2, xmm2
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x30]
movss dword [ebp - 0xc8], xmm0
movss dword [ebp - 0x130], xmm0
movss dword [ebp - 0x44], xmm0
mov eax, dword [eax + 0x24]
movss dword [ebp - 0x60], xmm2
movss dword [ebp - 0x90], xmm2
mov eax, dword [eax + 4]
mov dword [ebp - 0x8c], eax
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x20]
sar eax, 6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xbc], xmm0
call fcn.00438990
xor ecx, ecx
mov edi, dword [ebp - 0x1c]
mov eax, edi
mov esi, dword [ebp - 0x20]
sub eax, esi
movss xmm0, dword [ebp - 0xc8]
sar eax, 2
mov dword [ebp - 0x80], ecx
movss dword [ebp - 0x3c], xmm0
cmp ecx, eax
jae 0x531530
mov eax, dword [esi + ecx*4]
xorps xmm0, xmm0
movups xmmword [ebp - 0xb8], xmm0
mov dword [ebp - 0xa8], 0
mov edi, eax
mov dword [ebp - 0xa4], 0
cmp dword [eax + 0x14], 3
mov esi, dword [eax + 0x10]
mov dword [ebp - 0x10], eax
jbe 0x52fea6
mov edi, dword [eax]
cmp esi, 0x3ffffffe
ja 0x531dd1
cmp esi, 3
ja 0x52fed4
mov ecx, 3
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0xa4], ecx
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0xb8], xmm0
jmp 0x52ff2a
mov eax, esi
or eax, 3
cmp eax, 0x3ffffffe
jbe 0x52fee7
mov eax, 0x3ffffffe
jmp 0x52fef2
cmp eax, 4
mov ecx, 4
cmovb eax, ecx
lea edx, [ebp - 0x54]
mov dword [ebp - 0x54], eax
call fcn.00533ff0
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0xa4], ecx
lea ecx, [esi*4 + 4]
push ecx
push edi
push eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xa8], esi
call fcn.005c3580
mov ecx, dword [ebp - 0xa4]
add esp, 0xc
mov esi, dword [ebp - 0x84]
lea edx, [ebp - 0x74]
mov edi, dword [ebp - 0x30]
lea eax, [ebp - 0xb8]
cmp ecx, 3
mov dword [ebp - 0x78], 0
push edx
cmova eax, dword [ebp - 0xb8]
lea ecx, [esi + 0x40]
mov edx, dword [esi + 8]
push eax
push edi
push ecx
mov ecx, dword [esi]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
call fcn.0052db90
mov eax, dword [edi + 0x24]
add esp, 0x10
cmp eax, dword [edi + 0x28]
je 0x5314e8
mov esi, dword [ebp - 0x70]
xor ecx, ecx
mov edx, dword [ebp - 0x74]
mov eax, esi
sub eax, edx
mov dword [ebp - 0x4c], 0
sar eax, 4
xorps xmm0, xmm0
imul eax, eax, 0xaaaaaaab
xorps xmm5, xmm5
xorps xmm7, xmm7
movss dword [ebp - 0x120], xmm0
xorps xmm4, xmm4
movss dword [ebp - 0x138], xmm5
xorps xmm6, xmm6
movss dword [ebp - 0x13c], xmm7
movss dword [ebp - 0x134], xmm4
movss dword [ebp - 0x11c], xmm6
mov byte [ebp - 0x7c], 0
mov dword [ebp - 0x128], 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x24], esi
test eax, eax
je 0x531270
lea esi, [ecx + ecx*2]
shl esi, 4
add esi, edx
mov dword [ebp - 0x64], esi
call fcn.006cede0
cmp dword [esi + 0x14], 3
mov edi, eax
mov dword [ebp - 0x40], edi
mov ecx, esi
jbe 0x530010
mov ecx, dword [esi]
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push ecx
push edi
call fcn.006ceb40
add esp, 0x14
push edi
call fcn.006cf140
add esp, 4
push 0
push 0
push edi
push dword [esi + 0x20]
call fcn.006d20c0
push edi
call fcn.006cf130
add esp, 0x14
mov dword [ebp - 4], eax
push 0
push edi
call fcn.006cf0b0
push 0
push edi
mov dword [ebp - 8], eax
call fcn.006cf0d0
mov dword [ebp - 0x5c], eax
add esp, 0x10
mov eax, dword [ebp - 0x30]
xor edi, edi
mov dword [ebp - 0x58], 0xffffffff
mov ecx, dword [eax + 0x24]
mov edx, dword [eax + 0x28]
mov dword [ebp - 0xc], ecx
mov ecx, edx
sub ecx, dword [eax + 0x24]
sar ecx, 2
imul eax, ecx, 0xaaaaaaab
test eax, eax
je 0x5300c3
mov eax, dword [esi + 0x1c]
xor esi, esi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
mov ecx, eax
nop
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x28]
cmp dword [esi + eax + 4], ecx
mov ecx, dword [ebp - 0x14]
je 0x5300bc
mov eax, edx
inc edi
sub eax, ecx
add esi, 0xc
sar eax, 2
imul eax, eax, 0xaaaaaaab
cmp edi, eax
mov eax, dword [ebp - 0xc]
jb 0x530090
mov esi, dword [ebp - 0x58]
jmp 0x5300c6
mov esi, edi
mov dword [ebp - 0x58], esi
jmp 0x5300c6
or esi, 0xffffffff
cmp dword [ebp - 4], 0
mov dword [ebp - 0x28], 0
jbe 0x5311eb
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 8]
lea edx, [edi + 0xc]
sub edi, eax
lea ecx, [eax + 8]
mov dword [ebp - 0x5c], edi
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x14], ecx
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push dword [ecx - 8]
mov ecx, dword [ebp - 0x84]
push esi
push dword [edi + 0x1c]
push dword [ebp - 0x30]
lea edx, [ecx + 0x40]
push dword [ecx]
mov ecx, dword [ecx + 8]
call fcn.0052e4e0
add esp, 0x18
cmp eax, 2
jne 0x53044f
cmp byte [ebp - 0x29], 0
mov ecx, dword [ebx + 0x10]
jne 0x53043c
test ecx, ecx
je 0x530143
cmp byte [ecx + 0x58], 0
lea eax, [ecx + 0x58]
jne 0x530447
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp eax, ecx
je 0x53015c
nop
mov edx, dword [eax + 8]
dec dword [edx + 0x2c]
mov eax, dword [eax]
cmp eax, ecx
jne 0x530150
lea ecx, [ebp - 0x18c]
call fcn.004f6770
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 0x29], 1
mov esi, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x50]
cmp esi, edi
je 0x530190
lea ecx, [esi + 8]
call fcn.00427a90
add esi, 0x14
cmp esi, edi
jne 0x530178
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x4c]
mov dword [ecx + 0x50], eax
mov edi, dword [ecx + 0x7c]
mov esi, dword [edi]
cmp esi, edi
je 0x5301c5
nop dword [eax]
mov eax, dword [esi + 0xc]
push dword [eax + 4]
call fcn.005edfc0
mov eax, dword [esi + 0xc]
add esp, 4
mov dword [eax + 4], 0
mov eax, dword [esi + 0xc]
mov byte [eax + 0x30], 1
mov esi, dword [esi]
cmp esi, edi
jne 0x5301a0
push dword [ebp - 0x40]
call fcn.006ceeb0
mov eax, dword [ebp - 0x1c]
add esp, 4
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x3c], eax
cmp esi, eax
je 0x530202
nop dword [eax]
mov edi, dword [esi]
test edi, edi
je 0x5301fb
mov ecx, edi
call fcn.005346c0
push 0x1c
push edi
call fcn.005ab85c
mov eax, dword [ebp - 0x3c]
add esp, 8
add esi, 4
cmp esi, eax
jne 0x5301e0
lea ecx, [ebp - 0x74]
call fcn.00532ed0
mov ecx, dword [ebp - 0xa4]
cmp ecx, 3
jbe 0x53024a
mov edx, dword [ebp - 0xb8]
lea ecx, [ecx*4 + 4]
mov eax, edx
cmp ecx, 0x1000
jb 0x530240
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 3
mov dword [ebp - 0xb8], 0
call fcn.00435d60
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x5302e6
mov edi, dword [ebp - 0x9c]
mov esi, ecx
cmp esi, edi
je 0x530298
lea ecx, [esi + 4]
call fcn.00532ed0
add esi, 0x10
cmp esi, edi
jne 0x530286
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x50]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff0
cmp edx, 0x1000
jb 0x5302be
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push edx
push ecx
call fcn.005ab85c
add esp, 8
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x530332
mov ecx, dword [ebp - 0x18]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x530313
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x140]
cmp ecx, 0xf
jbe 0x53036c
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x530362
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x1d0]
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0xf
mov byte [ebp - 0x154], 0
cmp ecx, 0xf
jbe 0x5303c1
mov edx, dword [ebp - 0x1e4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x5303b7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 0xf
mov byte [ebp - 0x1e4], 0
cmp ecx, 0xf
jbe 0x530416
mov edx, dword [ebp - 0x16c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x53040c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov edi, dword [ebp - 0x84]
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0xf
mov byte [ebp - 0x16c], 0
jmp 0x52f7e2
lea eax, [ecx + 0x58]
test ecx, ecx
je 0x530675
mov byte [eax], 1
jmp 0x530675
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x530675
lea ecx, [ebp - 0x210]
push ecx
push 3
push dword [eax + 4]
call fcn.005ee130
add esp, 0xc
mov esi, edi
cmp dword [edi + 0x14], 3
jbe 0x530478
mov esi, dword [edi]
mov edx, dword [ebp - 0x14]
mov eax, dword [edi + 0x18]
mov ecx, dword [edx]
add eax, ecx
mov dword [ebp - 0x1b4], eax
mov al, byte [edx - 4]
not al
mov esi, dword [esi + ecx*4]
and al, 1
mov ecx, dword [ebp - 0xc]
mov byte [ebp - 0x1bc], al
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c0], eax
mov eax, dword [ecx - 0xc]
sar eax, 6
mov dword [ebp - 0x1b8], esi
movd xmm2, eax
mov eax, dword [ecx - 8]
sar eax, 6
cvtdq2ps xmm2, xmm2
movd xmm0, eax
mov eax, dword [ebp - 0x5c]
cvtdq2ps xmm0, xmm0
mov ecx, dword [edx + eax]
mov eax, dword [ebp - 0x210]
mov edx, dword [ebp - 0xc]
sar ecx, 6
add eax, ecx
movss dword [ebp - 0x1ac], xmm0
movss dword [ebp - 8], xmm2
mov edx, dword [edx]
sar edx, 6
movd xmm0, eax
mov eax, dword [ebp - 0x20c]
cvtdq2ps xmm0, xmm0
add eax, edx
movss dword [ebp - 0x1b0], xmm2
movss dword [ebp - 0x1a8], xmm0
movd xmm0, eax
mov eax, dword [ebp - 0x208]
add eax, ecx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mov eax, dword [ebp - 0x204]
add eax, edx
movss dword [ebp - 0x1a4], xmm0
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [ebp - 0x1b4]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x1a0], xmm1
movss dword [ebp - 0x19c], xmm0
movss xmm0, dword [ebp - 0x94]
comiss xmm0, dword [0x739804]
jbe 0x53058b
cmp dword [ebp - 0x4c], 0
jbe 0x53058b
cmp esi, 0x20
je 0x53058b
cmp esi, 9
je 0x53058b
cmp esi, 0xd
je 0x53058b
cmp eax, dword [ebp - 0x128]
je 0x53058b
addss xmm1, dword [ebp - 0x120]
comiss xmm1, xmm0
ja 0x530697
lea ecx, [edi + 0x24]
mov esi, eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x128], esi
cmp eax, dword [ecx + 8]
je 0x5305c6
movups xmm0, xmmword [ebp - 0x1c0]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x1b0]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [ebp - 0x1a0]
movq qword [eax + 0x20], xmm0
add dword [ecx + 4], 0x28
jmp 0x5305d8
lea edx, [ebp - 0x1c0]
push edx
push eax
call fcn.005337f0
movss xmm2, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 8], eax
movzx eax, al
xor eax, 0x811c9dc5
inc dword [ebp - 0x4c]
imul ecx, eax, 0x1000193
movzx eax, byte [ebp - 0x37]
addss xmm2, dword [ebp - 0x120]
xor ecx, eax
movzx eax, byte [ebp - 0x36]
imul ecx, ecx, 0x1000193
movss dword [ebp - 0x120], xmm2
xor ecx, eax
movzx eax, byte [ebp - 0x35]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.004301e0
mov ecx, dword [ebp - 0x188]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, dword [ebp - 0x188]
jne 0x530672
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x18c]
inc dword [eax + 0x2c]
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x1fc]
push eax
call fcn.004e7120
mov dword [ebp - 0x128], esi
mov esi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
inc eax
add dword [ebp - 0xc], 0x14
add ecx, 0x14
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], ecx
cmp eax, dword [ebp - 4]
jb 0x5300f1
jmp 0x5311eb
mov edx, dword [ebp - 0x24]
mov eax, edx
mov esi, dword [ebp - 0x74]
sub eax, esi
mov edi, dword [ebp - 0x54]
sar eax, 4
inc edi
imul ecx, eax, 0xaaaaaaab
mov dword [ebp - 0x28], ecx
cmp edi, ecx
jae 0x5306d3
lea esi, [edi + edi*2]
shl esi, 4
add esi, dword [ebp - 0x74]
push ecx
mov ecx, esi
call fcn.00533300
mov edx, esi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x70], edx
jmp 0x530771
jbe 0x530774
mov eax, dword [ebp - 0x6c]
sub eax, esi
sar eax, 4
imul edx, eax, 0xaaaaaaab
cmp edi, edx
jbe 0x53075e
cmp edi, 0x5555555
ja 0x531dd6
mov ecx, edx
mov eax, 0x5555555
shr ecx, 1
sub eax, ecx
cmp edx, eax
jbe 0x53070d
mov eax, 0x5555555
jmp 0x530715
lea eax, [ecx + edx]
cmp eax, edi
cmovb eax, edi
lea edx, [ebp - 8]
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
call fcn.0045f0c0
mov esi, eax
mov edx, edi
mov eax, dword [ebp - 0x28]
sub edx, eax
lea ecx, [eax + eax*2]
shl ecx, 4
add ecx, esi
push ecx
call fcn.00533ac0
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x74]
push esi
call fcn.00533cd0
add esp, 8
lea ecx, [ebp - 0x74]
push dword [ebp - 4]
push edi
push esi
call fcn.00533b50
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x24], eax
jmp 0x530774
sub edi, ecx
push ecx
mov ecx, dword [ebp - 0x24]
mov edx, edi
call fcn.00533ac0
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x70], eax
add esp, 4
mov ecx, dword [ebp - 0x88]
test ecx, ecx
jle 0x530cc0
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x34]
sar eax, 4
inc eax
cmp eax, ecx
jb 0x530cc0
mov eax, dword [ebx + 8]
cmp byte [eax + 0x18], 0
je 0x530c9e
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov edi, dword [esi + 0x18]
add edi, dword [eax]
mov dword [ebp - 0x14], edi
cmp dword [ebp - 0xa8], edi
lea eax, [ebp - 0xb8]
mov esi, edi
xorps xmm0, xmm0
cmovb esi, dword [ebp - 0xa8]
cmp dword [ebp - 0xa4], 3
movups xmmword [ebp - 0x100], xmm0
cmova eax, dword [ebp - 0xb8]
mov dword [ebp - 8], eax
cmp esi, 0x3ffffffe
ja 0x531dd1
cmp esi, 3
ja 0x530821
mov dword [ebp - 0xf0], esi
shl esi, 2
push esi
push eax
lea eax, [ebp - 0x100]
mov dword [ebp - 0xec], 3
push eax
call fcn.005c3580
mov dword [ebp + esi - 0x100], 0
jmp 0x530875
mov eax, esi
or eax, 3
cmp eax, 0x3ffffffe
jbe 0x530834
mov eax, 0x3ffffffe
jmp 0x53083f
cmp eax, 4
mov ecx, 4
cmovb eax, ecx
lea edx, [ebp - 4]
mov dword [ebp - 4], eax
call fcn.00533ff0
mov ecx, dword [ebp - 4]
mov edi, eax
mov dword [ebp - 0xf0], esi
shl esi, 2
push esi
push dword [ebp - 8]
mov dword [ebp - 0x100], edi
push edi
mov dword [ebp - 0xec], ecx
call fcn.005c3580
mov dword [edi + esi], 0
add esp, 0xc
lea ecx, [ebp - 0x100]
push 0x2026
call fcn.00534050
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x1b0]
call fcn.00533f40
mov eax, dword [ebp - 0xec]
cmp eax, 3
jbe 0x5308b4
mov edx, dword [ebp - 0x100]
push eax
call fcn.00534680
add esp, 4
cmp dword [ebp - 0x19c], 3
lea ecx, [ebp - 0x1f0]
push ecx
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x1b0]
cmova eax, dword [ebp - 0x1b0]
push eax
push dword [ebp - 0x30]
mov edx, dword [ecx + 8]
lea eax, [ecx + 0x40]
mov ecx, dword [ecx]
push eax
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f0], 0
mov dword [ebp - 0x1ec], 0
mov dword [ebp - 0x1e8], 0
call fcn.0052db90
mov eax, dword [ebp - 0x1ec]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x1f0]
add esp, 0x10
sub eax, esi
movss dword [ebp - 4], xmm0
sar eax, 4
imul eax, eax, 0xaaaaaaab
movss dword [ebp - 0x64], xmm0
mov dword [ebp - 0x28], eax
test eax, eax
je 0x530a7e
add esi, 0x20
mov dword [ebp - 0x58], esi
call fcn.006cede0
cmp dword [esi - 0xc], 3
mov edi, eax
lea eax, [esi - 0x20]
jbe 0x530959
mov eax, dword [eax]
push 0xffffffffffffffff
push 0
push 0xffffffffffffffff
push eax
push edi
call fcn.006ceb40
add esp, 0x14
push edi
call fcn.006cf140
add esp, 4
push 0
push 0
push edi
push dword [esi]
call fcn.006d20c0
push edi
call fcn.006cf130
add esp, 0x14
mov dword [ebp - 0x5c], eax
push 0
push edi
call fcn.006cf0b0
push 0
push edi
mov dword [ebp - 0xc], eax
call fcn.006cf0d0
add esp, 0x10
mov esi, eax
cmp dword [ebp - 0x5c], 0
jbe 0x530a5d
mov ecx, dword [ebp - 0xc]
sub ecx, esi
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0x58]
push 8
push dword [ecx + esi]
mov eax, dword [eax - 4]
push eax
mov dword [ebp - 8], eax
call fcn.005efd20
add esp, 0xc
test eax, eax
jne 0x530a4d
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 8]
push dword [eax + 0x54]
call fcn.005edff0
add esp, 8
test eax, eax
jne 0x530a4d
lea eax, [ebp - 0x250]
push eax
push 3
push dword [ebp - 0xc0]
call fcn.005ee130
add esp, 0xc
push dword [ebp - 0xc0]
call fcn.005edfc0
mov eax, dword [esi + 8]
add esp, 4
movd xmm0, dword [ebp - 0x248]
sar eax, 6
cvtdq2ps xmm0, xmm0
movd xmm1, eax
mov eax, dword [esi]
cvtdq2ps xmm1, xmm1
sar eax, 6
addss xmm1, dword [ebp - 4]
addss xmm1, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x64], xmm1
addss xmm0, dword [ebp - 4]
movss dword [ebp - 4], xmm0
mov ecx, dword [ebp - 0xc]
add esi, 0x14
sub dword [ebp - 0x5c], 1
jne 0x5309b4
push edi
call fcn.006ceeb0
mov esi, dword [ebp - 0x58]
add esp, 4
add esi, 0x30
sub dword [ebp - 0x28], 1
mov dword [ebp - 0x58], esi
jne 0x530947
movss xmm0, dword [ebp - 0x64]
comiss xmm0, dword [ebp - 0x94]
mov edi, dword [ebp - 0x14]
jbe 0x530ac0
test edi, edi
je 0x530ac0
dec edi
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x14], edi
call fcn.00532ed0
mov eax, dword [ebp - 0x19c]
cmp eax, 3
jbe 0x5307b2
mov edx, dword [ebp - 0x1b0]
push eax
call fcn.00534680
add esp, 4
jmp 0x5307b2
lea ecx, [ebp - 0x1f0]
call fcn.00532ed0
mov eax, dword [ebp - 0x19c]
cmp eax, 3
jbe 0x530ae5
mov edx, dword [ebp - 0x1b0]
push eax
call fcn.00534680
add esp, 4
cmp dword [ebp - 0xa8], edi
lea eax, [ebp - 0xb8]
xorps xmm0, xmm0
cmovb edi, dword [ebp - 0xa8]
cmp dword [ebp - 0xa4], 3
movups xmmword [ebp - 0xe8], xmm0
cmova eax, dword [ebp - 0xb8]
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], eax
cmp edi, 0x3ffffffe
ja 0x531dd1
cmp edi, 3
ja 0x530b65
lea esi, [edi*4]
mov dword [ebp - 0xd8], edi
push esi
push eax
lea eax, [ebp - 0xe8]
mov dword [ebp - 0xd4], 3
push eax
call fcn.005c3580
mov dword [ebp + esi - 0xe8], 0
mov ecx, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xe8]
jmp 0x530bbf
mov eax, edi
or eax, 3
cmp eax, 0x3ffffffe
jbe 0x530b78
mov eax, 0x3ffffffe
jmp 0x530b83
cmp eax, 4
mov ecx, 4
cmovb eax, ecx
lea edx, [ebp - 4]
mov dword [ebp - 4], eax
call fcn.00533ff0
mov esi, dword [ebp - 0x14]
mov edi, eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0xd8], esi
shl esi, 2
push esi
push dword [ebp - 8]
mov dword [ebp - 0xe8], edi
push edi
mov dword [ebp - 0xd4], eax
call fcn.005c3580
mov ecx, dword [ebp - 0x14]
mov dword [esi + edi], 0
mov edx, dword [ebp - 0xd4]
add esp, 0xc
test ecx, ecx
je 0x530c88
cmp edx, 3
lea eax, [ebp - 0xe8]
cmova eax, edi
cmp dword [eax + ecx*4 - 4], 0x2026
je 0x530c88
nop word [eax + eax]
cmp edx, 3
lea eax, [ebp - 0xe8]
cmova eax, edi
mov eax, dword [eax + ecx*4 - 4]
cmp eax, 0x20
je 0x530c0f
cmp eax, 9
je 0x530c0f
cmp eax, 0xd
jne 0x530c41
dec ecx
lea eax, [ebp - 0xe8]
cmp edx, 3
mov dword [ebp - 0xd8], ecx
cmova eax, edi
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp - 0xd8]
test ecx, ecx
je 0x530c41
mov edi, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xd4]
jmp 0x530bf0
push 0x2026
lea ecx, [ebp - 0xe8]
call fcn.00534050
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xe8]
cmp ecx, eax
je 0x530c78
cmp dword [ebp - 0xd4], 3
push dword [ebp - 0xd8]
cmova eax, dword [ebp - 0xe8]
push eax
call fcn.00532690
mov edi, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xd4]
mov byte [ebp - 0x7c], 1
cmp edx, 3
jbe 0x530c98
push edx
mov edx, edi
call fcn.00534680
add esp, 4
mov ecx, dword [ebp - 0x88]
cmp byte [ebp - 0x7c], 0
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x18], 0
jne 0x531193
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
sar eax, 2
mov dword [ebp - 0x80], eax
jmp 0x531193
mov esi, dword [ebp - 0x64]
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xa4]
mov edi, dword [esi + 0x18]
add edi, dword [eax]
mov esi, dword [ebp - 0xb8]
mov dword [ebp - 0xc], edi
cmp edi, 1
jbe 0x530d07
nop
cmp edx, 3
lea eax, [ebp - 0xb8]
cmova eax, esi
mov eax, dword [eax + edi*4]
cmp eax, 0x20
je 0x530cfe
cmp eax, 9
je 0x530cfe
cmp eax, 0xd
jne 0x530d04
dec edi
cmp edi, 1
ja 0x530ce0
mov dword [ebp - 0xc], edi
lea ecx, [edi - 1]
test ecx, ecx
js 0x530d3a
nop
cmp edx, 3
lea eax, [ebp - 0xb8]
cmova eax, esi
mov eax, dword [eax + ecx*4]
cmp eax, 0x20
je 0x530d35
cmp eax, 9
je 0x530d35
cmp eax, 0xd
je 0x530d35
add ecx, 0xffffffff
jns 0x530d10
jmp 0x530d3a
mov edi, ecx
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0xa8]
xorps xmm0, xmm0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x104], 0
movups xmmword [ebp - 0x118], xmm0
cmp eax, edi
jb 0x531ddb
sub eax, edi
or esi, 0xffffffff
cmp eax, 0xffffffff
cmovb esi, eax
cmp edx, 3
lea eax, [ebp - 0xb8]
cmova eax, dword [ebp - 0xb8]
lea eax, [eax + edi*4]
mov dword [ebp - 8], eax
cmp esi, 0x3ffffffe
ja 0x531dd1
cmp esi, 3
ja 0x530dc6
mov dword [ebp - 0x108], esi
shl esi, 2
push esi
push eax
lea eax, [ebp - 0x118]
mov dword [ebp - 0x104], 3
push eax
call fcn.005c3580
mov dword [ebp + esi - 0x118], 0
jmp 0x530e1d
mov eax, esi
or eax, 3
cmp eax, 0x3ffffffe
jbe 0x530dd9
mov eax, 0x3ffffffe
jmp 0x530de4
cmp eax, 4
mov ecx, 4
cmovb eax, ecx
lea edx, [ebp - 4]
mov dword [ebp - 4], eax
call fcn.00533ff0
mov ecx, dword [ebp - 4]
mov edi, eax
mov dword [ebp - 0x108], esi
shl esi, 2
push esi
push dword [ebp - 8]
mov dword [ebp - 0x118], edi
push edi
mov dword [ebp - 0x104], ecx
call fcn.005c3580
mov dword [esi + edi], 0
mov edi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x108]
add esp, 0xc
mov dword [ebp - 8], eax
test eax, eax
je 0x530ec7
mov edi, eax
mov edx, dword [ebp - 0x104]
lea eax, [ebp - 0x118]
mov ecx, dword [ebp - 0x118]
cmp edx, 3
cmova eax, ecx
mov eax, dword [eax]
cmp eax, 0x20
je 0x530e60
cmp eax, 9
je 0x530e60
cmp eax, 0xd
jne 0x530ec4
cmp edx, 3
lea esi, [ebp - 0x118]
lea eax, [ebp - 0x118]
cmova eax, ecx
cmova esi, ecx
sub esi, eax
mov ecx, 1
sar esi, 2
mov eax, edi
sub eax, esi
cmp eax, ecx
cmovb ecx, eax
cmp edx, 3
lea eax, [ebp - 0x118]
cmova eax, dword [ebp - 0x118]
sub edi, ecx
lea edx, [eax + esi*4]
mov eax, edi
sub eax, esi
lea ecx, [edx + ecx*4]
lea eax, [eax*4 + 4]
push eax
push ecx
push edx
call fcn.005c3580
add esp, 0xc
mov dword [ebp - 0x108], edi
test edi, edi
jne 0x530e33
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 0x10]
mov eax, dword [esi + 0x10]
cmp edi, eax
ja 0x530ee7
mov dword [esi + 0x10], edi
mov eax, esi
cmp dword [esi + 0x14], 3
jbe 0x530ede
mov eax, dword [esi]
mov dword [eax + edi*4], 0
jmp 0x530ef2
push ecx
sub edi, eax
mov ecx, esi
push edi
call fcn.00532fb0
push 0x1c
mov byte [esi + 0x18], 1
call fcn.005ab82c
mov esi, eax
xorps xmm0, xmm0
add esp, 4
lea eax, [ebp - 0x118]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
cmp dword [ebp - 0x104], 3
mov edi, dword [ebp - 0x108]
cmova eax, dword [ebp - 0x118]
mov dword [ebp - 8], eax
cmp edi, 0x3ffffffe
ja 0x531dd1
cmp edi, 3
ja 0x530f56
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], 3
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
jmp 0x530f9e
mov eax, edi
or eax, 3
cmp eax, 0x3ffffffe
jbe 0x530f69
mov eax, 0x3ffffffe
jmp 0x530f74
cmp eax, 4
mov ecx, 4
cmovb eax, ecx
lea edx, [ebp - 4]
mov dword [ebp - 4], eax
call fcn.00533ff0
mov ecx, dword [ebp - 4]
mov dword [esi + 0x14], ecx
lea ecx, [edi*4 + 4]
push ecx
push dword [ebp - 8]
mov dword [esi], eax
push eax
mov dword [esi + 0x10], edi
call fcn.005c3580
add esp, 0xc
mov ecx, dword [ebp - 0x80]
or dword [ebp - 0x48], 2
inc ecx
mov byte [esi + 0x18], 0
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], esi
lea edi, [eax + ecx*4]
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x18]
je 0x530fe6
cmp edi, ecx
jne 0x530fc7
mov dword [ecx], esi
add dword [ebp - 0x1c], 4
jmp 0x530ff3
mov eax, dword [ecx - 4]
mov dword [ecx], eax
lea eax, [ecx - 4]
add dword [ebp - 0x1c], 4
sub eax, edi
push eax
sub ecx, eax
push edi
push ecx
call fcn.005c3580
add esp, 0xc
mov dword [edi], esi
jmp 0x530ff3
lea eax, [ebp - 8]
push eax
push edi
lea ecx, [ebp - 0x20]
call fcn.00533690
mov edx, dword [ebp - 0x10]
mov esi, dword [edx + 0x10]
test esi, esi
je 0x531058
cmp dword [edx + 0x14], 3
mov eax, edx
jbe 0x53100b
mov eax, dword [edx]
mov eax, dword [eax + esi*4 - 4]
cmp eax, 0x20
je 0x531020
cmp eax, 9
je 0x531020
cmp eax, 0xd
jne 0x531058
nop
mov ecx, dword [edx + 0x14]
mov eax, edx
cmp ecx, 3
jbe 0x53102c
mov eax, dword [edx]
mov esi, dword [edx + 0x10]
mov eax, dword [eax + esi*4 - 4]
cmp eax, 0x20
je 0x531042
cmp eax, 9
je 0x531042
cmp eax, 0xd
jne 0x531058
dec esi
mov eax, edx
mov dword [edx + 0x10], esi
cmp ecx, 3
jbe 0x53104f
mov eax, dword [edx]
mov dword [eax + esi*4], 0
jmp 0x531020
cmp byte [ebp - 0x7c], 0
jne 0x53116f
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x74]
sub eax, ecx
sar eax, 4
imul edx, eax, 0xaaaaaaab
sub edx, 1
mov dword [ebp - 4], edx
js 0x53116f
lea edi, [edx + edx*2]
shl edi, 4
add edi, 0x18
add edi, ecx
nop word [eax + eax]
mov eax, dword [edi]
lea ecx, [edi - 0x18]
cmp eax, esi
jb 0x5310df
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x24]
sar eax, 3
imul eax, eax, 0x33333333
lea ecx, [ecx - 0xc]
add dword [ebp - 0x4c], eax
call fcn.00532f50
mov eax, dword [ebp - 0x24]
add eax, 0xffffffd0
mov ecx, eax
mov dword [ebp - 0x24], eax
call fcn.005346c0
mov edx, dword [ebp - 4]
sub edi, 0x30
mov eax, dword [ebp - 0x24]
dec edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 4], edx
test edx, edx
jns 0x531090
jmp 0x53116f
mov edx, dword [ecx + 0x10]
sub esi, eax
cmp esi, edx
ja 0x5310fe
mov dword [ecx + 0x10], esi
mov eax, ecx
cmp dword [ecx + 0x14], 3
jbe 0x5310f5
mov eax, dword [ecx]
mov dword [eax + esi*4], 0
jmp 0x53110c
mov eax, esi
push ecx
sub eax, edx
push eax
call fcn.00532fb0
lea ecx, [edi - 0x18]
mov edx, dword [ecx + 0x28]
mov eax, dword [ecx + 0x24]
mov byte [ebp - 0x2a], 1
cmp eax, edx
je 0x53116f
nop word [eax + eax]
mov dword [ebp - 0x64], eax
mov dword [ebp - 8], eax
mov eax, dword [ecx + 0x28]
mov eax, dword [eax - 0x1c]
sub eax, dword [edi]
cmp eax, esi
jb 0x531153
mov eax, dword [ecx + 0x28]
dec dword [ebp - 0x4c]
mov dl, byte [eax - 0x24]
add eax, 0xffffffd8
mov byte [ebp - 0x2a], dl
mov edx, eax
mov dword [ecx + 0x28], eax
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 8]
cmp eax, edx
jne 0x531120
mov eax, dword [ebp - 0x64]
cmp eax, edx
je 0x53116f
mov eax, dword [ebp - 0x7c]
mov ecx, 1
cmp byte [ebp - 0x2a], 0
movzx eax, al
cmove eax, ecx
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x104]
cmp eax, 3
jbe 0x531189
mov edx, dword [ebp - 0x118]
push eax
call fcn.00534680
add esp, 4
mov ecx, dword [ebp - 0x88]
test ecx, ecx
jle 0x5311eb
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x20]
sar eax, 2
cmp eax, ecx
jbe 0x5311eb
mov esi, dword [ebp - 0x1c]
mov eax, esi
sub eax, dword [ebp - 0x20]
sar eax, 2
cmp eax, ecx
jbe 0x5311d4
mov esi, dword [esi - 4]
test esi, esi
je 0x5311ce
mov ecx, esi
call fcn.005346c0
push 0x1c
push esi
call fcn.005ab85c
mov ecx, dword [ebp - 0x88]
add esp, 8
sub dword [ebp - 0x1c], 4
jmp 0x5311a0
mov eax, dword [ebp - 0x1c]
mov esi, dword [eax - 4]
mov ecx, esi
mov eax, dword [ebx + 8]
mov dl, byte [eax + 0x18]
call fcn.0052f710
mov byte [esi + 0x18], 0
push dword [ebp - 0x40]
call fcn.006ceeb0
mov esi, dword [ebp - 0x24]
add esp, 4
mov edx, dword [ebp - 0x74]
mov eax, esi
mov ecx, dword [ebp - 0x54]
sub eax, edx
sar eax, 4
inc ecx
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x54], ecx
cmp ecx, eax
jb 0x52fff1
cmp byte [ebp - 0x7c], 0
je 0x531250
dec dword [ebp - 0x80]
lea ecx, [ebp - 0x74]
call fcn.00532ed0
mov eax, dword [ebp - 0xa4]
cmp eax, 3
jbe 0x5314df
mov edx, dword [ebp - 0xb8]
push eax
call fcn.00534680
mov ecx, dword [ebp - 0x80]
add esp, 4
inc ecx
jmp 0x52fe50
movss xmm4, dword [ebp - 0x134]
movss xmm5, dword [ebp - 0x138]
movss xmm6, dword [ebp - 0x11c]
movss xmm7, dword [ebp - 0x13c]
xorps xmm3, xmm3
xorps xmm1, xmm1
cmp edx, esi
je 0x5312f4
add edx, 0x24
mov ecx, dword [edx + 4]
mov eax, dword [edx]
cmp eax, ecx
je 0x5312ea
nop
movaps xmm0, xmm3
addss xmm0, dword [eax + 0x18]
comiss xmm5, xmm0
jbe 0x5312a0
movaps xmm5, xmm0
movaps xmm0, xmm1
addss xmm0, dword [eax + 0x1c]
comiss xmm7, xmm0
jbe 0x5312b0
movaps xmm7, xmm0
movss xmm2, dword [eax + 0x10]
movss xmm0, dword [eax + 0x20]
maxss xmm0, xmm2
addss xmm0, xmm3
comiss xmm0, xmm4
jbe 0x5312ca
movaps xmm4, xmm0
movaps xmm0, xmm1
addss xmm0, dword [eax + 0x24]
comiss xmm0, xmm6
jbe 0x5312da
movaps xmm6, xmm0
addss xmm1, dword [eax + 0x14]
add eax, 0x28
addss xmm3, xmm2
cmp eax, ecx
jne 0x531290
add edx, 0x30
lea eax, [edx - 0x24]
cmp eax, esi
jne 0x531281
mov eax, dword [ebx + 8]
cmp byte [eax + 0x19], 0
je 0x5313b8
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x18], 0
je 0x5313b8
mov esi, dword [eax + 0x10]
xor edx, edx
xor ecx, ecx
test esi, esi
je 0x5313b8
mov edi, dword [eax + 0x14]
cmp edi, 3
jbe 0x53132a
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
cmp eax, 0x20
je 0x53133c
cmp eax, 9
je 0x53133c
cmp eax, 0xd
jne 0x53133d
inc edx
mov eax, dword [ebp - 0x10]
inc ecx
cmp ecx, esi
jb 0x531320
test edx, edx
jle 0x5313b8
movss xmm2, dword [ebp - 0x94]
subss xmm4, xmm5
mov edi, dword [ebp - 0x24]
movaps xmm1, xmm2
mov eax, dword [ebp - 0x74]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm4
divss xmm1, xmm0
cmp eax, edi
je 0x5313b1
lea esi, [eax + 0x24]
mov edx, dword [esi + 4]
mov eax, dword [esi]
cmp eax, edx
je 0x5313a7
mov ecx, dword [eax + 8]
cmp ecx, 0x20
je 0x531393
cmp ecx, 9
je 0x531393
cmp ecx, 0xd
jne 0x5313a0
movaps xmm0, xmm1
addss xmm0, dword [eax + 0x10]
movss dword [eax + 0x10], xmm0
add eax, 0x28
cmp eax, edx
jne 0x531381
add esi, 0x30
lea eax, [esi - 0x24]
cmp eax, edi
jne 0x531378
movaps xmm4, xmm5
addss xmm4, xmm2
mov esi, dword [ebp - 0x9c]
movaps xmm0, xmm4
subss xmm0, xmm5
mov eax, esi
sub eax, dword [ebp - 0x34]
sar eax, 4
minss xmm5, dword [ebp - 0x130]
movss dword [ebp - 0x78], xmm0
maxss xmm0, dword [ebp - 0x3c]
movss dword [ebp - 0x130], xmm5
movss dword [ebp - 0xc8], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [ebp - 0xbc]
xorps xmm0, xmmword [0x739fa0]
mulss xmm1, xmm0
movss xmm0, dword [ebp - 0x60]
addss xmm7, xmm1
comiss xmm0, xmm7
jbe 0x53142d
movss dword [ebp - 0x60], xmm7
maxss xmm4, dword [ebp - 0x44]
addss xmm6, xmm1
movss dword [ebp - 0x44], xmm4
comiss xmm6, dword [ebp - 0x90]
jbe 0x53144c
movss dword [ebp - 0x90], xmm6
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0x4c]
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x78]
push eax
cmp esi, dword [ebp - 0x50]
je 0x531479
mov edx, esi
call fcn.00533d80
add esp, 4
add esi, 0x10
mov dword [ebp - 0x9c], esi
jmp 0x531497
push esi
lea ecx, [ebp - 0xa0]
call fcn.00533950
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x34], eax
lea ecx, [ebp - 0x74]
call fcn.00532ed0
mov ecx, dword [ebp - 0xa4]
cmp ecx, 3
jbe 0x5314df
mov edx, dword [ebp - 0xb8]
lea ecx, [ecx*4 + 4]
mov eax, edx
cmp ecx, 0x1000
jb 0x5314d5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x80]
inc ecx
jmp 0x52fe50
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp eax, ecx
je 0x531500
mov edx, dword [eax + 8]
dec dword [edx + 0x2c]
mov eax, dword [eax]
cmp eax, ecx
jne 0x5314f4
lea ecx, [ebp - 0x74]
call fcn.00532ed0
mov eax, dword [ebp - 0xa4]
cmp eax, 3
jbe 0x531d20
mov edx, dword [ebp - 0xb8]
push eax
call fcn.00534680
add esp, 4
xor edi, edi
mov dword [ebx + 0x10], edi
jmp 0x531bf5
cmp esi, edi
je 0x531558
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x531551
mov ecx, eax
call fcn.005346c0
push 0x1c
push dword [ebp - 0x3c]
call fcn.005ab85c
add esp, 8
add esi, 4
cmp esi, edi
jne 0x531534
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x9c]
je 0x531d08
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x531d08
lea edi, [eax + eax*2]
mov dword [ebp - 0xd0], 0
lea esi, [eax*4]
mov dword [ebp - 0xcc], 7
lea eax, [ebp - 0xc8]
add edi, edi
lea ecx, [ebp - 0xd0]
mov dword [ebp - 0x138], edi
push eax
push ecx
call fcn.00473d50
xor ecx, ecx
mov dword [ebp - 0x134], eax
add esp, 8
mov dword [ebp - 0x94], ecx
lea ecx, [esi + esi*4]
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x194], 0
mov dword [ebp - 0x190], 0
push ecx
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x48], 0
call fcn.004e6f70
test edi, edi
je 0x531630
cmp edi, 0x7fffffff
ja 0x531de0
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], edi
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.00413d00
lea ecx, [edi + edi]
mov esi, eax
push ecx
push 0
push esi
mov dword [ebp - 0x48], esi
call fcn.005c3040
lea ecx, [esi + edi*2]
add esp, 0x14
mov dword [ebp - 0x94], ecx
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
movss xmm2, dword [ebp - 0x60]
xorps xmm5, xmm5
mov edi, dword [ebp - 0x34]
xorps xmm7, xmm7
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0x58]
mov eax, dword [eax + 0x18]
sar eax, 6
movd xmm1, eax
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x34]
cvtdq2ps xmm1, xmm1
sar eax, 4
movaps xmm0, xmm1
maxss xmm0, dword [ebp - 0x90]
movss dword [ebp - 0x54], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [ebp - 0xbc]
subss xmm1, xmm0
movss xmm0, dword [ebp - 0xbc]
minss xmm1, xmm2
movss dword [ebp - 8], xmm1
nop word [eax + eax]
mov eax, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x11c], edx
cmp eax, edx
je 0x531946
movaps xmm6, xmm5
nop dword [eax]
mov edx, dword [eax + 0x28]
mov esi, dword [eax + 0x24]
mov dword [ebp - 0x13c], edx
cmp esi, edx
je 0x531929
mov edx, dword [ebp - 0x48]
lea eax, [ecx*4]
mov dword [ebp - 0x60], eax
lea eax, [ecx*2 + 1]
add eax, ecx
lea eax, [edx + eax*4]
mov edx, dword [ebp - 0x198]
mov dword [ebp - 0x10], eax
add edx, 0x14
lea eax, [ecx + ecx*4]
shl eax, 4
add edx, eax
mov dword [ebp - 0x28], edx
mov eax, dword [ebx + 8]
movaps xmm0, xmm5
movzx eax, byte [eax + 0xe]
sub eax, 1
je 0x531736
sub eax, 1
jne 0x53174e
movss xmm0, dword [ebp - 0xc8]
subss xmm0, dword [edi]
jmp 0x53174a
movss xmm0, dword [ebp - 0xc8]
subss xmm0, dword [edi]
mulss xmm0, dword [0x7398c0]
addss xmm0, xmm5
mov eax, dword [esi]
movaps xmm1, xmm6
addss xmm1, dword [esi + 0x18]
movaps xmm2, xmm6
movaps xmm3, xmm7
addss xmm2, dword [esi + 0x20]
cmp byte [eax + 0x31], 0
movaps xmm4, xmm7
addss xmm3, dword [esi + 0x24]
addss xmm4, dword [esi + 0x1c]
addss xmm1, xmm0
addss xmm2, xmm0
movss xmm0, dword [eax + 8]
movss dword [ebp - 0xc0], xmm0
movss xmm0, dword [eax + 0xc]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [eax + 0x10]
movss dword [ebp - 0x8c], xmm0
movss xmm0, dword [eax + 0x14]
movss dword [ebp - 0x3c], xmm0
jne 0x5317b4
movss xmm5, dword [0x739900]
movaps xmm0, xmm1
movss dword [ebp - 0x1f8], xmm5
mov eax, dword [ebp - 0x1f8]
unpcklps xmm0, xmm3
movq qword [edx - 0x14], xmm0
movss xmm0, dword [ebp - 0xc0]
mov dword [edx - 0xc], eax
movss dword [ebp - 0xd0], xmm0
movss xmm0, dword [ebp - 0x40]
mov eax, dword [ebp - 0xd0]
mov dword [edx - 8], eax
movss dword [ebp - 0xcc], xmm0
movaps xmm0, xmm2
mov ecx, dword [ebp - 0xcc]
mov dword [edx - 4], ecx
unpcklps xmm0, xmm3
movss xmm3, dword [ebp - 0x8c]
movq qword [edx], xmm0
movss xmm0, dword [ebp - 0x40]
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0x64]
movss dword [ebp - 0x214], xmm5
mov eax, dword [ebp - 0x214]
mov dword [edx + 8], eax
movss dword [ebp - 0x68], xmm3
mov eax, dword [ebp - 0x68]
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], ecx
movss dword [ebp - 0x12c], xmm0
movss xmm0, dword [ebp - 0x3c]
unpcklps xmm1, xmm4
movq qword [edx + 0x14], xmm1
movss dword [ebp - 0x220], xmm5
mov eax, dword [ebp - 0x220]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x12c]
mov dword [edx + 0x20], eax
movss dword [ebp - 0x128], xmm0
mov ecx, dword [ebp - 0x128]
mov dword [edx + 0x24], ecx
unpcklps xmm2, xmm4
movq qword [edx + 0x28], xmm2
movss dword [ebp - 0x6c], xmm5
mov eax, dword [ebp - 0x6c]
mov dword [edx + 0x30], eax
movss dword [ebp - 0x124], xmm3
mov eax, dword [ebp - 0x124]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0x60]
movss dword [ebp - 0x120], xmm0
mov ecx, dword [ebp - 0x120]
mov dword [edx + 0x38], ecx
mov ecx, dword [ebp - 0x10]
movzx eax, ax
mov edx, eax
add dword [ebp - 0x60], 4
mov word [ecx - 4], ax
mov eax, dword [ebp - 0x10]
lea ecx, [edx + 2]
mov word [eax - 2], cx
lea eax, [edx + 1]
mov ecx, dword [ebp - 0x10]
mov word [ecx], ax
mov word [ecx + 2], ax
lea ecx, [edx + 2]
mov eax, dword [ebp - 0x10]
mov word [eax + 4], cx
lea eax, [edx + 3]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x28]
add dword [ebp - 0x10], 0xc
add edx, 0x50
mov dword [ebp - 0x28], edx
mov word [ecx + 6], ax
mov ecx, dword [ebp - 4]
addss xmm6, dword [esi + 0x10]
inc ecx
add esi, 0x28
cmp esi, dword [ebp - 0x13c]
mov dword [ebp - 4], ecx
xorps xmm5, xmm5
jne 0x531714
mov eax, dword [ebp - 0x90]
add eax, 0x30
mov dword [ebp - 0x90], eax
cmp eax, dword [ebp - 0x11c]
jne 0x5316d0
movss xmm0, dword [ebp - 0xbc]
add edi, 0x10
subss xmm7, xmm0
cmp edi, dword [ebp - 0x9c]
jne 0x5316b0
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x53199b
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x53196d
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esi + 0x7c]
lea edx, [esi + 0x5c]
dec dword [eax + 0x20]
mov ecx, dword [edx + 4]
mov eax, dword [ecx]
cmp eax, ecx
je 0x53198f
nop
mov edx, dword [eax + 8]
dec dword [edx + 0x2c]
mov eax, dword [eax]
cmp eax, ecx
jne 0x531980
lea edx, [esi + 0x5c]
mov ecx, edx
call fcn.004f6770
jmp 0x531a29
push 0x80
call fcn.005ab82c
add esp, 4
mov edi, eax
mov dword [ebx + 0x10], edi
push 0x80
push 0
push edi
call fcn.005c3040
mov dword [edi + 4], 8
lea ecx, [edi + 0x5c]
mov dword [edi + 8], 0x41800000
add esp, 0xc
mov byte [edi + 0xc], 1
mov byte [edi + 0xe], 1
mov dword [edi + 0x10], 0
mov byte [edi + 0x18], 1
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0xf
mov byte [edi + 0x1c], 0
mov dword [edi + 0x54], 0
mov byte [edi + 0x58], 0
call fcn.00438990
mov eax, dword [ebx + 8]
lea ecx, [edi + 0x1c]
push dword [ebx + 0xc]
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
mov eax, dword [eax + 0x18]
mov dword [edi + 0x18], eax
call fcn.0040c160
mov esi, edi
mov eax, dword [ebp - 0x84]
mov edi, dword [ebp - 0x48]
push 0
push 0
mov eax, dword [eax]
push 0
push dword [ebp - 0x138]
mov ecx, dword [eax + 0x28dc]
push edi
mov edi, dword [ebp - 0xc4]
mov eax, dword [ecx]
lea edx, [edi*4]
push edx
push dword [ebp - 0x198]
mov eax, dword [eax + 0x20]
push dword [ebp - 0x134]
call eax
movss xmm0, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x48]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebp - 8]
movss dword [esi + 0x44], xmm0
movss xmm0, dword [ebp - 0x44]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x9c]
sub eax, dword [ebp - 0x34]
movss dword [esi + 0x48], xmm0
movss xmm0, dword [ebp - 0x54]
movss dword [esi + 0x4c], xmm0
movss xmm0, dword [ebp - 0xbc]
sar eax, 4
mov dword [esi + 0x54], eax
lea eax, [ebp - 0x18c]
mov dword [esi + 0x7c], ecx
movss dword [esi + 0x50], xmm0
add esi, 0x5c
cmp esi, eax
je 0x531b5c
mov ecx, esi
call fcn.004f6770
mov eax, dword [ebp - 0x18c]
mov dword [esi], eax
mov ecx, dword [esi + 4]
mov eax, dword [ebp - 0x188]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x188], ecx
mov ecx, dword [esi + 8]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x184], ecx
mov ecx, dword [esi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x17c], ecx
mov ecx, dword [esi + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x178], ecx
mov ecx, dword [esi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x174], ecx
mov ecx, dword [esi + 0x1c]
mov dword [esi + 0x1c], eax
mov dword [ebp - 0x170], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x10]
inc dword [ecx + 0x20]
add ecx, 0x58
mov dword [ebp - 0x8c], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x1fc]
push eax
call fcn.004e7120
test edi, edi
je 0x531bb5
mov ecx, dword [ebp - 0x94]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffffe
cmp ecx, 0x1000
jb 0x531bab
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edi
call fcn.005ab85c
add esp, 8
mov edx, dword [ebp - 0x198]
test edx, edx
je 0x531bf2
mov ecx, dword [ebp - 0x190]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x531be8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov edi, dword [ebx + 0x10]
lea ecx, [ebp - 0x18c]
call fcn.00435d60
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x531c65
mov esi, ecx
cmp esi, dword [ebp - 0x9c]
je 0x531c35
mov edi, dword [ebp - 0x9c]
nop dword [eax + eax]
lea ecx, [esi + 4]
call fcn.00532ed0
add esi, 0x10
cmp esi, edi
jne 0x531c20
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x50]
mov eax, ecx
sub edx, ecx
and edx, 0xfffffff0
cmp edx, 0x1000
jb 0x531c5b
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push edx
push ecx
call fcn.005ab85c
add esp, 8
mov edx, dword [ebp - 0x20]
test edx, edx
je 0x531cb1
mov ecx, dword [ebp - 0x18]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x531c92
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [ebp - 0x140]
cmp ecx, 0xf
jbe 0x531ceb
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x531ce1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0xf
mov byte [ebp - 0x154], 0
jmp 0x531d2c
mov ecx, dword [ebp - 0x188]
mov eax, dword [ecx]
cmp eax, ecx
je 0x531d20
mov edx, dword [eax + 8]
dec dword [edx + 0x2c]
mov eax, dword [eax]
cmp eax, ecx
jne 0x531d14
xor edi, edi
mov dword [ebx + 0x10], edi
jmp 0x531bf5
xor edi, edi
mov ecx, dword [ebp - 0x1d0]
cmp ecx, 0xf
jbe 0x531d66
mov edx, dword [ebp - 0x1e4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x531d5c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 0xf
mov byte [ebp - 0x1e4], 0
cmp ecx, 0xf
jbe 0x531db7
mov edx, dword [ebp - 0x16c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x531dad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x531de5
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
call fcn.00414440
call fcn.00410570
call fcn.0040e000
call fcn.00410570
call fcn.005c695f
int3