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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x4e3040]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [0x4e3ef0]
push edi
mov edi, ecx
mov dword [ebp - 0x84], edx
mov ecx, esi
mov dword [ebp - 0x100], edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x68], ecx
mov eax, dword [ecx + 0x172c]
mov byte [eax + 0x86], 1
mov ebx, dword [ecx + 0x172c]
mov dword [ebp - 0xb0], ebx
cmp byte [ebx + 0x88], 0
jne 0x40f7dd
mov edx, dword [ebp + 0x10]
mov eax, edx
shr eax, 0xe
mov ecx, edx
not al
shr ecx, 0x14
and eax, 0xffffff01
and ecx, 0xffffff01
mov dword [ebp - 0x90], eax
mov eax, edx
shr eax, 0xf
and eax, 0xffffff01
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0xf0], eax
test cl, cl
je 0x40f490
call fcn.00412c60
mov esi, dword [0x4e3ef0]
mov dword [ebp - 0x78], esi
mov ecx, dword [ebx + 0x1c0]
xor edx, edx
mov eax, dword [ebx + 0x1c8]
push dword [eax + ecx*4 - 4]
mov ecx, edi
call fcn.004029e0
add esp, 4
mov dword [ebp - 0x88], eax
cmp dword [esi + 0x1754], eax
jne 0x40f4c1
mov byte [esi + 0x175c], 1
mov dword [ebp - 0x1c], eax
mov ecx, edi
cmp edi, 0xffffffff
jae 0x40f4e6
nop dword [eax + eax]
mov dl, byte [ecx]
test dl, dl
je 0x40f4e6
cmp dl, 0x23
jne 0x40f4e0
cmp byte [ecx + 1], dl
je 0x40f4e6
inc ecx
cmp ecx, 0xffffffff
jb 0x40f4d0
movss xmm0, dword [esi + 0x16f4]
mov eax, dword [ebp - 0x100]
movss xmm1, dword [0x4dc768]
mov edi, dword [esi + 0x16f0]
movss dword [ebp - 0x9c], xmm0
movss dword [ebp - 0xfc], xmm1
cmp eax, ecx
jne 0x40f523
xorps xmm7, xmm7
movss dword [ebp - 0xf4], xmm7
jmp 0x40f589
movss xmm3, dword [0x4dc75c]
movaps xmm2, xmm0
push ecx
push ecx
push eax
push ecx
lea eax, [ebp - 0x74]
mov dword [esp], 0xbf800000
push eax
mov ecx, edi
call fcn.0041f990
movss xmm1, dword [ebp - 0x74]
xorps xmm7, xmm7
comiss xmm1, xmm7
jbe 0x40f561
movss xmm0, dword [ebp - 0x9c]
divss xmm0, dword [edi]
subss xmm1, xmm0
addss xmm1, dword [0x4dc6b8]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0xf4], xmm0
movss xmm0, dword [ebp - 0x70]
movss dword [ebp - 0x9c], xmm0
cmp byte [ebp - 0x94], 0
je 0x40f5aa
movss xmm0, dword [esi + 0x16f4]
mulss xmm0, dword [0x4dc6fc]
movss dword [ebp - 0x9c], xmm0
mov edi, dword [esi + 0x172c]
movss xmm3, dword [edi + 0x120]
comiss xmm7, xmm3
jbe 0x40f608
cmp dword [edi + 0x194], 1
movss xmm4, dword [edi + 0xb8]
subss xmm4, dword [edi + 0x18]
movss xmm1, dword [edi + 0x48]
je 0x40f5f4
mov ecx, dword [edi + 0x190]
inc ecx
call fcn.00412f00
movaps xmm1, xmm0
movss xmm0, dword [ebp - 0x9c]
subss xmm1, dword [edi + 0x50]
subss xmm1, xmm4
addss xmm1, xmm3
movss xmm3, dword [0x4dc6bc]
maxss xmm3, xmm1
cvttss2si eax, xmm3
xorps xmm3, xmm3
movd xmm5, eax
mov eax, dword [ebp - 0x68]
cvtdq2ps xmm5, xmm5
movss xmm4, dword [eax + 0x13e8]
mov eax, dword [ebp + 0xc]
addss xmm4, xmm4
movss xmm2, dword [eax]
comiss xmm7, xmm2
movss xmm6, dword [eax + 4]
addss xmm4, xmm0
movss dword [ebp - 0xac], xmm2
xorps xmm0, xmm0
movss dword [ebp - 0x9c], xmm6
ja 0x40f652
comiss xmm7, xmm6
jbe 0x40f68b
cmp dword [edi + 0x194], 1
movss xmm0, dword [edi + 0x48]
movss xmm3, dword [edi + 0x4c]
je 0x40f67e
mov ecx, dword [edi + 0x190]
inc ecx
call fcn.00412f00
subss xmm0, dword [edi + 0x50]
movss xmm2, dword [ebp - 0xac]
addss xmm0, dword [edi + 0x18]
addss xmm3, dword [edi + 0x1c]
lea eax, [edi + 0x18]
comiss xmm7, xmm2
movss xmm1, dword [0x4dc6f0]
jb 0x40f6cb
ucomiss xmm2, xmm7
lahf
test ah, 0x44
jp 0x40f6ae
movaps xmm2, xmm5
movss dword [ebp - 0xac], xmm2
jmp 0x40f6cb
mov eax, edi
subss xmm0, dword [eax + 0xb8]
maxss xmm0, xmm1
addss xmm0, xmm2
movaps xmm2, xmm0
movss dword [ebp - 0xac], xmm0
comiss xmm7, xmm6
jb 0x40f703
ucomiss xmm6, xmm7
lahf
test ah, 0x44
jp 0x40f6e6
movaps xmm6, xmm4
movss dword [ebp - 0x9c], xmm6
jmp 0x40f703
mov eax, edi
subss xmm3, dword [eax + 0xbc]
maxss xmm3, xmm1
addss xmm3, xmm6
movaps xmm6, xmm3
movss dword [ebp - 0x9c], xmm3
movss xmm3, dword [ebx + 0xbc]
movaps xmm5, xmm2
movss xmm4, dword [ebx + 0xb8]
movaps xmm1, xmm3
movss xmm0, dword [ebp - 0xf4]
addss xmm5, xmm4
comiss xmm0, xmm7
mov edi, dword [ebp - 0x68]
addss xmm1, xmm6
movss dword [ebp - 0xd8], xmm4
movss dword [ebp - 0x108], xmm5
movss dword [ebp - 0xcc], xmm3
movss dword [ebp - 0x18], xmm4
movss dword [ebp - 0x14], xmm3
movss dword [ebp - 0x10], xmm5
movss dword [ebp - 0xc], xmm1
jbe 0x40f767
addss xmm0, dword [edi + 0x13f8]
jmp 0x40f76a
xorps xmm0, xmm0
cmp byte [ebp - 0x94], 0
addss xmm0, xmm5
movaps xmm2, xmm1
movss dword [ebp - 0xc4], xmm4
addss xmm2, xmm7
movss dword [ebp - 0xc0], xmm3
mov dword [ebp - 0xa0], ebx
movss dword [ebp - 0xbc], xmm0
movss dword [ebp - 0xb8], xmm2
je 0x40f82c
movaps xmm0, xmm5
subss xmm1, xmm3
subss xmm0, xmm4
push ecx
mov ecx, dword [ebp - 0x88]
lea edx, [ebp - 0x74]
movss dword [ebp - 0x70], xmm1
movss dword [ebp - 0x74], xmm0
call fcn.00407250
add esp, 4
test al, al
jne 0x40f7f0
call fcn.00407330
call fcn.00412d70
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00438c87
mov esp, ebp
pop ebp
ret
mov esi, dword [0x4e3ef0]
xorps xmm7, xmm7
movss xmm0, dword [ebp - 0xac]
mov dword [ebp - 0x78], esi
mov eax, dword [esi + 0x172c]
mov byte [eax + 0x86], 1
mov eax, dword [esi + 0x172c]
mov dword [ebp - 0xa0], eax
subss xmm0, dword [eax + 0x78]
movss dword [ebp - 0xac], xmm0
jmp 0x40f864
movss xmm1, dword [edi + 0x13e8]
subss xmm0, xmm4
subss xmm2, xmm3
lea ecx, [ebp - 0x74]
movss dword [ebp - 0x74], xmm0
movss dword [ebp - 0x70], xmm2
call fcn.00403a20
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0xc4]
call fcn.00403b20
test al, al
je 0x40f7dd
cmp byte [ebp - 0xf0], 0
je 0x40f9b8
mov edx, dword [edi + 0x16f0]
cmp dword [edx + 0x28], 0x2a
jle 0x40f899
mov eax, dword [edx + 0x30]
mov ecx, 0xffff
movzx eax, word [eax + 0x54]
cmp ax, cx
je 0x40f899
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x18]
lea ebx, [eax + ecx*8]
jmp 0x40f89c
mov ebx, dword [edx + 0x34]
mov eax, dword [edx]
add edi, 0x26f8
mov dword [ebp - 0x1c], edi
mov dword [edi], eax
mov eax, dword [edx + 4]
mov edx, dword [ebp - 0x68]
mov dword [edi + 4], eax
mov eax, dword [edx + 0x16f0]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], eax
mov eax, dword [edx + 0x16f0]
mov eax, dword [eax + 0x48]
mov dword [edi + 0x48], eax
mov eax, dword [edx + 0x16f0]
mov eax, dword [eax + 0x4c]
mov dword [edi + 0x4c], eax
mov eax, dword [edx + 0x16f0]
mov eax, dword [eax + 0x44]
mov dword [edi + 0x44], eax
mov dword [edi + 0x34], ebx
mov eax, dword [ebx + 4]
mov dword [edi + 0x38], eax
movss xmm0, dword [esi + 0x84]
mov eax, dword [esi + 0x172c]
mov dword [esi + 0x16f0], edi
mulss xmm0, dword [edi]
mulss xmm0, dword [edi + 4]
movss dword [esi + 0x16f8], xmm0
test eax, eax
je 0x40f926
movss xmm7, dword [eax + 0x250]
mulss xmm7, xmm0
movss dword [esi + 0x16f4], xmm7
mov eax, dword [edi + 0x44]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x1700], eax
lea eax, [ebp - 0x1c]
mov dword [esi + 0x16fc], ecx
lea ecx, [esi + 0x179c]
push eax
call fcn.00413bb0
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x172c]
mov ebx, dword [eax + 0x254]
mov edi, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x40]
cmp ecx, edi
jne 0x40f991
inc ecx
test edi, edi
je 0x40f97e
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x40f983
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x40]
call fcn.00413b30
mov edx, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x48]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov dword [ecx + edx*4], eax
mov ecx, ebx
inc dword [ebx + 0x40]
call fcn.0041b640
mov esi, dword [0x4e3ef0]
mov ebx, dword [ebp - 0xb0]
mov dword [ebp - 0x78], esi
test dword [ebp + 0x10], 0x440
mov ecx, dword [ebp - 0x68]
sete al
movzx eax, al
push eax
mov eax, dword [ebp - 0x88]
lea edi, [ecx + 0x1a24]
cmp dword [ecx + 0x1754], eax
mov ecx, ebx
mov dword [ebp - 0xb4], edi
sete dl
call fcn.00403d00
add esp, 4
mov byte [ebp - 0x8a], al
test al, al
je 0x40faaa
mov ecx, dword [ebx + 0x264]
cmp ecx, dword [ebx + 0x26c]
jne 0x40faaa
mov byte [ebp - 0x69], 1
mov byte [ebp - 0x79], 0
mov ebx, dword [ebp - 0x88]
lea ecx, [ebp - 0x18]
push 0
mov edx, ebx
call fcn.00403c40
mov edx, dword [ebp - 0x68]
add esp, 4
mov byte [ebp - 0x89], al
test al, al
je 0x40fa5c
mov dword [esi + 0x1748], ebx
mov byte [esi + 0x174c], 0
mov dword [edx + 0x18b4], 1
cmp byte [edx + 0x330], 0
mov byte [ebp - 0x61], 1
jne 0x40fa60
mov byte [ebp - 0x61], 0
cmp byte [ebp - 0x94], 0
je 0x40fac3
cmp dword [edx + 0x1754], 0
jne 0x40fac3
cmp dword [edi], ebx
jne 0x40fac3
mov eax, dword [ebp - 0xa0]
xor edx, edx
mov ecx, dword [eax + 0x1c0]
mov eax, dword [eax + 0x1c8]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.004029e0
mov edx, dword [ebp - 0x68]
add esp, 4
cmp dword [edx + 0x1758], eax
jne 0x40fac3
mov cl, 1
jmp 0x40fac5
mov byte [ebp - 0x69], 0
test al, al
je 0x40fa12
mov byte [ebp - 0x79], 1
mov byte [ebp - 0x69], 0
jmp 0x40fa16
xor cl, cl
mov eax, dword [edx + 0x1754]
cmp eax, ebx
je 0x40fad9
test byte [ebp + 0x10], 0x10
je 0x40fad9
mov bl, 1
jmp 0x40fadb
xor bl, bl
cmp byte [ebp - 0x8a], 0
jne 0x40fb28
cmp byte [ebp - 0x61], 0
jne 0x40fb28
test cl, cl
jne 0x40fb28
cmp byte [edx + 0x330], cl
je 0x40fce0
cmp eax, dword [ebp - 0x88]
jne 0x40fce0
mov dword [esi + 0x1754], 0
mov word [esi + 0x175d], 1
mov dword [esi + 0x1768], 0
jmp 0x40fce0
cmp eax, dword [ebp - 0x88]
je 0x40fca3
mov eax, dword [edi + 0x2c]
lea ecx, [edi + 4]
push 0x81
mov dword [ebp - 0x1c], eax
call fcn.00413c60
mov esi, dword [edi + 0x14]
lea eax, [edi + 0x10]
cmp esi, 0x81
jge 0x40fb81
test esi, esi
je 0x40fb66
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x40fb6b
mov ecx, 8
mov eax, 0x81
cmp ecx, eax
cmovg eax, ecx
lea ecx, [edi + 0x10]
push eax
call fcn.00413e00
lea eax, [edi + 0x10]
push 0x81
push dword [ebp - 0x84]
mov dword [eax], 0x81
mov esi, dword [edi + 0x18]
push esi
call fcn.0049a9a0
add esp, 0xc
mov byte [esi + 0x80], 0
mov esi, dword [ebp - 0x84]
lea eax, [ebp - 0x60]
mov edx, dword [edi + 4]
mov dword [ebp - 0x60], 0
push eax
push ecx
mov ecx, dword [edi + 0xc]
push esi
call fcn.00402c90
mov ecx, dword [ebp - 0x60]
mov edx, eax
mov eax, dword [ebp - 0x88]
sub ecx, esi
add esp, 0xc
mov dword [edi + 0x2c], edx
mov dword [edi + 0x28], ecx
mov dword [edi + 0xccc], 0xbe99999a
cmp dword [edi], eax
jne 0x40fc16
cmp dword [ebp - 0x1c], edx
jne 0x40fc16
cmp dword [edi + 0x38], edx
mov ecx, edx
cmovl ecx, dword [edi + 0x38]
cmp dword [edi + 0x3c], edx
mov dword [edi + 0x38], ecx
mov ecx, edx
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], edx
mov dword [edi + 0x3c], ecx
cmovl edx, dword [edi + 0x40]
mov ecx, dword [ebp - 0x94]
mov dword [edi + 0x40], edx
jmp 0x40fc75
mov ecx, dword [ebp - 0x94]
mov dword [edi], eax
mov al, cl
mov dword [edi + 0x34], 0
xor al, 1
mov dword [edi + 0xcc2], 0x630000
mov dword [edi + 0xcc6], 0x3e70000
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x44], 0x10000
mov dword [edi + 0x4c], 0
mov byte [edi + 0x48], al
test cl, cl
jne 0x40fc75
cmp byte [ebp - 0x69], cl
mov eax, 1
movzx ebx, bl
cmovne ebx, eax
test dword [ebp + 0x10], 0x2000
je 0x40fc82
mov byte [edi + 0x44], 1
test cl, cl
jne 0x40fc9d
cmp byte [ebp - 0x79], cl
jne 0x40fc9b
cmp byte [ebp - 0x61], cl
je 0x40fc9d
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0xe1], cl
je 0x40fc9d
mov bl, 1
mov esi, dword [0x4e3ef0]
mov eax, dword [ebp - 0x88]
mov dword [esi + 0x1754], eax
mov word [esi + 0x175d], 1
test eax, eax
je 0x40fcc3
mov byte [esi + 0x175c], 1
mov ecx, dword [ebp - 0xb0]
mov dword [esi + 0x1768], ecx
call fcn.0040b930
mov esi, dword [0x4e3ef0]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x88]
movss xmm4, dword [0x4dc6a0]
mov byte [ebp - 0x79], 0
mov byte [ebp - 0x8a], 0
cmp dword [edx + 0x1754], eax
jne 0x410bbe
cmp byte [ebp - 0x90], 0
jne 0x40fd8b
cmp byte [edx + 0x175d], 0
jne 0x40fd8b
push 0x81
lea ecx, [edi + 4]
call fcn.00413c60
mov edx, dword [edi + 4]
lea eax, [ebp - 0x60]
push eax
push ecx
push dword [ebp - 0x84]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x60], 0
call fcn.00402c90
mov ecx, dword [ebp - 0x60]
mov esi, eax
sub ecx, dword [ebp - 0x84]
add esp, 0xc
cmp dword [edi + 0x38], esi
mov edx, esi
movss xmm4, dword [0x4dc6a0]
cmovl edx, dword [edi + 0x38]
cmp dword [edi + 0x3c], esi
mov dword [edi + 0x28], ecx
mov ecx, esi
cmovl ecx, dword [edi + 0x3c]
cmp dword [edi + 0x40], esi
mov dword [edi + 0x2c], esi
cmovl esi, dword [edi + 0x40]
mov dword [edi + 0x40], esi
mov esi, dword [0x4e3ef0]
mov dword [edi + 0x38], edx
mov edx, dword [ebp - 0x68]
mov dword [edi + 0x3c], ecx
mov dword [ebp - 0x78], esi
mov dword [edi + 0x30], 0x80
cmp byte [edx + 0xd4], 0
sete al
cmp byte [ebp - 0x94], 0
mov byte [edx + 0x175e], al
movss xmm3, dword [edx + 0xcc]
subss xmm3, dword [ebp - 0xd8]
subss xmm3, dword [edx + 0x13e4]
addss xmm3, dword [edi + 0x34]
je 0x40fde8
mov eax, dword [ebp - 0xa0]
movss xmm2, dword [edx + 0xd0]
subss xmm2, dword [eax + 0xbc]
subss xmm2, dword [edx + 0x13e8]
jmp 0x40fdf4
movss xmm2, dword [edx + 0x16f4]
mulss xmm2, xmm4
mov al, byte [edx + 0xa8]
test bl, bl
jne 0x40ff28
cmp byte [ebp - 0x89], bl
je 0x40fe1a
test al, al
jne 0x40fe5d
cmp byte [edx + 0x374], bl
jne 0x40ff28
cmp byte [edx + 0x330], 0
je 0x40febd
cmp byte [edi + 0xcd1], 0
jne 0x40febd
movaps xmm1, xmm3
mov ecx, edi
call fcn.0040dde0
mov edx, dword [ebp - 0x68]
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], eax
mov dword [edi + 0x40], eax
mov byte [edi + 0x47], 0
mov dword [edi + 0xccc], 0xbe99999a
jmp 0x40ff43
cmp byte [edx + 0x374], 0
je 0x40fe1a
push 0x1000c
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1d0
add esp, 4
mov byte [edi + 0xcd0], 1
lea edx, [edi + 0x38]
mov dword [edi + 0xccc], 0xbe99999a
mov ecx, edi
push 0x3000d
call fcn.0040e1d0
mov esi, dword [0x4e3ef0]
add esp, 4
mov edx, dword [ebp - 0x68]
mov byte [edi + 0xcd0], 1
mov dword [edi + 0xccc], 0xbe99999a
mov dword [ebp - 0x78], esi
jmp 0x40ff43
cmp byte [edx + 0xd4], 0
je 0x40ff43
cmp byte [edi + 0xcd1], 0
jne 0x40ff4c
movss xmm0, dword [edx + 0x320]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x40fef4
movss xmm0, dword [edx + 0x324]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x40ff43
movaps xmm1, xmm3
mov ecx, edi
call fcn.0040dde0
mov ecx, dword [edi + 0x3c]
cmp ecx, dword [edi + 0x40]
jne 0x40ff0c
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x3c], ecx
mov edx, dword [ebp - 0x68]
mov dword [edi + 0x40], eax
mov dword [edi + 0x38], eax
mov dword [edi + 0xccc], 0xbe99999a
mov byte [edi + 0xcd0], 1
jmp 0x40ff43
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], eax
mov dword [edi + 0x38], eax
mov byte [edi + 0x47], 0
mov byte [edi + 0xcd1], 1
cmp byte [edi + 0xcd1], 0
je 0x40ff5c
cmp byte [edx + 0xd4], 0
jne 0x40ff5c
mov byte [edi + 0xcd1], 0
cmp word [edx + 0x2e6], 0
lea ebx, [edx + 0x2e6]
je 0x410000
cmp byte [edx + 0xe1], 0
je 0x40ff82
cmp byte [edx + 0xe3], 0
je 0x40ffe6
cmp byte [ebp - 0x90], 0
je 0x40ffe6
xor esi, esi
nop dword [eax]
movzx eax, word [ebx]
test ax, ax
je 0x40ffda
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x60]
sub esp, 8
mov dword [ebp - 0x60], eax
call fcn.0040f270
add esp, 8
test al, al
je 0x40ffd1
push dword [ebp - 0x60]
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1d0
add esp, 4
mov byte [edi + 0xcd0], 1
mov dword [edi + 0xccc], 0xbe99999a
inc esi
add ebx, 2
cmp esi, 0x11
jl 0x40ff90
mov esi, dword [0x4e3ef0]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x78], esi
xorps xmm0, xmm0
movups xmmword [edx + 0x2e6], xmm0
movups xmmword [edx + 0x2f6], xmm0
mov word [edx + 0x306], 0
mov dl, byte [edx + 0xe2]
xor ecx, ecx
test dl, dl
mov eax, 0x20000
cmovne ecx, eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x98], ecx
mov bl, byte [eax + 0xa8]
test bl, bl
je 0x410049
cmp byte [eax + 0xe4], 0
je 0x41003e
cmp byte [eax + 0xe1], 0
jne 0x41003e
mov eax, 1
jmp 0x410040
xor eax, eax
test eax, eax
mov eax, dword [ebp - 0x68]
je 0x41006f
jmp 0x41005b
cmp byte [eax + 0xe1], 0
je 0x41006f
cmp byte [eax + 0xe4], 0
jne 0x41006f
cmp byte [eax + 0xe3], 0
jne 0x41006f
mov byte [ebp - 0x89], 1
test dl, dl
je 0x410076
mov byte [ebp - 0x89], 0
test bl, bl
je 0x4100b2
mov ebx, dword [ebp - 0x68]
mov al, byte [eax + 0xe3]
mov dl, al
mov byte [ebp - 0x61], dl
cmp byte [ebx + 0xe4], 0
je 0x4100bb
cmp byte [ebx + 0xe1], 0
mov byte [ebp - 0x61], dl
jne 0x4100bb
cmp byte [ebx + 0xe3], 0
mov byte [ebp - 0x61], dl
jne 0x4100bb
mov byte [ebp - 0x69], 1
mov byte [ebp - 0x61], dl
jmp 0x4100bf
mov dl, byte [eax + 0xe1]
mov byte [ebp - 0x61], dl
mov byte [ebp - 0x69], 0
mov eax, dword [esi + 0x2c]
test eax, eax
js 0x41017a
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x411490
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41017a
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
jne 0x411487
mov eax, dword [esi + 0x30]
xorps xmm2, xmm2
test eax, eax
js 0x410265
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410230
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410265
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410262
cmp byte [ebp - 0x69], 0
je 0x410246
mov eax, 0x10005
or eax, dword [ebp - 0x98]
jmp 0x4114ae
cmp byte [ebp - 0x61], 0
mov eax, 0x10001
mov ecx, 0x1000d
cmovne eax, ecx
or eax, dword [ebp - 0x98]
jmp 0x4114ae
xorps xmm2, xmm2
mov eax, dword [esi + 0x34]
test eax, eax
js 0x41037e
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x41031b
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x41037e
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x41037e
xorps xmm2, xmm2
cmp byte [ebp - 0x94], 0
je 0x41037e
mov ebx, dword [ebp - 0x68]
cmp byte [ebx + 0xe1], 0
je 0x410368
mov ecx, dword [ebp - 0xa0]
movss xmm1, dword [ecx + 0x60]
movaps xmm0, xmm1
subss xmm0, dword [ebx + 0x16f4]
addss xmm1, dword [ecx + 0xd4]
maxss xmm0, xmm2
subss xmm1, xmm0
movss dword [ecx + 0x60], xmm0
movss dword [ecx + 0xd4], xmm1
jmp 0x4114d6
movzx eax, byte [ebp - 0x69]
lea eax, [eax*4 + 0x10002]
or eax, dword [ebp - 0x98]
jmp 0x4114ae
mov eax, dword [esi + 0x38]
test eax, eax
js 0x4104ad
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x410435
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x4104ad
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x4104ad
cmp byte [ebp - 0x94], 0
je 0x4104ad
mov ebx, dword [ebp - 0x68]
cmp byte [ebx + 0xe1], 0
je 0x410497
mov eax, dword [esi + 0x172c]
mov ecx, dword [ebp - 0xa0]
movss xmm0, dword [eax + 0x34]
subss xmm0, dword [eax + 0x2c]
movss xmm2, dword [ecx + 0x60]
movaps xmm1, xmm2
addss xmm1, dword [ebx + 0x16f4]
addss xmm2, dword [ecx + 0xd4]
subss xmm0, dword [eax + 0x7c]
minss xmm1, xmm0
subss xmm2, xmm1
movss dword [ecx + 0x60], xmm1
movss dword [ecx + 0xd4], xmm2
jmp 0x4114d6
movzx eax, byte [ebp - 0x69]
lea eax, [eax*4 + 0x10003]
or eax, dword [ebp - 0x98]
jmp 0x4114ae
mov eax, dword [esi + 0x44]
test eax, eax
js 0x410568
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x411464
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x410568
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
jne 0x411464
mov eax, dword [esi + 0x48]
xorps xmm0, xmm0
test eax, eax
js 0x410647
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x41061e
movss xmm3, dword [esi + 0x74]
comiss xmm2, xmm3
jbe 0x410647
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm3
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410644
mov ecx, dword [ebp - 0x98]
mov eax, ecx
mov edx, dword [ebp - 0x68]
or eax, 0x10007
or ecx, 0x10005
cmp byte [edx + 0xe1], 0
cmovne ecx, eax
push ecx
jmp 0x4114af
xorps xmm0, xmm0
mov eax, dword [esi + 0x4c]
test eax, eax
js 0x41073c
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4106fa
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41073c
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x41073c
cmp byte [ebp - 0x90], 0
je 0x41073c
mov ecx, dword [ebp - 0x98]
or ecx, 0x10008
push ecx
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1d0
mov byte [edi + 0xcd0], 1
add esp, 4
mov dword [edi + 0xccc], 0xbe99999a
mov esi, dword [0x4e3ef0]
mov dword [ebp - 0x78], esi
jmp 0x4114df
mov eax, dword [esi + 0x50]
test eax, eax
js 0x41086c
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x4107f3
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41086c
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x41086c
cmp byte [ebp - 0x90], 0
je 0x41086c
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jne 0x41085b
cmp byte [ebp - 0x61], 0
je 0x410811
push 0x3000c
jmp 0x41083d
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0xa8], 0
je 0x41085b
cmp byte [eax + 0xe4], 0
je 0x41085b
cmp byte [eax + 0xe3], 0
jne 0x41085b
cmp byte [eax + 0xe1], 0
jne 0x41085b
push 0x30004
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1d0
mov dword [edi + 0xccc], 0xbe99999a
add esp, 4
mov byte [edi + 0xcd0], 1
mov ecx, dword [ebp - 0x98]
or ecx, 0x10009
jmp 0x41070f
mov eax, dword [esi + 0x54]
xorps xmm2, xmm2
test eax, eax
js 0x4109ac
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410926
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x4109ac
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x4109a9
mov edx, dword [ebp + 0x10]
mov eax, edx
shr eax, 0xb
and al, 1
cmp byte [ebp - 0x94], 0
je 0x41094a
mov ecx, dword [ebp - 0x68]
mov cl, byte [ecx + 0xe1]
test al, al
je 0x410973
test cl, cl
jne 0x410977
mov dword [esi + 0x1754], 0
mov word [esi + 0x175d], 1
mov dword [esi + 0x1768], 0
mov byte [ebp - 0x8a], 1
jmp 0x4114d6
test cl, cl
jne 0x41094a
cmp byte [ebp - 0x90], 0
je 0x411534
mov dword [ebp - 0x60], 0xa
sub esp, 8
lea ecx, [ebp - 0x60]
call fcn.0040f270
add esp, 8
test al, al
je 0x41072e
push dword [ebp - 0x60]
jmp 0x410710
xorps xmm2, xmm2
mov ecx, dword [ebp + 0x10]
test ecx, 0x400
je 0x410aa6
mov eax, dword [esi + 0x28]
test eax, eax
js 0x410aa6
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410a71
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410aa6
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410aa6
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x68]
cmp byte [ebx + 0xe1], 0
jne 0x410aa6
cmp byte [ebx + 0xe2], 0
jne 0x410aa6
cmp byte [ebx + 0xe3], 0
jne 0x410aa6
cmp byte [ebp - 0x90], 0
je 0x410aa6
mov dword [ebp - 0x60], 9
mov edx, ecx
jmp 0x41098b
mov eax, dword [esi + 0x58]
xorps xmm2, xmm2
test eax, eax
js 0x410c30
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410b60
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410c30
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410c2d
mov eax, dword [ebp - 0x90]
mov dword [esi + 0x1754], 0
mov word [esi + 0x175d], 1
mov dword [esi + 0x1768], 0
test al, al
je 0x4119ca
push 0x80
push dword [edi + 0x18]
mov ebx, dword [ebp - 0x84]
push ebx
call fcn.0049a9a0
mov esi, dword [0x4e3ef0]
add esp, 0xc
mov byte [ebx + 0x7f], 0
mov byte [ebp - 0x79], 1
mov dword [ebp - 0x78], esi
movss xmm4, dword [0x4dc6a0]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x88]
cmp dword [edx + 0x1754], ebx
jne 0x410bdf
test al, al
je 0x410bdf
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x84], eax
cmp byte [ebp - 0x94], 0
movss xmm5, dword [0x4dc754]
jne 0x411b03
movups xmm3, xmmword [esi + 0x14b0]
movss xmm6, dword [0x4dc6bc]
xorps xmm0, xmm0
comiss xmm0, xmm3
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xff
mulss xmm2, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm3
jbe 0x4119da
xorps xmm1, xmm1
jmp 0x4119e1
xorps xmm2, xmm2
cmp byte [ebp - 0x89], 0
je 0x4114d6
mov eax, dword [esi + 0x70]
test eax, eax
js 0x410d16
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410cf0
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410d16
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410d16
cmp byte [ebp - 0x90], 0
je 0x410d16
push 0x1000a
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1d0
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], eax
jmp 0x41071a
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x410de0
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x410dcd
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x410de0
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410de0
cmp byte [ebp - 0x90], 0
je 0x410de0
push 0x1000b
jmp 0x410cfe
mov eax, dword [esi + 0x5c]
xorps xmm2, xmm2
test eax, eax
js 0x410eb2
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410e96
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410eb2
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410eaf
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], eax
mov dword [edi + 0x38], eax
mov byte [edi + 0x47], 0
jmp 0x4114cf
xorps xmm2, xmm2
cmp byte [ebp - 0xf0], 0
jne 0x411222
mov eax, dword [esi + 0x68]
test eax, eax
js 0x410f7f
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410f72
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410f7f
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm3
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm3
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x410f7f
cmp byte [ebp - 0x90], 0
jne 0x411039
mov eax, dword [esi + 0x60]
test eax, eax
js 0x411222
movss xmm2, dword [esi + eax*4 + 0x3c0]
xorps xmm0, xmm0
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x41103c
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x411222
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x411222
xorps xmm0, xmm0
cmp byte [ebp - 0x94], 0
je 0x411051
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x411222
mov eax, dword [esi + 0x68]
test eax, eax
js 0x411127
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x411104
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x411127
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x411127
mov eax, dword [edi + 0x3c]
mov cl, 1
mov byte [ebp - 0x61], cl
cmp eax, dword [edi + 0x40]
jne 0x41112c
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], eax
mov dword [edi + 0x38], eax
mov byte [edi + 0x47], 0
jmp 0x41112c
xor cl, cl
mov byte [ebp - 0x61], cl
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0xb4], 0
je 0x4111e9
mov ebx, dword [edi + 0x40]
mov eax, dword [edi + 0x3c]
mov byte [ebp - 0x61], cl
cmp eax, ebx
je 0x411153
mov edx, ebx
cmovge ebx, eax
cmovl edx, eax
jmp 0x411158
mov ebx, dword [edi + 0x2c]
xor edx, edx
mov eax, ebx
mov dword [ebp - 0xb0], edx
sub eax, edx
lea edx, [eax*4 + 1]
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x60], edx
cmp edx, eax
jle 0x4111a9
lea esi, [edi + 0x1c]
test eax, eax
je 0x411189
cdq
sub eax, edx
mov edx, dword [ebp - 0x60]
mov ecx, eax
sar ecx, 1
add ecx, dword [esi + 4]
jmp 0x41118e
mov ecx, 8
cmp ecx, edx
mov eax, edx
cmovg eax, ecx
mov ecx, esi
push eax
call fcn.00413e00
mov esi, dword [0x4e3ef0]
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x78], esi
mov dword [edi + 0x1c], edx
mov ecx, dword [edi + 0xc]
lea eax, [ecx + ebx*2]
push eax
mov eax, dword [ebp - 0xb0]
lea eax, [ecx + eax*2]
mov ecx, dword [edi + 0x24]
push eax
call fcn.00402d00
mov eax, dword [esi + 0xb4]
add esp, 8
test eax, eax
je 0x4111e9
push dword [edi + 0x24]
push dword [esi + 0xb8]
call eax
mov esi, dword [0x4e3ef0]
add esp, 8
mov dword [ebp - 0x78], esi
cmp byte [ebp - 0x61], 0
je 0x4114d6
mov byte [edi + 0xcd0], 1
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x4114d6
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e140
mov esi, dword [0x4e3ef0]
mov byte [edi + 0x47], 0
mov dword [ebp - 0x78], esi
jmp 0x4114d6
mov eax, dword [esi + 0x64]
test eax, eax
js 0x4114d6
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x4112dd
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x4114d6
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x4114d6
cmp byte [ebp - 0x90], 0
je 0x411534
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x411311
push dword [esi + 0xb8]
call eax
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x41072e
mov esi, dword [0x4e3ef0]
jmp 0x411316
mov ebx, 0x4d7556
mov ecx, ebx
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411320
inc dword [esi + 0x310]
sub ecx, edx
lea eax, [ecx*2 + 2]
push eax
mov eax, dword [esi + 0xbc]
call eax
xor esi, esi
mov dword [ebp - 0x80], eax
add esp, 4
mov dword [ebp - 0x60], esi
cmp byte [ebx], 0
je 0x4113a7
nop
push 0
mov edx, ebx
lea ecx, [ebp - 0xa8]
call fcn.00402b00
add ebx, eax
add esp, 4
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x4113a1
cmp eax, 0x10000
jae 0x41139c
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0xa8]
sub esp, 8
call fcn.0040f270
add esp, 8
test al, al
je 0x41139c
mov ecx, dword [ebp - 0x80]
mov ax, word [ebp - 0xa8]
mov word [ecx + esi*2], ax
inc esi
cmp byte [ebx], 0
jne 0x411350
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x60], esi
xor ecx, ecx
mov word [eax + esi*2], cx
test esi, esi
jle 0x41143d
mov edx, dword [edi + 0x40]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x2c]
cmp ecx, edx
je 0x4113db
cmp ecx, eax
jle 0x4113cb
mov dword [edi + 0x3c], eax
mov ecx, eax
cmp edx, eax
jle 0x4113d4
mov dword [edi + 0x40], eax
mov edx, eax
cmp ecx, edx
jne 0x4113db
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x38], eax
jle 0x4113e3
mov dword [edi + 0x38], eax
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e140
mov ebx, dword [ebp - 0x60]
mov ecx, edi
mov edx, dword [edi + 0x38]
push ebx
push dword [ebp - 0x80]
call fcn.0040dd30
add esp, 8
test al, al
je 0x41141f
mov edx, dword [edi + 0x38]
lea ecx, [edi + 0x50]
push ebx
push 0
call fcn.0040ef20
add esp, 8
mov byte [edi + 0x47], 0
add dword [edi + 0x38], ebx
jmp 0x411433
movzx eax, word [edi + 0xcc2]
test ax, ax
je 0x411433
dec eax
mov word [edi + 0xcc2], ax
mov eax, dword [ebp - 0x80]
mov byte [edi + 0xcd0], 1
mov ecx, dword [0x4e3ef0]
test eax, eax
je 0x41144d
dec dword [ecx + 0x310]
push eax
mov eax, dword [ecx + 0xc0]
call eax
mov esi, dword [0x4e3ef0]
add esp, 4
mov dword [ebp - 0x78], esi
jmp 0x4114df
mov ecx, dword [ebp - 0x98]
mov eax, ecx
mov edx, dword [ebp - 0x68]
or eax, 0x10006
or ecx, 0x10004
cmp byte [edx + 0xe1], 0
cmovne ecx, eax
push ecx
jmp 0x4114af
mov ecx, dword [ebp - 0x98]
mov dl, byte [ebp - 0x61]
cmp byte [ebp - 0x69], 0
je 0x41149d
mov eax, 0x10004
jmp 0x4114ac
test dl, dl
mov eax, 0x10000
mov esi, 0x1000c
cmovne eax, esi
or eax, ecx
push eax
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1d0
mov esi, dword [0x4e3ef0]
add esp, 4
mov dword [ebp - 0x78], esi
mov dword [edi + 0xccc], 0xbe99999a
mov byte [edi + 0xcd0], 1
cmp byte [ebp - 0x90], 0
je 0x411534
mov ebx, dword [edi + 4]
mov eax, dword [edi + 0x20]
shl ebx, 2
cmp ebx, eax
jle 0x41151f
test eax, eax
je 0x4114ff
cdq
sub eax, edx
lea edx, [edi + 0x1c]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x411507
mov ecx, 8
lea edx, [edi + 0x1c]
cmp ecx, ebx
mov eax, ebx
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00413e00
mov esi, dword [0x4e3ef0]
mov dword [ebp - 0x78], esi
mov dword [edi + 0x1c], ebx
mov edx, ebx
mov ecx, dword [edi + 0x24]
push 0
push dword [edi + 0xc]
call fcn.00402d00
add esp, 8
mov edx, dword [ebp + 0x10]
test edx, 0x1c0
je 0x41197d
test dl, 0x40
je 0x411611
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
test eax, eax
js 0x411614
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x411605
movss xmm3, dword [esi + 0x74]
comiss xmm2, xmm3
jbe 0x411614
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm3
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
mov edx, dword [ebp + 0x10]
xor eax, eax
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x411611
mov eax, 0x40
xor ecx, ecx
jmp 0x4117be
xorps xmm0, xmm0
test dl, dl
jns 0x4117a6
mov eax, dword [esi + 0x34]
test eax, eax
js 0x4116df
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4116d2
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x4116df
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
mov edx, dword [ebp + 0x10]
xor eax, eax
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x4116df
mov eax, 0x80
lea ecx, [eax - 0x7d]
jmp 0x4117be
mov eax, dword [esi + 0x38]
test eax, eax
js 0x4117a6
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4dc664]
lahf
test ah, 0x44
jnp 0x411796
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x4117a6
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4dc6a0]
movsd qword [ebp - 0x74], xmm0
movaps xmm0, xmm2
subss xmm0, dword [esi + 0xc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x60], xmm1
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor ebx, ebx
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
movss xmm0, dword [ebp - 0x1c]
cvtps2pd xmm0, xmm0
seta bl
movsd qword [ebp - 0x5c], xmm0
fld qword [ebp - 0x5c]
fld qword [ebp - 0x74]
call fcn.004ba080
fstp qword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x5c]
xor eax, eax
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [ebp - 0x60]
seta al
cmp eax, ebx
je 0x4117a3
mov edx, dword [ebp + 0x10]
mov eax, 0x80
lea ecx, [eax - 0x7c]
jmp 0x4117be
mov edx, dword [ebp + 0x10]
test edx, 0x100
mov ecx, 0x100
mov eax, 0
cmovne eax, ecx
mov ecx, 0x13
test eax, eax
je 0x41197d
mov dword [ebp - 0x50], eax
xor esi, esi
mov al, byte [ebp - 0x90]
xor al, 1
mov word [ebp - 0x43], si
mov byte [ebp - 0x44], al
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 0x30]
mov word [ebp - 0x2f], si
mov dword [ebp - 0x48], esi
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x40], ecx
mov ecx, esi
mov byte [ebp - 0x41], 0
lea edx, [esi + eax*2]
mov byte [ebp - 0x2d], 0
mov byte [ebp - 0x30], 0
call fcn.00402e30
mov ebx, dword [ebp - 0x68]
mov edi, eax
mov dword [ebp - 0x2c], edi
mov ecx, dword [ebx + 0x1a60]
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.00402e30
mov ecx, dword [ebx + 0x1a64]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x28], eax
lea edx, [esi + ecx*2]
mov ecx, esi
call fcn.00402e30
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x50]
push eax
xor eax, eax
call eax
mov ecx, dword [ebp - 0x2c]
add esp, 4
cmp ecx, edi
je 0x4118a1
mov eax, dword [ebp - 0x3c]
xor ebx, ebx
mov esi, eax
lea edi, [ecx + eax]
test edi, edi
je 0x411870
cmp esi, edi
jae 0x411896
cmp byte [esi], 0
je 0x411896
push edi
mov edx, esi
lea ecx, [ebp - 0x1c]
call fcn.00402b00
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x411896
cmp eax, 0x10000
jae 0x411868
inc ebx
jmp 0x411868
mov edi, dword [ebp - 0xb4]
mov dword [edi + 0x38], ebx
jmp 0x4118a7
mov edi, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x60]
je 0x4118f7
mov ecx, dword [ebp - 0x3c]
mov esi, ecx
lea ebx, [eax + ecx]
xor eax, eax
mov dword [ebp - 0x80], eax
nop dword [eax]
test ebx, ebx
je 0x4118c8
cmp esi, ebx
jae 0x4118f4
cmp byte [esi], 0
je 0x4118f4
push ebx
mov edx, esi
lea ecx, [ebp - 0x1c]
call fcn.00402b00
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4118f1
cmp eax, 0x10000
mov eax, dword [ebp - 0x80]
jae 0x4118c0
inc eax
jmp 0x4118b9
mov eax, dword [ebp - 0x80]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0xb0]
je 0x411947
mov ecx, dword [ebp - 0x3c]
mov esi, ecx
lea ebx, [eax + ecx]
xor eax, eax
mov dword [ebp - 0x80], eax
nop
test ebx, ebx
je 0x411918
cmp esi, ebx
jae 0x411944
cmp byte [esi], 0
je 0x411944
push ebx
mov edx, esi
lea ecx, [ebp - 0x1c]
call fcn.00402b00
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x411941
cmp eax, 0x10000
mov eax, dword [ebp - 0x80]
jae 0x411910
inc eax
jmp 0x41190c
mov eax, dword [ebp - 0x80]
mov dword [edi + 0x40], eax
cmp byte [ebp - 0x30], 0
je 0x411974
mov edx, dword [edi + 4]
push 0
push ecx
push dword [ebp - 0x3c]
mov ecx, dword [edi + 0xc]
call fcn.00402c90
mov dword [edi + 0x2c], eax
add esp, 0xc
mov eax, dword [ebp - 0x38]
mov dword [edi + 0x28], eax
mov dword [edi + 0xccc], 0xbe99999a
mov esi, dword [0x4e3ef0]
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x90]
test al, al
je 0x4119ca
mov ebx, dword [edi + 0x24]
mov eax, ebx
mov ecx, dword [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4119b2
test dl, dl
je 0x4119ae
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4119b2
add eax, 2
add ecx, 2
test dl, dl
jne 0x411992
xor eax, eax
jmp 0x4119b7
sbb eax, eax
or eax, 1
test eax, eax
je 0x410bb3
push 0x80
push ebx
jmp 0x410b93
movss xmm4, dword [0x4dc6a0]
mov edx, dword [ebp - 0x68]
jmp 0x410bc4
movaps xmm1, xmm6
minss xmm1, xmm3
movss xmm3, dword [ebp - 0xc0]
comiss xmm0, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si edx, xmm1
jbe 0x4119ff
xorps xmm1, xmm1
jmp 0x411a06
movaps xmm1, xmm6
minss xmm1, xmm3
movss xmm3, dword [ebp - 0xbc]
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
shl eax, 8
or edx, eax
comiss xmm0, xmm3
jbe 0x411a29
xorps xmm1, xmm1
jmp 0x411a30
movaps xmm1, xmm6
minss xmm1, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si eax, xmm1
shl eax, 0x10
or edx, eax
comiss xmm0, xmm2
ja 0x411a4d
movaps xmm0, xmm6
minss xmm0, xmm2
push dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
push dword [ebp - 0x10]
mulss xmm0, xmm5
push dword [ebp - 0x14]
movss xmm2, dword [eax + 0x13ec]
push dword [ebp - 0x18]
addss xmm0, xmm4
cvttss2si ecx, xmm0
shl ecx, 0x18
or ecx, edx
mov dl, 1
call fcn.004069a0
movss xmm7, dword [ebp - 0xd8]
add esp, 0x10
mov edx, dword [ebp - 0x68]
movaps xmm0, xmm7
movss xmm6, dword [ebp - 0xcc]
movaps xmm2, xmm7
movss xmm4, dword [ebp - 0xac]
movaps xmm1, xmm6
addss xmm1, dword [ebp - 0x9c]
addss xmm0, dword [edx + 0x13e4]
mov esi, dword [0x4e3ef0]
addss xmm2, xmm4
movss xmm5, dword [0x4dc754]
movss dword [ebp - 0x18], xmm7
movss dword [ebp - 0x14], xmm6
movss dword [ebp - 0x5c], xmm0
movaps xmm0, xmm6
addss xmm0, dword [edx + 0x13e8]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x10], xmm2
movss dword [ebp - 0xa8], xmm2
movss dword [ebp - 0xdc], xmm1
movss dword [ebp - 0x58], xmm0
mov dword [ebp - 0x78], esi
jmp 0x411b73
movss xmm1, dword [ebp - 0xd8]
movss xmm0, dword [ebp - 0xcc]
movaps xmm4, xmm1
addss xmm4, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa0]
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x14], xmm0
mov eax, dword [ecx + 0xb8]
movaps xmm2, xmm4
mov ecx, dword [ecx + 0xbc]
movss dword [ebp - 0x1c], xmm2
movss dword [ebp - 0x10], xmm2
movaps xmm2, xmm0
addss xmm2, dword [ebp - 0x9c]
movss dword [ebp - 0xa8], xmm4
movss xmm4, dword [ebp - 0xac]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
movss dword [ebp - 0xdc], xmm2
movaps xmm1, xmm2
lea eax, [ebp - 0x5c]
xorps xmm3, xmm3
movss xmm0, dword [eax]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0xd4], xmm0
movss dword [ebp - 0x70], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x88], eax
movss dword [ebp - 0xc], xmm1
movss dword [ebp - 0xb4], xmm1
movss dword [ebp - 0xb0], xmm0
movss dword [ebp - 0x60], xmm3
cmp dword [edi], ebx
jne 0x411bf8
cmp byte [ebp - 0x94], 0
je 0x411bf8
mov eax, dword [ebp - 0xa0]
xor edx, edx
mov ecx, dword [eax + 0x1c0]
mov eax, dword [eax + 0x1c8]
push dword [eax + ecx*4 - 4]
mov ecx, str.SCROLLY
call fcn.004029e0
mov edx, dword [ebp - 0x68]
add esp, 4
cmp dword [edx + 0x1754], eax
jne 0x411bf8
mov al, 1
jmp 0x411bfa
xor al, al
cmp dword [edx + 0x1754], ebx
je 0x411e85
test al, al
jne 0x411e85
xor edx, edx
cmp byte [ebp - 0x94], dl
je 0x411c73
mov eax, dword [ebp - 0x84]
xor ecx, ecx
mov bl, byte [eax]
lea edx, [eax + 1]
test bl, bl
je 0x411c42
nop dword [eax]
cmp bl, 0xa
lea eax, [ecx + 1]
mov bl, byte [edx]
cmovne eax, ecx
inc edx
mov ecx, eax
test bl, bl
jne 0x411c30
mov al, byte [edx - 1]
dec edx
cmp al, 0xa
je 0x411c4f
cmp al, 0xd
je 0x411c4f
inc ecx
movd xmm6, ecx
movaps xmm0, xmm4
mov ecx, dword [ebp - 0x68]
cvtdq2ps xmm6, xmm6
movss dword [ebp - 0xb0], xmm0
mulss xmm6, dword [ecx + 0x16f4]
movss dword [ebp - 0x60], xmm6
jmp 0x411c76
mov ecx, dword [ebp - 0x68]
movups xmm2, xmmword [esi + 0x1440]
mov eax, dword [ecx + 0x16f0]
movss xmm4, dword [ecx + 0x16f4]
comiss xmm3, xmm2
mov dword [ebp - 0xa8], eax
movss xmm7, dword [0x4dc6bc]
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm2
jbe 0x411cb9
movaps xmm0, xmm3
jmp 0x411cc0
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm6, dword [0x4dc6a0]
movss xmm2, dword [ebp - 0xc0]
comiss xmm3, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x411ce6
movaps xmm0, xmm3
jmp 0x411ced
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm2, dword [ebp - 0xbc]
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm3, xmm2
jbe 0x411d10
movaps xmm0, xmm3
jmp 0x411d17
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm3, xmm1
jbe 0x411d32
movaps xmm7, xmm3
jmp 0x411d36
minss xmm7, xmm1
mulss xmm7, xmm5
lea edi, [ebp - 0x18]
xor eax, eax
addss xmm7, xmm6
cvttss2si ebx, xmm7
shl ebx, 0x18
or ebx, ecx
cmp byte [ebp - 0x94], al
cmovne edi, eax
test ebx, 0xff000000
je 0x412a6b
test edx, edx
jne 0x411d84
mov ecx, dword [ebp - 0x84]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411d70
mov eax, dword [ebp - 0x84]
sub ecx, edx
lea edx, [eax + ecx]
jmp 0x411d8a
mov eax, dword [ebp - 0x84]
cmp eax, edx
je 0x412a6b
cmp dword [ebp - 0xa8], 0
jne 0x411da7
mov eax, dword [esi + 0x16f0]
mov dword [ebp - 0xa8], eax
ucomiss xmm4, xmm3
lahf
test ah, 0x44
jp 0x411db8
movss xmm4, dword [esi + 0x16f4]
mov eax, dword [ebp - 0xa0]
mov esi, dword [eax + 0x254]
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x3c]
shl ecx, 4
movups xmm0, xmmword [eax + ecx - 0x10]
movups xmmword [ebp - 0xec], xmm0
test edi, edi
je 0x411e3e
movss xmm1, dword [edi]
movss xmm0, dword [ebp - 0xec]
comiss xmm0, xmm1
jae 0x411df6
movss dword [ebp - 0xec], xmm1
movss xmm1, dword [edi + 4]
movss xmm0, dword [ebp - 0xe8]
comiss xmm0, xmm1
jae 0x411e10
movss dword [ebp - 0xe8], xmm1
movss xmm0, dword [edi + 8]
comiss xmm0, dword [ebp - 0xe4]
ja 0x411e26
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [edi + 0xc]
comiss xmm0, dword [ebp - 0xe0]
ja 0x411e3c
movss dword [ebp - 0xe0], xmm0
test edi, edi
mov edi, dword [ebp - 0x84]
setne al
movzx eax, al
movaps xmm2, xmm4
push eax
push ecx
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0xec]
mov dword [esp], 0
push edx
push edi
push eax
mov eax, dword [ebp - 0x88]
push ebx
push dword [eax + 4]
push dword [eax]
push esi
call fcn.0041fb40
mov esi, dword [0x4e3ef0]
xorps xmm3, xmm3
jmp 0x412a71
mov ecx, dword [edi + 0xc]
or ebx, 0xffffffff
movss xmm0, dword [edx + 0xc]
xorps xmm7, xmm7
mov eax, dword [edi + 0x38]
xorps xmm5, xmm5
addss xmm0, dword [edi + 0xccc]
mov edx, dword [edi + 0x3c]
mov dword [ebp - 0xd0], ecx
lea eax, [ecx + eax*2]
mov dword [ebp - 0x80], 0
mov dword [ebp - 0xc8], eax
mov ecx, 1
mov eax, dword [edi + 0x40]
movss dword [edi + 0xccc], xmm0
mov dword [ebp - 0x98], 0xfffffc19
cmp edx, eax
je 0x411ef2
mov ecx, dword [ebp - 0xd0]
cmovl eax, edx
mov dword [ebp - 0x98], ebx
lea eax, [ecx + eax*2]
mov ecx, 2
mov dword [ebp - 0x80], eax
mov esi, dword [ebp - 0xd0]
mov edx, esi
mov eax, dword [ebp - 0x94]
movzx eax, al
add ecx, eax
xor eax, eax
movzx esi, word [esi]
test si, si
mov dword [ebp - 0xa4], eax
mov esi, dword [ebp - 0x78]
je 0x411f7d
mov esi, edx
movzx ebx, word [esi]
or esi, 0xffffffff
cmp bx, 0xa
jne 0x411f5a
inc eax
mov dword [ebp - 0xa4], eax
cmp esi, 0xffffffff
jne 0x411f41
cmp edx, dword [ebp - 0xc8]
jb 0x411f41
dec ecx
mov esi, eax
test ecx, ecx
jle 0x411f6e
cmp dword [ebp - 0x98], 0xffffffff
jne 0x411f5a
cmp edx, dword [ebp - 0x80]
jb 0x411f5a
dec ecx
mov dword [ebp - 0x98], eax
test ecx, ecx
jle 0x411f6e
movzx eax, word [edx + 2]
add edx, 2
mov ebx, eax
test ax, ax
mov eax, dword [ebp - 0xa4]
jne 0x411f20
mov dword [ebp - 0xa4], esi
mov esi, dword [ebp - 0x78]
mov ebx, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xc8]
inc eax
cmp ebx, 0xffffffff
mov dword [ebp - 0xa4], eax
mov ecx, eax
cmovne ecx, ebx
mov ebx, dword [ebp - 0xd0]
mov dword [ebp - 0xe0], ecx
mov ecx, dword [ebp - 0x98]
cmp ecx, 0xffffffff
cmove ecx, eax
mov dword [ebp - 0x98], ecx
mov ecx, edx
cmp edx, ebx
jbe 0x411fc4
cmp word [ecx - 2], 0xa
je 0x411fc4
add ecx, 0xfffffffe
cmp ecx, ebx
ja 0x411fb6
mov ebx, dword [esi + 0x16f0]
movaps xmm1, xmm3
movss xmm2, dword [esi + 0x16f4]
movaps xmm4, xmm3
divss xmm2, dword [ebx]
cmp ecx, edx
jae 0x412026
mov esi, dword [ebp - 0xc8]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x411ffc
maxss xmm1, xmm4
movaps xmm4, xmm3
jmp 0x41201f
cmp edx, 0xd
je 0x41201f
mov edx, eax
cmp edx, dword [ebx + 0x1c]
jge 0x412012
mov eax, dword [ebx + 0x24]
movss xmm0, dword [eax + edx*4]
jmp 0x412017
movss xmm0, dword [ebx + 0x38]
mulss xmm0, xmm2
addss xmm4, xmm0
cmp ecx, esi
jb 0x411fe6
mov esi, dword [ebp - 0x78]
cmp dword [ebp - 0x98], 0
maxss xmm4, xmm1
movd xmm6, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0x68]
cvtdq2ps xmm6, xmm6
movss xmm0, dword [ecx + 0x16f4]
mulss xmm6, xmm0
movss dword [ebp - 0xf8], xmm4
movss dword [ebp - 0x104], xmm6
jl 0x4120fe
mov eax, dword [ebp - 0x80]
mov ecx, eax
mov edx, dword [ebp - 0xd0]
cmp eax, edx
jbe 0x412081
cmp word [ecx - 2], 0xa
je 0x41207e
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x412070
mov eax, dword [ebp - 0x80]
mov ebx, dword [esi + 0x16f0]
movaps xmm1, xmm3
movss xmm2, dword [esi + 0x16f4]
movaps xmm5, xmm3
divss xmm2, dword [ebx]
cmp ecx, eax
jae 0x4120e0
mov esi, dword [ebp - 0x80]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x4120b6
maxss xmm1, xmm5
movaps xmm5, xmm3
jmp 0x4120d9
cmp edx, 0xd
je 0x4120d9
mov edx, eax
cmp edx, dword [ebx + 0x1c]
jge 0x4120cc
mov eax, dword [ebx + 0x24]
movss xmm0, dword [eax + edx*4]
jmp 0x4120d1
movss xmm0, dword [ebx + 0x38]
mulss xmm0, xmm2
addss xmm5, xmm0
cmp ecx, esi
jb 0x4120a0
mov esi, dword [ebp - 0x78]
movd xmm7, dword [ebp - 0x98]
maxss xmm5, xmm1
mov ecx, dword [ebp - 0x68]
cvtdq2ps xmm7, xmm7
movss xmm0, dword [ecx + 0x16f4]
mulss xmm7, xmm0
mov edx, dword [ebp - 0x94]
test dl, dl
je 0x412131
movd xmm1, dword [ebp - 0xa4]
cvtdq2ps xmm1, xmm1
mulss xmm1, xmm0
movss dword [ebp - 0x60], xmm1
movss xmm1, dword [ebp - 0xac]
movaps xmm0, xmm1
movss dword [ebp - 0xb0], xmm0
jmp 0x412139
movss xmm1, dword [ebp - 0xac]
cmp byte [edi + 0xcd0], 0
je 0x4121fb
test dword [ebp + 0x10], 0x1000
jne 0x412197
movss xmm2, dword [edi + 0x34]
movaps xmm0, xmm1
comiss xmm2, xmm4
mulss xmm0, dword [0x4dc68c]
movaps xmm1, xmm4
jbe 0x412174
subss xmm1, xmm0
movaps xmm0, xmm3
maxss xmm0, xmm1
jmp 0x412185
subss xmm1, dword [ebp - 0xac]
comiss xmm1, xmm2
jb 0x41219e
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x34], xmm0
jmp 0x41219e
mov dword [edi + 0x34], 0
test dl, dl
je 0x4121fb
mov eax, dword [ebp - 0xa0]
movaps xmm1, xmm6
subss xmm1, dword [ecx + 0x16f4]
movss xmm2, dword [eax + 0x60]
comiss xmm2, xmm1
jbe 0x4121c6
movaps xmm0, xmm3
maxss xmm0, xmm1
jmp 0x4121d5
movaps xmm0, xmm6
subss xmm0, dword [ebp - 0x9c]
maxss xmm0, xmm2
subss xmm2, xmm0
movss dword [eax + 0x60], xmm0
addss xmm2, dword [eax + 0xbc]
movss dword [ebp - 0xd4], xmm2
movss dword [eax + 0xbc], xmm2
movss dword [ebp - 0x70], xmm2
movss xmm6, dword [edi + 0x34]
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x3c]
mov byte [edi + 0xcd0], 0
movss dword [ebp - 0xa4], xmm6
cmp edx, ecx
je 0x4125d6
mov ebx, dword [ebp - 0xd0]
mov eax, ecx
cmovl eax, edx
cmovge ecx, edx
cmp byte [ebp - 0x94], 0
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0xd0]
lea ecx, [eax + ecx*2]
mov dword [ebp - 0xc8], ecx
je 0x412258
movss dword [ebp - 0xfc], xmm3
movss dword [ebp - 0x9c], xmm3
jmp 0x412268
movss xmm0, dword [0x4dc6d4]
movss dword [ebp - 0x9c], xmm0
movups xmm1, xmmword [esi + 0x16d0]
comiss xmm3, xmm1
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xff
mulss xmm2, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm1
jbe 0x41228f
movaps xmm0, xmm3
jmp 0x41229b
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm1
movss xmm4, dword [0x4dc754]
movss xmm1, dword [ebp - 0xc0]
comiss xmm3, xmm1
mulss xmm0, xmm4
addss xmm0, dword [0x4dc6a0]
cvttss2si edx, xmm0
jbe 0x4122c5
movaps xmm0, xmm3
jmp 0x4122d1
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm1
movss xmm1, dword [ebp - 0xbc]
mulss xmm0, xmm4
addss xmm0, dword [0x4dc6a0]
cvttss2si eax, xmm0
shl eax, 8
or edx, eax
comiss xmm3, xmm1
jbe 0x4122f8
movaps xmm0, xmm3
jmp 0x412304
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm1
movss xmm1, dword [0x4dc6a0]
mulss xmm0, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
shl eax, 0x10
or edx, eax
comiss xmm3, xmm2
jbe 0x412327
movaps xmm0, xmm3
jmp 0x412333
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
shl eax, 0x18
or eax, edx
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0xe0], eax
movss xmm4, dword [edx]
addss xmm4, xmm5
subss xmm4, xmm6
movss xmm6, dword [ebp - 0xd4]
addss xmm6, xmm7
subss xmm6, xmm3
movss dword [ebp - 0x80], xmm6
cmp ebx, ecx
jae 0x4125ce
movss xmm7, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x68]
nop dword [eax]
nop dword [eax + eax]
movaps xmm0, xmm7
addss xmm0, dword [eax + 0x16f4]
comiss xmm6, xmm0
ja 0x4125ce
movss xmm0, dword [ebp - 0xcc]
comiss xmm0, xmm6
jbe 0x4123d9
cmp ebx, ecx
jae 0x4125ad
nop dword [eax]
mov ax, word [ebx]
add ebx, 2
cmp ax, 0xa
je 0x4125aa
cmp ebx, ecx
jb 0x4123c0
jmp 0x4125aa
mov edx, dword [esi + 0x16f0]
movaps xmm5, xmm3
movss xmm2, dword [esi + 0x16f4]
movaps xmm1, xmm3
divss xmm2, dword [edx]
cmp ebx, ecx
jae 0x41243f
movzx eax, word [ebx]
add ebx, 2
mov ecx, eax
cmp eax, 0xa
je 0x41242f
cmp ecx, 0xd
je 0x412423
cmp ecx, dword [edx + 0x1c]
jge 0x412416
mov eax, dword [edx + 0x24]
movss xmm0, dword [eax + ecx*4]
jmp 0x41241b
movss xmm0, dword [edx + 0x38]
mulss xmm0, xmm2
addss xmm1, xmm0
mov ecx, dword [ebp - 0xc8]
cmp ebx, ecx
jb 0x4123f5
jmp 0x41243f
mov ecx, dword [ebp - 0xc8]
movaps xmm5, xmm3
maxss xmm5, xmm1
movaps xmm1, xmm3
mov edx, dword [ebp - 0x68]
maxss xmm1, xmm5
comiss xmm3, xmm1
jb 0x41247c
mov eax, dword [edx + 0x16f0]
cmp dword [eax + 0x1c], 0x20
jle 0x412464
mov eax, dword [eax + 0x24]
movss xmm0, dword [eax + 0x80]
jmp 0x412469
movss xmm0, dword [eax + 0x38]
mulss xmm0, dword [0x4dc6a0]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss xmm0, dword [ebp - 0xfc]
addss xmm1, xmm4
subss xmm0, dword [edx + 0x16f4]
movss xmm2, dword [ebp - 0x9c]
addss xmm4, xmm3
movss xmm5, dword [ebp - 0xd8]
addss xmm2, xmm6
movss dword [ebp - 0xbc], xmm1
addss xmm0, xmm6
comiss xmm5, xmm4
movss dword [ebp - 0xc4], xmm4
movss dword [ebp - 0xc0], xmm0
movss dword [ebp - 0xb8], xmm2
jbe 0x4124dc
movaps xmm4, xmm5
movss dword [ebp - 0xc4], xmm4
movss xmm5, dword [ebp - 0xcc]
comiss xmm5, xmm0
jbe 0x4124f4
movaps xmm0, xmm5
movss dword [ebp - 0xc0], xmm0
movss xmm5, dword [ebp - 0x1c]
comiss xmm1, xmm5
jbe 0x412509
movaps xmm1, xmm5
movss dword [ebp - 0xbc], xmm1
comiss xmm2, xmm7
jbe 0x412519
movaps xmm2, xmm7
movss dword [ebp - 0xb8], xmm2
comiss xmm2, dword [ebp - 0xcc]
jbe 0x4125a4
comiss xmm7, xmm0
jbe 0x4125a4
comiss xmm1, dword [ebp - 0xd8]
jbe 0x4125a4
comiss xmm5, xmm4
jbe 0x4125a4
push 0xffffffffffffffff
push ecx
mov dword [esp], 0
lea eax, [ebp - 0xbc]
push dword [ebp - 0xe0]
push eax
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax + 0x254]
call fcn.0041d2f0
movss xmm0, dword [ebp - 0xa8]
xorps xmm3, xmm3
mov esi, dword [0x4e3ef0]
movss xmm6, dword [ebp - 0x80]
movss xmm7, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xc8]
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [ebp - 0xdc]
movss dword [ebp - 0xdc], xmm0
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 0x68]
movss xmm4, dword [edx]
addss xmm6, dword [eax + 0x16f4]
subss xmm4, dword [ebp - 0xa4]
movss dword [ebp - 0x80], xmm6
cmp ebx, ecx
jb 0x412390
movss xmm6, dword [ebp - 0xa4]
movups xmm2, xmmword [esi + 0x1440]
movss xmm7, dword [0x4dc6bc]
comiss xmm3, xmm2
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm2
jbe 0x412605
movaps xmm0, xmm3
jmp 0x41260c
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm4, dword [0x4dc754]
movss xmm5, dword [0x4dc6a0]
movss xmm2, dword [ebp - 0xc0]
comiss xmm3, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si ebx, xmm0
jbe 0x41263a
movaps xmm0, xmm3
jmp 0x412641
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm2, dword [ebp - 0xbc]
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 8
or ebx, eax
comiss xmm3, xmm2
jbe 0x412664
movaps xmm0, xmm3
jmp 0x41266b
movaps xmm0, xmm7
minss xmm0, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x10
or ebx, eax
comiss xmm3, xmm1
jbe 0x412686
movaps xmm0, xmm3
jmp 0x41268d
movaps xmm0, xmm7
minss xmm0, xmm1
mulss xmm0, xmm4
lea edx, [ebp - 0x18]
mov edi, dword [edi + 0x28]
mov dword [ebp - 0xe0], 0
addss xmm0, xmm5
cvttss2si eax, xmm0
shl eax, 0x18
or ebx, eax
mov eax, dword [ebp - 0x88]
movss xmm0, dword [eax]
mov eax, dword [ebp - 0x68]
subss xmm0, xmm6
mov ecx, dword [eax + 0x16f0]
movss xmm2, dword [eax + 0x16f4]
mov eax, dword [ebp - 0x84]
add edi, eax
cmp byte [ebp - 0x94], 0
movss dword [ebp - 0x20], xmm0
movss xmm0, dword [ebp - 0xd4]
cmovne edx, dword [ebp - 0xe0]
subss xmm0, xmm3
mov dword [ebp - 0xb4], ecx
movss dword [ebp - 0x1c], xmm0
test ebx, 0xff000000
je 0x412817
test edi, edi
jne 0x41272c
mov ecx, eax
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x412714
mov eax, dword [ebp - 0x84]
sub ecx, edi
lea edi, [ecx + eax]
mov ecx, dword [ebp - 0xb4]
cmp eax, edi
je 0x412817
test ecx, ecx
jne 0x412744
mov eax, dword [esi + 0x16f0]
mov dword [ebp - 0xb4], eax
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jp 0x412755
movss xmm2, dword [esi + 0x16f4]
mov eax, dword [ebp - 0xa0]
mov esi, dword [eax + 0x254]
mov ecx, dword [esi + 0x34]
mov eax, dword [esi + 0x3c]
shl ecx, 4
movups xmm0, xmmword [eax + ecx - 0x10]
movups xmmword [ebp - 0xc4], xmm0
test edx, edx
je 0x4127db
movss xmm1, dword [edx]
movss xmm0, dword [ebp - 0xc4]
comiss xmm0, xmm1
jae 0x412793
movss dword [ebp - 0xc4], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [ebp - 0xc0]
comiss xmm0, xmm1
jae 0x4127ad
movss dword [ebp - 0xc0], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0xbc]
ja 0x4127c3
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 0xb8]
ja 0x4127d9
movss dword [ebp - 0xb8], xmm0
test edx, edx
setne al
movzx eax, al
push eax
push ecx
mov ecx, dword [ebp - 0xb4]
lea eax, [ebp - 0xc4]
mov dword [esp], 0
push edi
mov edi, dword [ebp - 0x84]
push edi
push eax
push ebx
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push esi
call fcn.0041fb40
mov esi, dword [0x4e3ef0]
xorps xmm3, xmm3
jmp 0x41281d
mov edi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x68]
movss xmm0, dword [ebx + 0x26f0]
comiss xmm3, xmm0
jae 0x41286f
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0xe4], xmm0
fld qword [ebp - 0xe4]
fld qword [0x4dc6c8]
call fcn.004ba080
movss xmm0, dword [0x4dc6b0]
xorps xmm3, xmm3
fstp qword [ebp - 0xe4]
movsd xmm1, qword [ebp - 0xe4]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x41286f
xor al, al
jmp 0x412871
mov al, 1
movss xmm2, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x88]
movss xmm7, dword [0x4dc6a0]
addss xmm2, dword [ebp - 0x104]
movss xmm6, dword [ecx]
addss xmm6, dword [ebp - 0xf8]
subss xmm2, xmm3
subss xmm6, dword [ebp - 0xa4]
movss dword [ebp - 0xd4], xmm2
movaps xmm0, xmm2
movaps xmm4, xmm2
subss xmm0, dword [ebx + 0x16f4]
movss dword [ebp - 0xf8], xmm6
movaps xmm1, xmm6
movss dword [ebp - 0x18], xmm6
addss xmm1, dword [0x4dc6bc]
subss xmm4, dword [0x4dc6c4]
addss xmm0, xmm7
movss dword [ebp - 0x10], xmm1
movss dword [ebp - 0xc], xmm4
movss dword [ebp - 0x14], xmm0
test al, al
je 0x412a40
comiss xmm4, dword [ebp - 0xcc]
jbe 0x412a40
movss xmm5, dword [ebp - 0xdc]
comiss xmm5, xmm0
jbe 0x412a40
comiss xmm1, dword [ebp - 0xd8]
jbe 0x412a40
movss xmm0, dword [ebp - 0xa8]
comiss xmm0, xmm6
jbe 0x412a40
movups xmm2, xmmword [esi + 0x1440]
comiss xmm3, xmm2
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm2
jbe 0x41295b
movaps xmm0, xmm3
jmp 0x412967
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm2
movss xmm5, dword [0x4dc754]
movss xmm2, dword [ebp - 0xc0]
comiss xmm3, xmm2
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si ecx, xmm0
jbe 0x41298d
movaps xmm0, xmm3
jmp 0x412999
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm2
movss xmm2, dword [ebp - 0xbc]
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm3, xmm2
jbe 0x4129bc
movaps xmm0, xmm3
jmp 0x4129c8
movss xmm0, dword [0x4dc6bc]
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm3, xmm1
ja 0x4129ea
movss xmm3, dword [0x4dc6bc]
minss xmm3, xmm1
mulss xmm3, xmm5
push ecx
mov dword [esp], 0x3f800000
movss dword [ebp - 0x5c], xmm6
addss xmm3, xmm7
movss dword [ebp - 0x58], xmm4
cvttss2si eax, xmm3
shl eax, 0x18
or eax, ecx
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax + 0x254]
call fcn.0041d1a0
mov esi, dword [0x4e3ef0]
xorps xmm3, xmm3
movss xmm2, dword [ebp - 0xd4]
movss xmm6, dword [ebp - 0xf8]
cmp byte [ebp - 0x90], 0
je 0x412a74
subss xmm6, dword [0x4dc6bc]
subss xmm2, dword [ebx + 0x16f4]
movss dword [ebx + 0x2784], xmm6
movss dword [ebx + 0x2788], xmm2
jmp 0x412a74
mov edi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x68]
cmp byte [ebp - 0x94], 0
je 0x412b19
mov eax, dword [esi + 0x172c]
movss xmm2, dword [ebx + 0x16f4]
mov byte [eax + 0x86], 1
mov eax, dword [esi + 0x172c]
cmp byte [eax + 0x88], 0
jne 0x412b09
movss xmm4, dword [ebp - 0xb0]
lea ecx, [ebp - 0x5c]
addss xmm2, dword [ebp - 0x60]
movss xmm1, dword [eax + 0xb8]
addss xmm4, xmm3
movss xmm0, dword [eax + 0xbc]
movss dword [ebp - 0x18], xmm1
movss dword [ebp - 0x14], xmm0
addss xmm2, xmm0
addss xmm4, xmm1
movss dword [ebp - 0xc], xmm2
subss xmm2, xmm0
movss dword [ebp - 0x10], xmm4
subss xmm4, xmm1
movaps xmm1, xmm3
movss dword [ebp - 0x58], xmm2
movss dword [ebp - 0x5c], xmm4
call fcn.00403a20
xor edx, edx
lea ecx, [ebp - 0x18]
call fcn.00403b20
call fcn.00407330
call fcn.00412d70
mov esi, dword [0x4e3ef0]
mov eax, dword [ebp - 0xf0]
test al, al
je 0x412bcc
mov eax, dword [esi + 0x172c]
mov ecx, dword [eax + 0x254]
dec dword [ecx + 0x40]
call fcn.0041b640
mov ecx, dword [esi + 0x179c]
mov edx, dword [0x4e3ef0]
sub ecx, 1
mov dword [esi + 0x179c], ecx
jne 0x412b69
mov eax, dword [edx + 0x8c]
test eax, eax
jne 0x412b73
mov eax, dword [edx + 0x80]
mov eax, dword [eax + 0x28]
mov eax, dword [eax]
jmp 0x412b73
mov eax, dword [esi + 0x17a4]
mov eax, dword [eax + ecx*4 - 4]
movss xmm0, dword [edx + 0x84]
mov ecx, dword [edx + 0x172c]
mov dword [edx + 0x16f0], eax
mulss xmm0, dword [eax]
mulss xmm0, dword [eax + 4]
movss dword [edx + 0x16f8], xmm0
test ecx, ecx
je 0x412ba6
mulss xmm0, dword [ecx + 0x250]
jmp 0x412ba9
xorps xmm0, xmm0
movss dword [edx + 0x16f4], xmm0
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [edx + 0x1700], eax
mov eax, dword [ebp - 0xf0]
mov dword [edx + 0x16fc], ecx
cmp byte [ebx + 0x2794], 0
je 0x412be8
test al, al
jne 0x412be8
push 0
mov edx, edi
lea ecx, [ebp - 0x74]
call fcn.00406040
add esp, 4
movss xmm0, dword [ebp - 0xf4]
comiss xmm0, dword [0x4dc664]
jbe 0x412c3b
movss xmm0, dword [ebp - 0x108]
xor edx, edx
addss xmm0, dword [ebx + 0x13f8]
mov ecx, dword [ebp - 0x100]
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0xcc]
addss xmm0, dword [ebx + 0x13e8]
movss dword [ebp - 0x70], xmm0
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push 1
call fcn.00406150
add esp, 0xc
test byte [ebp + 0x10], 0x20
movzx ecx, byte [ebp - 0x8a]
movzx eax, byte [ebp - 0x79]
cmovne eax, ecx
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00438c87
mov esp, ebp
pop ebp
ret