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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x4e1040]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, dword [0x4e1ef0]
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 0x40f7bd
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 0x40f470
call fcn.00412c40
mov esi, dword [0x4e1ef0]
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.004029c0
add esp, 4
mov dword [ebp - 0x88], eax
cmp dword [esi + 0x1754], eax
jne 0x40f4a1
mov byte [esi + 0x175c], 1
mov dword [ebp - 0x1c], eax
mov ecx, edi
cmp edi, 0xffffffff
jae 0x40f4c6
nop dword [eax + eax]
mov dl, byte [ecx]
test dl, dl
je 0x40f4c6
cmp dl, 0x23
jne 0x40f4c0
cmp byte [ecx + 1], dl
je 0x40f4c6
inc ecx
cmp ecx, 0xffffffff
jb 0x40f4b0
movss xmm0, dword [esi + 0x16f4]
mov eax, dword [ebp - 0x100]
movss xmm1, dword [0x4da518]
mov edi, dword [esi + 0x16f0]
movss dword [ebp - 0x9c], xmm0
movss dword [ebp - 0xfc], xmm1
cmp eax, ecx
jne 0x40f503
xorps xmm7, xmm7
movss dword [ebp - 0xf4], xmm7
jmp 0x40f569
movss xmm3, dword [0x4da50c]
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.0041fa20
movss xmm1, dword [ebp - 0x74]
xorps xmm7, xmm7
comiss xmm1, xmm7
jbe 0x40f541
movss xmm0, dword [ebp - 0x9c]
divss xmm0, dword [edi]
subss xmm1, xmm0
addss xmm1, dword [0x4da468]
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 0x40f58a
movss xmm0, dword [esi + 0x16f4]
mulss xmm0, dword [0x4da4ac]
movss dword [ebp - 0x9c], xmm0
mov edi, dword [esi + 0x172c]
movss xmm3, dword [edi + 0x120]
comiss xmm7, xmm3
jbe 0x40f5e8
cmp dword [edi + 0x194], 1
movss xmm4, dword [edi + 0xb8]
subss xmm4, dword [edi + 0x18]
movss xmm1, dword [edi + 0x48]
je 0x40f5d4
mov ecx, dword [edi + 0x190]
inc ecx
call fcn.00412ee0
movaps xmm1, xmm0
movss xmm0, dword [ebp - 0x9c]
subss xmm1, dword [edi + 0x50]
subss xmm1, xmm4
addss xmm1, xmm3
movss xmm3, dword [0x4da46c]
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 0x40f632
comiss xmm7, xmm6
jbe 0x40f66b
cmp dword [edi + 0x194], 1
movss xmm0, dword [edi + 0x48]
movss xmm3, dword [edi + 0x4c]
je 0x40f65e
mov ecx, dword [edi + 0x190]
inc ecx
call fcn.00412ee0
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 [0x4da4a0]
jb 0x40f6ab
ucomiss xmm2, xmm7
lahf
test ah, 0x44
jp 0x40f68e
movaps xmm2, xmm5
movss dword [ebp - 0xac], xmm2
jmp 0x40f6ab
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 0x40f6e3
ucomiss xmm6, xmm7
lahf
test ah, 0x44
jp 0x40f6c6
movaps xmm6, xmm4
movss dword [ebp - 0x9c], xmm6
jmp 0x40f6e3
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 0x40f747
addss xmm0, dword [edi + 0x13f8]
jmp 0x40f74a
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 0x40f80c
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.00407230
add esp, 4
test al, al
jne 0x40f7d0
call fcn.00407310
call fcn.00412d50
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00437877
mov esp, ebp
pop ebp
ret
mov esi, dword [0x4e1ef0]
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 0x40f844
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.00403a00
lea edx, [ebp - 0x1c]
lea ecx, [ebp - 0xc4]
call fcn.00403b00
test al, al
je 0x40f7bd
cmp byte [ebp - 0xf0], 0
je 0x40f998
mov edx, dword [edi + 0x16f0]
cmp dword [edx + 0x28], 0x2a
jle 0x40f879
mov eax, dword [edx + 0x30]
mov ecx, 0xffff
movzx eax, word [eax + 0x54]
cmp ax, cx
je 0x40f879
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x18]
lea ebx, [eax + ecx*8]
jmp 0x40f87c
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 0x40f906
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.00413b90
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 0x40f971
inc ecx
test edi, edi
je 0x40f95e
mov eax, edi
cdq
sub eax, edx
sar eax, 1
add eax, edi
jmp 0x40f963
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
lea ecx, [ebx + 0x40]
call fcn.00413b10
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.0041b6e0
mov esi, dword [0x4e1ef0]
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.00403ce0
add esp, 4
mov byte [ebp - 0x8a], al
test al, al
je 0x40fa8a
mov ecx, dword [ebx + 0x264]
cmp ecx, dword [ebx + 0x26c]
jne 0x40fa8a
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.00403c20
mov edx, dword [ebp - 0x68]
add esp, 4
mov byte [ebp - 0x89], al
test al, al
je 0x40fa3c
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 0x40fa40
mov byte [ebp - 0x61], 0
cmp byte [ebp - 0x94], 0
je 0x40faa3
cmp dword [edx + 0x1754], 0
jne 0x40faa3
cmp dword [edi], ebx
jne 0x40faa3
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.004029c0
mov edx, dword [ebp - 0x68]
add esp, 4
cmp dword [edx + 0x1758], eax
jne 0x40faa3
mov cl, 1
jmp 0x40faa5
mov byte [ebp - 0x69], 0
test al, al
je 0x40f9f2
mov byte [ebp - 0x79], 1
mov byte [ebp - 0x69], 0
jmp 0x40f9f6
xor cl, cl
mov eax, dword [edx + 0x1754]
cmp eax, ebx
je 0x40fab9
test byte [ebp + 0x10], 0x10
je 0x40fab9
mov bl, 1
jmp 0x40fabb
xor bl, bl
cmp byte [ebp - 0x8a], 0
jne 0x40fb08
cmp byte [ebp - 0x61], 0
jne 0x40fb08
test cl, cl
jne 0x40fb08
cmp byte [edx + 0x330], cl
je 0x40fcc0
cmp eax, dword [ebp - 0x88]
jne 0x40fcc0
mov dword [esi + 0x1754], 0
mov word [esi + 0x175d], 1
mov dword [esi + 0x1768], 0
jmp 0x40fcc0
cmp eax, dword [ebp - 0x88]
je 0x40fc83
mov eax, dword [edi + 0x2c]
lea ecx, [edi + 4]
push 0x81
mov dword [ebp - 0x1c], eax
call fcn.00413c40
mov esi, dword [edi + 0x14]
lea eax, [edi + 0x10]
cmp esi, 0x81
jge 0x40fb61
test esi, esi
je 0x40fb46
mov eax, esi
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, esi
jmp 0x40fb4b
mov ecx, 8
mov eax, 0x81
cmp ecx, eax
cmovg eax, ecx
lea ecx, [edi + 0x10]
push eax
call fcn.00413de0
lea eax, [edi + 0x10]
push 0x81
push dword [ebp - 0x84]
mov dword [eax], 0x81
mov esi, dword [edi + 0x18]
push esi
call fcn.00499530
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.00402c70
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 0x40fbf6
cmp dword [ebp - 0x1c], edx
jne 0x40fbf6
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 0x40fc55
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 0x40fc55
cmp byte [ebp - 0x69], cl
mov eax, 1
movzx ebx, bl
cmovne ebx, eax
test dword [ebp + 0x10], 0x2000
je 0x40fc62
mov byte [edi + 0x44], 1
test cl, cl
jne 0x40fc7d
cmp byte [ebp - 0x79], cl
jne 0x40fc7b
cmp byte [ebp - 0x61], cl
je 0x40fc7d
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0xe1], cl
je 0x40fc7d
mov bl, 1
mov esi, dword [0x4e1ef0]
mov eax, dword [ebp - 0x88]
mov dword [esi + 0x1754], eax
mov word [esi + 0x175d], 1
test eax, eax
je 0x40fca3
mov byte [esi + 0x175c], 1
mov ecx, dword [ebp - 0xb0]
mov dword [esi + 0x1768], ecx
call fcn.0040b910
mov esi, dword [0x4e1ef0]
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x88]
movss xmm4, dword [0x4da450]
mov byte [ebp - 0x79], 0
mov byte [ebp - 0x8a], 0
cmp dword [edx + 0x1754], eax
jne 0x410b9e
cmp byte [ebp - 0x90], 0
jne 0x40fd6b
cmp byte [edx + 0x175d], 0
jne 0x40fd6b
push 0x81
lea ecx, [edi + 4]
call fcn.00413c40
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.00402c70
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 [0x4da450]
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 [0x4e1ef0]
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 0x40fdc8
mov eax, dword [ebp - 0xa0]
movss xmm2, dword [edx + 0xd0]
subss xmm2, dword [eax + 0xbc]
subss xmm2, dword [edx + 0x13e8]
jmp 0x40fdd4
movss xmm2, dword [edx + 0x16f4]
mulss xmm2, xmm4
mov al, byte [edx + 0xa8]
test bl, bl
jne 0x40ff08
cmp byte [ebp - 0x89], bl
je 0x40fdfa
test al, al
jne 0x40fe3d
cmp byte [edx + 0x374], bl
jne 0x40ff08
cmp byte [edx + 0x330], 0
je 0x40fe9d
cmp byte [edi + 0xcd1], 0
jne 0x40fe9d
movaps xmm1, xmm3
mov ecx, edi
call fcn.0040ddc0
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 0x40ff23
cmp byte [edx + 0x374], 0
je 0x40fdfa
push 0x1000c
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1b0
add esp, 4
mov byte [edi + 0xcd0], 1
lea edx, [edi + 0x38]
mov dword [edi + 0xccc], 0xbe99999a
mov ecx, edi
push 0x3000d
call fcn.0040e1b0
mov esi, dword [0x4e1ef0]
add esp, 4
mov edx, dword [ebp - 0x68]
mov byte [edi + 0xcd0], 1
mov dword [edi + 0xccc], 0xbe99999a
mov dword [ebp - 0x78], esi
jmp 0x40ff23
cmp byte [edx + 0xd4], 0
je 0x40ff23
cmp byte [edi + 0xcd1], 0
jne 0x40ff2c
movss xmm0, dword [edx + 0x320]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x40fed4
movss xmm0, dword [edx + 0x324]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x40ff23
movaps xmm1, xmm3
mov ecx, edi
call fcn.0040ddc0
mov ecx, dword [edi + 0x3c]
cmp ecx, dword [edi + 0x40]
jne 0x40feec
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 0x40ff23
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 0x40ff3c
cmp byte [edx + 0xd4], 0
jne 0x40ff3c
mov byte [edi + 0xcd1], 0
cmp word [edx + 0x2e6], 0
lea ebx, [edx + 0x2e6]
je 0x40ffe0
cmp byte [edx + 0xe1], 0
je 0x40ff62
cmp byte [edx + 0xe3], 0
je 0x40ffc6
cmp byte [ebp - 0x90], 0
je 0x40ffc6
xor esi, esi
nop dword [eax]
movzx eax, word [ebx]
test ax, ax
je 0x40ffba
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0x60]
sub esp, 8
mov dword [ebp - 0x60], eax
call fcn.0040f250
add esp, 8
test al, al
je 0x40ffb1
push dword [ebp - 0x60]
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1b0
add esp, 4
mov byte [edi + 0xcd0], 1
mov dword [edi + 0xccc], 0xbe99999a
inc esi
add ebx, 2
cmp esi, 0x11
jl 0x40ff70
mov esi, dword [0x4e1ef0]
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 0x410029
cmp byte [eax + 0xe4], 0
je 0x41001e
cmp byte [eax + 0xe1], 0
jne 0x41001e
mov eax, 1
jmp 0x410020
xor eax, eax
test eax, eax
mov eax, dword [ebp - 0x68]
je 0x41004f
jmp 0x41003b
cmp byte [eax + 0xe1], 0
je 0x41004f
cmp byte [eax + 0xe4], 0
jne 0x41004f
cmp byte [eax + 0xe3], 0
jne 0x41004f
mov byte [ebp - 0x89], 1
test dl, dl
je 0x410056
mov byte [ebp - 0x89], 0
test bl, bl
je 0x410092
mov ebx, dword [ebp - 0x68]
mov al, byte [eax + 0xe3]
mov dl, al
mov byte [ebp - 0x61], dl
cmp byte [ebx + 0xe4], 0
je 0x41009b
cmp byte [ebx + 0xe1], 0
mov byte [ebp - 0x61], dl
jne 0x41009b
cmp byte [ebx + 0xe3], 0
mov byte [ebp - 0x61], dl
jne 0x41009b
mov byte [ebp - 0x69], 1
mov byte [ebp - 0x61], dl
jmp 0x41009f
mov dl, byte [eax + 0xe1]
mov byte [ebp - 0x61], dl
mov byte [ebp - 0x69], 0
mov eax, dword [esi + 0x2c]
test eax, eax
js 0x41015a
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x411470
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41015a
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x411467
mov eax, dword [esi + 0x30]
xorps xmm2, xmm2
test eax, eax
js 0x410245
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410210
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410245
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410242
cmp byte [ebp - 0x69], 0
je 0x410226
mov eax, 0x10005
or eax, dword [ebp - 0x98]
jmp 0x41148e
cmp byte [ebp - 0x61], 0
mov eax, 0x10001
mov ecx, 0x1000d
cmovne eax, ecx
or eax, dword [ebp - 0x98]
jmp 0x41148e
xorps xmm2, xmm2
mov eax, dword [esi + 0x34]
test eax, eax
js 0x41035e
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x4102fb
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x41035e
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x41035e
xorps xmm2, xmm2
cmp byte [ebp - 0x94], 0
je 0x41035e
mov ebx, dword [ebp - 0x68]
cmp byte [ebx + 0xe1], 0
je 0x410348
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 0x4114b6
movzx eax, byte [ebp - 0x69]
lea eax, [eax*4 + 0x10002]
or eax, dword [ebp - 0x98]
jmp 0x41148e
mov eax, dword [esi + 0x38]
test eax, eax
js 0x41048d
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x410415
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41048d
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x41048d
cmp byte [ebp - 0x94], 0
je 0x41048d
mov ebx, dword [ebp - 0x68]
cmp byte [ebx + 0xe1], 0
je 0x410477
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 0x4114b6
movzx eax, byte [ebp - 0x69]
lea eax, [eax*4 + 0x10003]
or eax, dword [ebp - 0x98]
jmp 0x41148e
mov eax, dword [esi + 0x44]
test eax, eax
js 0x410548
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x411444
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x410548
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x411444
mov eax, dword [esi + 0x48]
xorps xmm0, xmm0
test eax, eax
js 0x410627
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4105fe
movss xmm3, dword [esi + 0x74]
comiss xmm2, xmm3
jbe 0x410627
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm3
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410624
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 0x41148f
xorps xmm0, xmm0
mov eax, dword [esi + 0x4c]
test eax, eax
js 0x41071c
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4106da
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41071c
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x41071c
cmp byte [ebp - 0x90], 0
je 0x41071c
mov ecx, dword [ebp - 0x98]
or ecx, 0x10008
push ecx
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1b0
mov byte [edi + 0xcd0], 1
add esp, 4
mov dword [edi + 0xccc], 0xbe99999a
mov esi, dword [0x4e1ef0]
mov dword [ebp - 0x78], esi
jmp 0x4114bf
mov eax, dword [esi + 0x50]
test eax, eax
js 0x41084c
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x4107d3
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x41084c
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x41084c
cmp byte [ebp - 0x90], 0
je 0x41084c
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jne 0x41083b
cmp byte [ebp - 0x61], 0
je 0x4107f1
push 0x3000c
jmp 0x41081d
mov eax, dword [ebp - 0x68]
cmp byte [eax + 0xa8], 0
je 0x41083b
cmp byte [eax + 0xe4], 0
je 0x41083b
cmp byte [eax + 0xe3], 0
jne 0x41083b
cmp byte [eax + 0xe1], 0
jne 0x41083b
push 0x30004
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1b0
mov dword [edi + 0xccc], 0xbe99999a
add esp, 4
mov byte [edi + 0xcd0], 1
mov ecx, dword [ebp - 0x98]
or ecx, 0x10009
jmp 0x4106ef
mov eax, dword [esi + 0x54]
xorps xmm2, xmm2
test eax, eax
js 0x41098c
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410906
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x41098c
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410989
mov edx, dword [ebp + 0x10]
mov eax, edx
shr eax, 0xb
and al, 1
cmp byte [ebp - 0x94], 0
je 0x41092a
mov ecx, dword [ebp - 0x68]
mov cl, byte [ecx + 0xe1]
test al, al
je 0x410953
test cl, cl
jne 0x410957
mov dword [esi + 0x1754], 0
mov word [esi + 0x175d], 1
mov dword [esi + 0x1768], 0
mov byte [ebp - 0x8a], 1
jmp 0x4114b6
test cl, cl
jne 0x41092a
cmp byte [ebp - 0x90], 0
je 0x411514
mov dword [ebp - 0x60], 0xa
sub esp, 8
lea ecx, [ebp - 0x60]
call fcn.0040f250
add esp, 8
test al, al
je 0x41070e
push dword [ebp - 0x60]
jmp 0x4106f0
xorps xmm2, xmm2
mov ecx, dword [ebp + 0x10]
test ecx, 0x400
je 0x410a86
mov eax, dword [esi + 0x28]
test eax, eax
js 0x410a86
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410a51
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410a86
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410a86
mov ecx, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x68]
cmp byte [ebx + 0xe1], 0
jne 0x410a86
cmp byte [ebx + 0xe2], 0
jne 0x410a86
cmp byte [ebx + 0xe3], 0
jne 0x410a86
cmp byte [ebp - 0x90], 0
je 0x410a86
mov dword [ebp - 0x60], 9
mov edx, ecx
jmp 0x41096b
mov eax, dword [esi + 0x58]
xorps xmm2, xmm2
test eax, eax
js 0x410c10
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410b40
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410c10
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410c0d
mov eax, dword [ebp - 0x90]
mov dword [esi + 0x1754], 0
mov word [esi + 0x175d], 1
mov dword [esi + 0x1768], 0
test al, al
je 0x4119aa
push 0x80
push dword [edi + 0x18]
mov ebx, dword [ebp - 0x84]
push ebx
call fcn.00499530
mov esi, dword [0x4e1ef0]
add esp, 0xc
mov byte [ebx + 0x7f], 0
mov byte [ebp - 0x79], 1
mov dword [ebp - 0x78], esi
movss xmm4, dword [0x4da450]
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x88]
cmp dword [edx + 0x1754], ebx
jne 0x410bbf
test al, al
je 0x410bbf
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x84], eax
cmp byte [ebp - 0x94], 0
movss xmm5, dword [0x4da504]
jne 0x411ae3
movups xmm3, xmmword [esi + 0x14b0]
movss xmm6, dword [0x4da46c]
xorps xmm0, xmm0
comiss xmm0, xmm3
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xff
mulss xmm2, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm3
jbe 0x4119ba
xorps xmm1, xmm1
jmp 0x4119c1
xorps xmm2, xmm2
cmp byte [ebp - 0x89], 0
je 0x4114b6
mov eax, dword [esi + 0x70]
test eax, eax
js 0x410cf6
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410cd0
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410cf6
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410cf6
cmp byte [ebp - 0x90], 0
je 0x410cf6
push 0x1000a
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e1b0
mov eax, dword [edi + 0x38]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], eax
jmp 0x4106fa
mov eax, dword [esi + 0x6c]
test eax, eax
js 0x410dc0
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x410dad
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x410dc0
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410dc0
cmp byte [ebp - 0x90], 0
je 0x410dc0
push 0x1000b
jmp 0x410cde
mov eax, dword [esi + 0x5c]
xorps xmm2, xmm2
test eax, eax
js 0x410e92
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410e76
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410e92
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410e8f
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 0x4114af
xorps xmm2, xmm2
cmp byte [ebp - 0xf0], 0
jne 0x411202
mov eax, dword [esi + 0x68]
test eax, eax
js 0x410f5f
movss xmm3, dword [esi + eax*4 + 0x3c0]
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jnp 0x410f52
movss xmm0, dword [esi + 0x74]
comiss xmm3, xmm0
jbe 0x410f5f
movss xmm1, dword [esi + 0x78]
subss xmm3, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x410f5f
cmp byte [ebp - 0x90], 0
jne 0x411019
mov eax, dword [esi + 0x60]
test eax, eax
js 0x411202
movss xmm2, dword [esi + eax*4 + 0x3c0]
xorps xmm0, xmm0
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x41101c
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x411202
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x411202
xorps xmm0, xmm0
cmp byte [ebp - 0x94], 0
je 0x411031
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x411202
mov eax, dword [esi + 0x68]
test eax, eax
js 0x411107
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4110e4
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x411107
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x411107
mov eax, dword [edi + 0x3c]
mov cl, 1
mov byte [ebp - 0x61], cl
cmp eax, dword [edi + 0x40]
jne 0x41110c
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 0x41110c
xor cl, cl
mov byte [ebp - 0x61], cl
mov eax, dword [ebp - 0x68]
cmp dword [eax + 0xb4], 0
je 0x4111c9
mov ebx, dword [edi + 0x40]
mov eax, dword [edi + 0x3c]
mov byte [ebp - 0x61], cl
cmp eax, ebx
je 0x411133
mov edx, ebx
cmovge ebx, eax
cmovl edx, eax
jmp 0x411138
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 0x411189
lea esi, [edi + 0x1c]
test eax, eax
je 0x411169
cdq
sub eax, edx
mov edx, dword [ebp - 0x60]
mov ecx, eax
sar ecx, 1
add ecx, dword [esi + 4]
jmp 0x41116e
mov ecx, 8
cmp ecx, edx
mov eax, edx
cmovg eax, ecx
mov ecx, esi
push eax
call fcn.00413de0
mov esi, dword [0x4e1ef0]
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.00402ce0
mov eax, dword [esi + 0xb4]
add esp, 8
test eax, eax
je 0x4111c9
push dword [edi + 0x24]
push dword [esi + 0xb8]
call eax
mov esi, dword [0x4e1ef0]
add esp, 8
mov dword [ebp - 0x78], esi
cmp byte [ebp - 0x61], 0
je 0x4114b6
mov byte [edi + 0xcd0], 1
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
je 0x4114b6
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e120
mov esi, dword [0x4e1ef0]
mov byte [edi + 0x47], 0
mov dword [ebp - 0x78], esi
jmp 0x4114b6
mov eax, dword [esi + 0x64]
test eax, eax
js 0x4114b6
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x4112bd
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x4114b6
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x4114b6
cmp byte [ebp - 0x90], 0
je 0x411514
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x4112f1
push dword [esi + 0xb8]
call eax
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x41070e
mov esi, dword [0x4e1ef0]
jmp 0x4112f6
mov ebx, 0x4d5526
mov ecx, ebx
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411300
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 0x411387
nop
push 0
mov edx, ebx
lea ecx, [ebp - 0xa8]
call fcn.00402ae0
add ebx, eax
add esp, 4
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x411381
cmp eax, 0x10000
jae 0x41137c
mov edx, dword [ebp + 0x10]
lea ecx, [ebp - 0xa8]
sub esp, 8
call fcn.0040f250
add esp, 8
test al, al
je 0x41137c
mov ecx, dword [ebp - 0x80]
mov ax, word [ebp - 0xa8]
mov word [ecx + esi*2], ax
inc esi
cmp byte [ebx], 0
jne 0x411330
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x60], esi
xor ecx, ecx
mov word [eax + esi*2], cx
test esi, esi
jle 0x41141d
mov edx, dword [edi + 0x40]
mov ecx, dword [edi + 0x3c]
mov eax, dword [edi + 0x2c]
cmp ecx, edx
je 0x4113bb
cmp ecx, eax
jle 0x4113ab
mov dword [edi + 0x3c], eax
mov ecx, eax
cmp edx, eax
jle 0x4113b4
mov dword [edi + 0x40], eax
mov edx, eax
cmp ecx, edx
jne 0x4113bb
mov dword [edi + 0x38], ecx
cmp dword [edi + 0x38], eax
jle 0x4113c3
mov dword [edi + 0x38], eax
lea edx, [edi + 0x38]
mov ecx, edi
call fcn.0040e120
mov ebx, dword [ebp - 0x60]
mov ecx, edi
mov edx, dword [edi + 0x38]
push ebx
push dword [ebp - 0x80]
call fcn.0040dd10
add esp, 8
test al, al
je 0x4113ff
mov edx, dword [edi + 0x38]
lea ecx, [edi + 0x50]
push ebx
push 0
call fcn.0040ef00
add esp, 8
mov byte [edi + 0x47], 0
add dword [edi + 0x38], ebx
jmp 0x411413
movzx eax, word [edi + 0xcc2]
test ax, ax
je 0x411413
dec eax
mov word [edi + 0xcc2], ax
mov eax, dword [ebp - 0x80]
mov byte [edi + 0xcd0], 1
mov ecx, dword [0x4e1ef0]
test eax, eax
je 0x41142d
dec dword [ecx + 0x310]
push eax
mov eax, dword [ecx + 0xc0]
call eax
mov esi, dword [0x4e1ef0]
add esp, 4
mov dword [ebp - 0x78], esi
jmp 0x4114bf
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 0x41148f
mov ecx, dword [ebp - 0x98]
mov dl, byte [ebp - 0x61]
cmp byte [ebp - 0x69], 0
je 0x41147d
mov eax, 0x10004
jmp 0x41148c
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.0040e1b0
mov esi, dword [0x4e1ef0]
add esp, 4
mov dword [ebp - 0x78], esi
mov dword [edi + 0xccc], 0xbe99999a
mov byte [edi + 0xcd0], 1
cmp byte [ebp - 0x90], 0
je 0x411514
mov ebx, dword [edi + 4]
mov eax, dword [edi + 0x20]
shl ebx, 2
cmp ebx, eax
jle 0x4114ff
test eax, eax
je 0x4114df
cdq
sub eax, edx
lea edx, [edi + 0x1c]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x4114e7
mov ecx, 8
lea edx, [edi + 0x1c]
cmp ecx, ebx
mov eax, ebx
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.00413de0
mov esi, dword [0x4e1ef0]
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.00402ce0
add esp, 8
mov edx, dword [ebp + 0x10]
test edx, 0x1c0
je 0x41195d
test dl, 0x40
je 0x4115f1
mov eax, dword [esi + 0x28]
xorps xmm0, xmm0
test eax, eax
js 0x4115f4
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4115e5
movss xmm3, dword [esi + 0x74]
comiss xmm2, xmm3
jbe 0x4115f4
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm3
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x4115f1
mov eax, 0x40
xor ecx, ecx
jmp 0x41179e
xorps xmm0, xmm0
test dl, dl
jns 0x411786
mov eax, dword [esi + 0x34]
test eax, eax
js 0x4116bf
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x4116b2
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x4116bf
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x4116bf
mov eax, 0x80
lea ecx, [eax - 0x7d]
jmp 0x41179e
mov eax, dword [esi + 0x38]
test eax, eax
js 0x411786
movss xmm2, dword [esi + eax*4 + 0x3c0]
ucomiss xmm2, dword [0x4da414]
lahf
test ah, 0x44
jnp 0x411776
movss xmm0, dword [esi + 0x74]
comiss xmm2, xmm0
jbe 0x411786
movss xmm1, dword [esi + 0x78]
subss xmm2, xmm0
cvtps2pd xmm0, xmm1
mulss xmm1, dword [0x4da450]
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.004b8c10
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.004b8c10
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 0x411783
mov edx, dword [ebp + 0x10]
mov eax, 0x80
lea ecx, [eax - 0x7c]
jmp 0x41179e
mov edx, dword [ebp + 0x10]
test edx, 0x100
mov ecx, 0x100
mov eax, 0
cmovne eax, ecx
mov ecx, 0x13
test eax, eax
je 0x41195d
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.00402e10
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.00402e10
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.00402e10
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 0x411881
mov eax, dword [ebp - 0x3c]
xor ebx, ebx
mov esi, eax
lea edi, [ecx + eax]
test edi, edi
je 0x411850
cmp esi, edi
jae 0x411876
cmp byte [esi], 0
je 0x411876
push edi
mov edx, esi
lea ecx, [ebp - 0x1c]
call fcn.00402ae0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x411876
cmp eax, 0x10000
jae 0x411848
inc ebx
jmp 0x411848
mov edi, dword [ebp - 0xb4]
mov dword [edi + 0x38], ebx
jmp 0x411887
mov edi, dword [ebp - 0xb4]
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x60]
je 0x4118d7
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 0x4118a8
cmp esi, ebx
jae 0x4118d4
cmp byte [esi], 0
je 0x4118d4
push ebx
mov edx, esi
lea ecx, [ebp - 0x1c]
call fcn.00402ae0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4118d1
cmp eax, 0x10000
mov eax, dword [ebp - 0x80]
jae 0x4118a0
inc eax
jmp 0x411899
mov eax, dword [ebp - 0x80]
mov dword [edi + 0x3c], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0xb0]
je 0x411927
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 0x4118f8
cmp esi, ebx
jae 0x411924
cmp byte [esi], 0
je 0x411924
push ebx
mov edx, esi
lea ecx, [ebp - 0x1c]
call fcn.00402ae0
add esi, eax
add esp, 4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x411921
cmp eax, 0x10000
mov eax, dword [ebp - 0x80]
jae 0x4118f0
inc eax
jmp 0x4118ec
mov eax, dword [ebp - 0x80]
mov dword [edi + 0x40], eax
cmp byte [ebp - 0x30], 0
je 0x411954
mov edx, dword [edi + 4]
push 0
push ecx
push dword [ebp - 0x3c]
mov ecx, dword [edi + 0xc]
call fcn.00402c70
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 [0x4e1ef0]
mov dword [ebp - 0x78], esi
mov eax, dword [ebp - 0x90]
test al, al
je 0x4119aa
mov ebx, dword [edi + 0x24]
mov eax, ebx
mov ecx, dword [ebp - 0x84]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x411992
test dl, dl
je 0x41198e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x411992
add eax, 2
add ecx, 2
test dl, dl
jne 0x411972
xor eax, eax
jmp 0x411997
sbb eax, eax
or eax, 1
test eax, eax
je 0x410b93
push 0x80
push ebx
jmp 0x410b73
movss xmm4, dword [0x4da450]
mov edx, dword [ebp - 0x68]
jmp 0x410ba4
movaps xmm1, xmm6
minss xmm1, xmm3
movss xmm3, dword [ebp - 0xc0]
comiss xmm0, xmm3
mulss xmm1, xmm5
addss xmm1, xmm4
cvttss2si edx, xmm1
jbe 0x4119df
xorps xmm1, xmm1
jmp 0x4119e6
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 0x411a09
xorps xmm1, xmm1
jmp 0x411a10
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 0x411a2d
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.00406980
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 [0x4e1ef0]
addss xmm2, xmm4
movss xmm5, dword [0x4da504]
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 0x411b53
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 0x411bd8
cmp byte [ebp - 0x94], 0
je 0x411bd8
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.004029c0
mov edx, dword [ebp - 0x68]
add esp, 4
cmp dword [edx + 0x1754], eax
jne 0x411bd8
mov al, 1
jmp 0x411bda
xor al, al
cmp dword [edx + 0x1754], ebx
je 0x411e65
test al, al
jne 0x411e65
xor edx, edx
cmp byte [ebp - 0x94], dl
je 0x411c53
mov eax, dword [ebp - 0x84]
xor ecx, ecx
mov bl, byte [eax]
lea edx, [eax + 1]
test bl, bl
je 0x411c22
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 0x411c10
mov al, byte [edx - 1]
dec edx
cmp al, 0xa
je 0x411c2f
cmp al, 0xd
je 0x411c2f
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 0x411c56
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 [0x4da46c]
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm2
jbe 0x411c99
movaps xmm0, xmm3
jmp 0x411ca0
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm6, dword [0x4da450]
movss xmm2, dword [ebp - 0xc0]
comiss xmm3, xmm2
mulss xmm0, xmm5
addss xmm0, xmm6
cvttss2si ecx, xmm0
jbe 0x411cc6
movaps xmm0, xmm3
jmp 0x411ccd
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 0x411cf0
movaps xmm0, xmm3
jmp 0x411cf7
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 0x411d12
movaps xmm7, xmm3
jmp 0x411d16
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 0x412a4b
test edx, edx
jne 0x411d64
mov ecx, dword [ebp - 0x84]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x411d50
mov eax, dword [ebp - 0x84]
sub ecx, edx
lea edx, [eax + ecx]
jmp 0x411d6a
mov eax, dword [ebp - 0x84]
cmp eax, edx
je 0x412a4b
cmp dword [ebp - 0xa8], 0
jne 0x411d87
mov eax, dword [esi + 0x16f0]
mov dword [ebp - 0xa8], eax
ucomiss xmm4, xmm3
lahf
test ah, 0x44
jp 0x411d98
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 0x411e1e
movss xmm1, dword [edi]
movss xmm0, dword [ebp - 0xec]
comiss xmm0, xmm1
jae 0x411dd6
movss dword [ebp - 0xec], xmm1
movss xmm1, dword [edi + 4]
movss xmm0, dword [ebp - 0xe8]
comiss xmm0, xmm1
jae 0x411df0
movss dword [ebp - 0xe8], xmm1
movss xmm0, dword [edi + 8]
comiss xmm0, dword [ebp - 0xe4]
ja 0x411e06
movss dword [ebp - 0xe4], xmm0
movss xmm0, dword [edi + 0xc]
comiss xmm0, dword [ebp - 0xe0]
ja 0x411e1c
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.0041fbd0
mov esi, dword [0x4e1ef0]
xorps xmm3, xmm3
jmp 0x412a51
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 0x411ed2
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 0x411f5d
mov esi, edx
movzx ebx, word [esi]
or esi, 0xffffffff
cmp bx, 0xa
jne 0x411f3a
inc eax
mov dword [ebp - 0xa4], eax
cmp esi, 0xffffffff
jne 0x411f21
cmp edx, dword [ebp - 0xc8]
jb 0x411f21
dec ecx
mov esi, eax
test ecx, ecx
jle 0x411f4e
cmp dword [ebp - 0x98], 0xffffffff
jne 0x411f3a
cmp edx, dword [ebp - 0x80]
jb 0x411f3a
dec ecx
mov dword [ebp - 0x98], eax
test ecx, ecx
jle 0x411f4e
movzx eax, word [edx + 2]
add edx, 2
mov ebx, eax
test ax, ax
mov eax, dword [ebp - 0xa4]
jne 0x411f00
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 0x411fa4
cmp word [ecx - 2], 0xa
je 0x411fa4
add ecx, 0xfffffffe
cmp ecx, ebx
ja 0x411f96
mov ebx, dword [esi + 0x16f0]
movaps xmm1, xmm3
movss xmm2, dword [esi + 0x16f4]
movaps xmm4, xmm3
divss xmm2, dword [ebx]
cmp ecx, edx
jae 0x412006
mov esi, dword [ebp - 0xc8]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x411fdc
maxss xmm1, xmm4
movaps xmm4, xmm3
jmp 0x411fff
cmp edx, 0xd
je 0x411fff
mov edx, eax
cmp edx, dword [ebx + 0x1c]
jge 0x411ff2
mov eax, dword [ebx + 0x24]
movss xmm0, dword [eax + edx*4]
jmp 0x411ff7
movss xmm0, dword [ebx + 0x38]
mulss xmm0, xmm2
addss xmm4, xmm0
cmp ecx, esi
jb 0x411fc6
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 0x4120de
mov eax, dword [ebp - 0x80]
mov ecx, eax
mov edx, dword [ebp - 0xd0]
cmp eax, edx
jbe 0x412061
cmp word [ecx - 2], 0xa
je 0x41205e
add ecx, 0xfffffffe
cmp ecx, edx
ja 0x412050
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 0x4120c0
mov esi, dword [ebp - 0x80]
movzx eax, word [ecx]
add ecx, 2
mov edx, eax
cmp eax, 0xa
jne 0x412096
maxss xmm1, xmm5
movaps xmm5, xmm3
jmp 0x4120b9
cmp edx, 0xd
je 0x4120b9
mov edx, eax
cmp edx, dword [ebx + 0x1c]
jge 0x4120ac
mov eax, dword [ebx + 0x24]
movss xmm0, dword [eax + edx*4]
jmp 0x4120b1
movss xmm0, dword [ebx + 0x38]
mulss xmm0, xmm2
addss xmm5, xmm0
cmp ecx, esi
jb 0x412080
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 0x412111
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 0x412119
movss xmm1, dword [ebp - 0xac]
cmp byte [edi + 0xcd0], 0
je 0x4121db
test dword [ebp + 0x10], 0x1000
jne 0x412177
movss xmm2, dword [edi + 0x34]
movaps xmm0, xmm1
comiss xmm2, xmm4
mulss xmm0, dword [0x4da43c]
movaps xmm1, xmm4
jbe 0x412154
subss xmm1, xmm0
movaps xmm0, xmm3
maxss xmm0, xmm1
jmp 0x412165
subss xmm1, dword [ebp - 0xac]
comiss xmm1, xmm2
jb 0x41217e
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x34], xmm0
jmp 0x41217e
mov dword [edi + 0x34], 0
test dl, dl
je 0x4121db
mov eax, dword [ebp - 0xa0]
movaps xmm1, xmm6
subss xmm1, dword [ecx + 0x16f4]
movss xmm2, dword [eax + 0x60]
comiss xmm2, xmm1
jbe 0x4121a6
movaps xmm0, xmm3
maxss xmm0, xmm1
jmp 0x4121b5
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 0x4125b6
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 0x412238
movss dword [ebp - 0xfc], xmm3
movss dword [ebp - 0x9c], xmm3
jmp 0x412248
movss xmm0, dword [0x4da484]
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 0x41226f
movaps xmm0, xmm3
jmp 0x41227b
movss xmm0, dword [0x4da46c]
minss xmm0, xmm1
movss xmm4, dword [0x4da504]
movss xmm1, dword [ebp - 0xc0]
comiss xmm3, xmm1
mulss xmm0, xmm4
addss xmm0, dword [0x4da450]
cvttss2si edx, xmm0
jbe 0x4122a5
movaps xmm0, xmm3
jmp 0x4122b1
movss xmm0, dword [0x4da46c]
minss xmm0, xmm1
movss xmm1, dword [ebp - 0xbc]
mulss xmm0, xmm4
addss xmm0, dword [0x4da450]
cvttss2si eax, xmm0
shl eax, 8
or edx, eax
comiss xmm3, xmm1
jbe 0x4122d8
movaps xmm0, xmm3
jmp 0x4122e4
movss xmm0, dword [0x4da46c]
minss xmm0, xmm1
movss xmm1, dword [0x4da450]
mulss xmm0, xmm4
addss xmm0, xmm1
cvttss2si eax, xmm0
shl eax, 0x10
or edx, eax
comiss xmm3, xmm2
jbe 0x412307
movaps xmm0, xmm3
jmp 0x412313
movss xmm0, dword [0x4da46c]
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 0x4125ae
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 0x4125ae
movss xmm0, dword [ebp - 0xcc]
comiss xmm0, xmm6
jbe 0x4123b9
cmp ebx, ecx
jae 0x41258d
nop dword [eax]
mov ax, word [ebx]
add ebx, 2
cmp ax, 0xa
je 0x41258a
cmp ebx, ecx
jb 0x4123a0
jmp 0x41258a
mov edx, dword [esi + 0x16f0]
movaps xmm5, xmm3
movss xmm2, dword [esi + 0x16f4]
movaps xmm1, xmm3
divss xmm2, dword [edx]
cmp ebx, ecx
jae 0x41241f
movzx eax, word [ebx]
add ebx, 2
mov ecx, eax
cmp eax, 0xa
je 0x41240f
cmp ecx, 0xd
je 0x412403
cmp ecx, dword [edx + 0x1c]
jge 0x4123f6
mov eax, dword [edx + 0x24]
movss xmm0, dword [eax + ecx*4]
jmp 0x4123fb
movss xmm0, dword [edx + 0x38]
mulss xmm0, xmm2
addss xmm1, xmm0
mov ecx, dword [ebp - 0xc8]
cmp ebx, ecx
jb 0x4123d5
jmp 0x41241f
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 0x41245c
mov eax, dword [edx + 0x16f0]
cmp dword [eax + 0x1c], 0x20
jle 0x412444
mov eax, dword [eax + 0x24]
movss xmm0, dword [eax + 0x80]
jmp 0x412449
movss xmm0, dword [eax + 0x38]
mulss xmm0, dword [0x4da450]
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 0x4124bc
movaps xmm4, xmm5
movss dword [ebp - 0xc4], xmm4
movss xmm5, dword [ebp - 0xcc]
comiss xmm5, xmm0
jbe 0x4124d4
movaps xmm0, xmm5
movss dword [ebp - 0xc0], xmm0
movss xmm5, dword [ebp - 0x1c]
comiss xmm1, xmm5
jbe 0x4124e9
movaps xmm1, xmm5
movss dword [ebp - 0xbc], xmm1
comiss xmm2, xmm7
jbe 0x4124f9
movaps xmm2, xmm7
movss dword [ebp - 0xb8], xmm2
comiss xmm2, dword [ebp - 0xcc]
jbe 0x412584
comiss xmm7, xmm0
jbe 0x412584
comiss xmm1, dword [ebp - 0xd8]
jbe 0x412584
comiss xmm5, xmm4
jbe 0x412584
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.0041d390
movss xmm0, dword [ebp - 0xa8]
xorps xmm3, xmm3
mov esi, dword [0x4e1ef0]
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 0x412370
movss xmm6, dword [ebp - 0xa4]
movups xmm2, xmmword [esi + 0x1440]
movss xmm7, dword [0x4da46c]
comiss xmm3, xmm2
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xff
mulss xmm1, dword [esi + 0x13c0]
movups xmmword [ebp - 0xc4], xmm2
jbe 0x4125e5
movaps xmm0, xmm3
jmp 0x4125ec
movaps xmm0, xmm7
minss xmm0, xmm2
movss xmm4, dword [0x4da504]
movss xmm5, dword [0x4da450]
movss xmm2, dword [ebp - 0xc0]
comiss xmm3, xmm2
mulss xmm0, xmm4
addss xmm0, xmm5
cvttss2si ebx, xmm0
jbe 0x41261a
movaps xmm0, xmm3
jmp 0x412621
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 0x412644
movaps xmm0, xmm3
jmp 0x41264b
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 0x412666
movaps xmm0, xmm3
jmp 0x41266d
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 0x4127f7
test edi, edi
jne 0x41270c
mov ecx, eax
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4126f4
mov eax, dword [ebp - 0x84]
sub ecx, edi
lea edi, [ecx + eax]
mov ecx, dword [ebp - 0xb4]
cmp eax, edi
je 0x4127f7
test ecx, ecx
jne 0x412724
mov eax, dword [esi + 0x16f0]
mov dword [ebp - 0xb4], eax
ucomiss xmm2, xmm3
lahf
test ah, 0x44
jp 0x412735
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 0x4127bb
movss xmm1, dword [edx]
movss xmm0, dword [ebp - 0xc4]
comiss xmm0, xmm1
jae 0x412773
movss dword [ebp - 0xc4], xmm1
movss xmm1, dword [edx + 4]
movss xmm0, dword [ebp - 0xc0]
comiss xmm0, xmm1
jae 0x41278d
movss dword [ebp - 0xc0], xmm1
movss xmm0, dword [edx + 8]
comiss xmm0, dword [ebp - 0xbc]
ja 0x4127a3
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [edx + 0xc]
comiss xmm0, dword [ebp - 0xb8]
ja 0x4127b9
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.0041fbd0
mov esi, dword [0x4e1ef0]
xorps xmm3, xmm3
jmp 0x4127fd
mov edi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x68]
movss xmm0, dword [ebx + 0x26f0]
comiss xmm3, xmm0
jae 0x41284f
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0xe4], xmm0
fld qword [ebp - 0xe4]
fld qword [0x4da478]
call fcn.004b8c10
movss xmm0, dword [0x4da460]
xorps xmm3, xmm3
fstp qword [ebp - 0xe4]
movsd xmm1, qword [ebp - 0xe4]
cvtpd2ps xmm1, xmm1
comiss xmm0, xmm1
jae 0x41284f
xor al, al
jmp 0x412851
mov al, 1
movss xmm2, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x88]
movss xmm7, dword [0x4da450]
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 [0x4da46c]
subss xmm4, dword [0x4da474]
addss xmm0, xmm7
movss dword [ebp - 0x10], xmm1
movss dword [ebp - 0xc], xmm4
movss dword [ebp - 0x14], xmm0
test al, al
je 0x412a20
comiss xmm4, dword [ebp - 0xcc]
jbe 0x412a20
movss xmm5, dword [ebp - 0xdc]
comiss xmm5, xmm0
jbe 0x412a20
comiss xmm1, dword [ebp - 0xd8]
jbe 0x412a20
movss xmm0, dword [ebp - 0xa8]
comiss xmm0, xmm6
jbe 0x412a20
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 0x41293b
movaps xmm0, xmm3
jmp 0x412947
movss xmm0, dword [0x4da46c]
minss xmm0, xmm2
movss xmm5, dword [0x4da504]
movss xmm2, dword [ebp - 0xc0]
comiss xmm3, xmm2
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si ecx, xmm0
jbe 0x41296d
movaps xmm0, xmm3
jmp 0x412979
movss xmm0, dword [0x4da46c]
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 0x41299c
movaps xmm0, xmm3
jmp 0x4129a8
movss xmm0, dword [0x4da46c]
minss xmm0, xmm2
mulss xmm0, xmm5
addss xmm0, xmm7
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm3, xmm1
ja 0x4129ca
movss xmm3, dword [0x4da46c]
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.0041d240
mov esi, dword [0x4e1ef0]
xorps xmm3, xmm3
movss xmm2, dword [ebp - 0xd4]
movss xmm6, dword [ebp - 0xf8]
cmp byte [ebp - 0x90], 0
je 0x412a54
subss xmm6, dword [0x4da46c]
subss xmm2, dword [ebx + 0x16f4]
movss dword [ebx + 0x2784], xmm6
movss dword [ebx + 0x2788], xmm2
jmp 0x412a54
mov edi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x68]
cmp byte [ebp - 0x94], 0
je 0x412af9
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 0x412ae9
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.00403a00
xor edx, edx
lea ecx, [ebp - 0x18]
call fcn.00403b00
call fcn.00407310
call fcn.00412d50
mov esi, dword [0x4e1ef0]
mov eax, dword [ebp - 0xf0]
test al, al
je 0x412bac
mov eax, dword [esi + 0x172c]
mov ecx, dword [eax + 0x254]
dec dword [ecx + 0x40]
call fcn.0041b6e0
mov ecx, dword [esi + 0x179c]
mov edx, dword [0x4e1ef0]
sub ecx, 1
mov dword [esi + 0x179c], ecx
jne 0x412b49
mov eax, dword [edx + 0x8c]
test eax, eax
jne 0x412b53
mov eax, dword [edx + 0x80]
mov eax, dword [eax + 0x28]
mov eax, dword [eax]
jmp 0x412b53
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 0x412b86
mulss xmm0, dword [ecx + 0x250]
jmp 0x412b89
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 0x412bc8
test al, al
jne 0x412bc8
push 0
mov edx, edi
lea ecx, [ebp - 0x74]
call fcn.00406020
add esp, 4
movss xmm0, dword [ebp - 0xf4]
comiss xmm0, dword [0x4da414]
jbe 0x412c1b
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.00406130
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.00437877
mov esp, ebp
pop ebp
ret