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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xe8
mov eax, dword [0x4c60c4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
push esi
mov esi, dword [0x4c8150]
push edi
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], esi
call fcn.004083d0
mov edi, eax
mov dword [ebp - 0x68], eax
test edi, edi
mov dword [ebp - 0x84], edi
sete cl
mov byte [ebp - 0x52], cl
test eax, eax
jne 0x40a815
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0xac]
call fcn.00408420
mov edi, eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x5c]
mov ecx, eax
mov edx, eax
and ecx, 0xc0200
or edx, 6
cmp ecx, 0xc0200
lea ecx, [esi + 0x19fc]
cmovne edx, eax
mov dword [ebp - 0x78], ecx
cmp dword [ecx], 0
mov eax, dword [esi + 0x19c0]
mov dword [ebp - 0x98], eax
mov eax, dword [edi + 0x264]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x94], eax
jne 0x40a864
cmp byte [esi + 0x19cd], 0
je 0x40a864
mov al, 1
jmp 0x40a866
xor al, al
mov byte [edi + 0x82], al
mov eax, dword [ebp - 0x98]
dec eax
cmp dword [ebp - 0x94], eax
mov eax, dword [edi + 0x9c]
setl byte [ebp - 0x4f]
mov dword [ebp - 0x90], eax
test edx, 0x4000000
je 0x40a8ca
mov eax, dword [esi + 0x1b44]
lea esi, [eax + eax*8]
mov eax, dword [ebp - 0x60]
mov edx, dword [eax + 0x1b40]
mov eax, dword [edi + 0x8c]
cmp edi, dword [edx + esi*4 + 4]
setne cl
cmp eax, dword [edx + esi*4]
mov esi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x58]
setne al
or cl, al
mov eax, dword [ebp - 0x90]
or byte [ebp - 0x4f], cl
mov ecx, dword [ebp - 0x78]
cmp byte [ebp - 0x4f], 0
jne 0x40a8dd
test eax, eax
jg 0x40a8dd
mov byte [edi + 0x80], 0
jmp 0x40a8f9
or dword [edi + 0xa0], 8
or dword [edi + 0xa4], 8
or dword [edi + 0xa8], 8
mov byte [edi + 0x80], 1
mov eax, dword [ebp - 0x98]
cmp dword [ebp - 0x94], eax
je 0x40a943
mov dword [edi + 0x264], eax
xor eax, eax
mov dword [edi + 8], edx
movsd xmm0, qword [esi + 0x19b8]
cvtpd2ps xmm0, xmm0
mov word [edi + 0x88], ax
movss dword [edi + 0x268], xmm0
movzx eax, word [esi + 0x1a14]
inc dword [esi + 0x1a14]
mov word [edi + 0x8a], ax
jmp 0x40a949
mov edx, dword [edi + 8]
mov dword [ebp - 0x58], edx
cmp dword [ecx], 0
jne 0x40a957
mov dword [ebp - 0x5c], 0
jmp 0x40a969
mov eax, dword [esi + 0x1a04]
mov esi, dword [ecx]
mov eax, dword [eax + esi*4 - 4]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x98]
cmp dword [ebp - 0x94], eax
je 0x40a987
mov eax, edx
and eax, 0x5000000
neg eax
sbb eax, eax
and eax, dword [ebp - 0x5c]
jmp 0x40a98d
mov eax, dword [edi + 0x330]
cmp dword [edi + 0xbc], 0
lea edx, [edi + 0xbc]
mov dword [ebp - 0x70], eax
jne 0x40a9de
cmp dword [edx + 4], 0
mov dword [ebp - 0x5c], 0
jne 0x40a9c4
push 8
mov ecx, edx
call fcn.004124e0
mov eax, dword [edi + 0xbc]
lea edx, [edi + 0xbc]
mov dword [ebp - 0x5c], eax
mov eax, dword [edi + 4]
mov ecx, dword [edx + 8]
mov edi, dword [ebp - 0x5c]
mov dword [ecx + edi*4], eax
lea ecx, [esi + 0x19fc]
inc dword [edx]
mov edi, dword [ebp - 0x84]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x40aa18
inc edx
mov dword [ebp - 0x78], edx
test eax, eax
je 0x40a9fc
cdq
sub eax, edx
mov edx, dword [ebp - 0x78]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x40aa01
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.004124e0
mov edx, dword [esi + 0x19fc]
lea ecx, [esi + 0x19fc]
mov eax, dword [ecx + 8]
mov dword [eax + edx*4], edi
lea edx, [edi + 0x1e0]
inc dword [ecx]
mov ecx, dword [0x4c8150]
mov dword [esi + 0x1a18], 0
movzx eax, word [edi + 0xbc]
mov word [edx], ax
movzx eax, word [edi + 0x1d4]
mov word [edx + 2], ax
movzx eax, word [ecx + 0x1b44]
mov word [edx + 4], ax
movzx eax, word [ecx + 0x1b14]
mov word [edx + 6], ax
movzx eax, word [ecx + 0x1b20]
mov word [edx + 8], ax
movzx eax, word [ecx + 0x1b2c]
mov ecx, dword [ebp - 0x58]
mov word [edx + 0xa], ax
mov eax, ecx
and eax, 0x4000000
mov dword [ebp - 0x5c], eax
je 0x40ab29
mov eax, dword [esi + 0x1b44]
lea ecx, [esi + 0x1b44]
mov edx, dword [esi + 0x1b40]
mov dword [ebp - 0x6c], edx
lea eax, [eax + eax*8]
mov dword [edx + eax*4 + 4], edi
mov dword [ebp - 0x74], eax
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
jne 0x40aae6
lea edx, [eax + 1]
mov eax, dword [ecx + 4]
mov dword [ebp - 0x78], edx
test eax, eax
je 0x40aaca
cdq
sub eax, edx
mov edx, dword [ebp - 0x78]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x40aacf
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.00412990
mov eax, dword [esi + 0x1b44]
lea ecx, [esi + 0x1b44]
mov edi, dword [ebp - 0x6c]
lea edx, [eax + eax*8]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ecx + 8]
movups xmm0, xmmword [edi + eax*4]
movups xmmword [ecx + edx*4], xmm0
movups xmm0, xmmword [edi + eax*4 + 0x10]
movups xmmword [ecx + edx*4 + 0x10], xmm0
mov eax, dword [edi + eax*4 + 0x20]
mov dword [ecx + edx*4 + 0x20], eax
mov ecx, edi
mov eax, dword [ebp - 0x74]
mov edi, dword [ebp - 0x84]
inc dword [esi + 0x1b44]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x58]
mov dword [edi + 0x8c], eax
cmp dword [ebp - 0x90], 0
jle 0x40ab44
test ecx, 0x1000000
jne 0x40ab44
mov dword [edi + 0x344], 0
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x98]
je 0x40abc9
mov edx, dword [ebp - 0x70]
mov dword [edi + 0x330], edx
mov dword [edi + 0x33c], edi
mov dword [edi + 0x338], edi
mov dword [edi + 0x334], edi
test edx, edx
je 0x40aba7
mov eax, ecx
and eax, 0x3000000
cmp eax, 0x1000000
jne 0x40ab8b
mov eax, dword [edx + 0x334]
mov dword [edi + 0x334], eax
test ecx, 0x8000000
jne 0x40aba7
test ecx, 0x5000000
je 0x40aba7
mov eax, dword [edx + 0x338]
mov dword [edi + 0x338], eax
test dword [edi + 8], 0x800000
je 0x40abc9
mov ecx, edi
mov eax, dword [ecx + 0x330]
mov ecx, eax
mov dword [edi + 0x33c], ecx
test dword [eax + 8], 0x800000
jne 0x40abb2
test byte [esi + 0x1aa0], 1
mov byte [ebp - 0x4e], 0
mov byte [ebp - 0x51], 0
mov byte [ebp - 0x50], 0
je 0x40ac6b
mov edx, dword [edi + 0xa0]
mov eax, edx
mov ecx, dword [esi + 0x1aa4]
and eax, ecx
setne byte [ebp - 0x4e]
test ecx, eax
je 0x40ac5a
movss xmm1, dword [esi + 0x1abc]
movss xmm0, dword [esi + 0x1ab8]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x4bdf3c]
jbe 0x40ac5a
mov eax, dword [esi + 0x1ab0]
and edx, 0xfffffff1
mov ecx, dword [esi + 0x1ab4]
mov dword [edi + 0xac], eax
mov dword [edi + 0xb0], ecx
mov eax, dword [esi + 0x1ab8]
mov ecx, dword [esi + 0x1abc]
mov dword [edi + 0xb4], eax
mov dword [edi + 0xb8], ecx
mov dword [edi + 0xa0], edx
jmp 0x40ac6b
push ecx
lea edx, [esi + 0x1ab0]
mov ecx, edi
call fcn.0040ceb0
add esp, 4
mov eax, dword [esi + 0x1aa0]
xorps xmm1, xmm1
movss dword [ebp - 0x64], xmm1
test al, 2
je 0x40acd5
mov eax, dword [edi + 0xa4]
lea edx, [esi + 0x1ac0]
mov ecx, dword [esi + 0x1aa8]
and eax, ecx
je 0x40aca2
movss xmm0, dword [edx]
comiss xmm0, xmm1
jbe 0x40aca2
mov byte [ebp - 0x51], 1
jmp 0x40acaa
mov byte [ebp - 0x51], 0
test eax, eax
je 0x40acbb
movss xmm0, dword [esi + 0x1ac4]
comiss xmm0, xmm1
mov byte [ebp - 0x50], 1
ja 0x40acbf
mov byte [ebp - 0x50], 0
push ecx
mov ecx, edi
call fcn.0040cf90
mov eax, dword [esi + 0x1aa0]
add esp, 4
movss xmm1, dword [ebp - 0x64]
test al, al
jns 0x40ad0b
movss xmm0, dword [esi + 0x1ad0]
comiss xmm0, xmm1
jb 0x40acf2
movss dword [edi + 0x60], xmm0
mov dword [edi + 0x68], 0
movss xmm0, dword [esi + 0x1ad4]
comiss xmm0, xmm1
jb 0x40ad0b
movss dword [edi + 0x64], xmm0
mov dword [edi + 0x6c], 0
test byte [esi + 0x1aa0], 4
je 0x40ad28
mov eax, dword [esi + 0x1ac8]
mov ecx, dword [esi + 0x1acc]
mov dword [edi + 0x2c], eax
mov dword [edi + 0x30], ecx
jmp 0x40ad44
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x98]
je 0x40ad44
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0
mov eax, dword [esi + 0x1aa0]
test al, 8
je 0x40ad76
mov ecx, dword [esi + 0x1aac]
mov dl, byte [esi + 0x1ad8]
test ecx, ecx
je 0x40ad66
test dword [edi + 0xa8], ecx
je 0x40ad76
and dword [edi + 0xa8], 0xfffffff1
mov byte [edi + 0x7d], dl
mov eax, dword [esi + 0x1aa0]
test al, 0x20
je 0x40ad81
mov ecx, edi
call fcn.0040cc70
cmp byte [edi + 0x80], 0
je 0x40ad9f
and dword [edi + 0xa0], 0xfffffff7
and dword [edi + 0xa4], 0xfffffff7
and dword [edi + 0xa8], 0xfffffff7
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x98]
je 0x40c9b6
mov eax, dword [ebp - 0x58]
and eax, 0x3000000
mov byte [edi + 0x7a], 1
cmp dword [ebp - 0xc4], 0
mov dword [ebp - 0x6c], eax
setne al
mov byte [edi + 0x83], al
mov dword [edi + 0x23c], 0xff7fffff
mov dword [edi + 0x240], 0xff7fffff
mov dword [edi + 0x244], 0x7f7fffff
mov dword [edi + 0x248], 0x7f7fffff
mov eax, dword [edi + 0xc0]
cmp eax, 1
jge 0x40ae36
test eax, eax
je 0x40ae19
cdq
sub eax, edx
lea edx, [edi + 0xbc]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx + 4]
jmp 0x40ae24
mov ecx, 8
lea edx, [edi + 0xbc]
mov eax, 1
cmp ecx, eax
cmovg eax, ecx
mov ecx, edx
push eax
call fcn.004124e0
mov dword [edi + 0xbc], 1
mov ecx, dword [edi + 0x290]
call fcn.0041a460
cmp byte [edi + 0x36c], 0
je 0x40ae97
mov ecx, dword [edi + 0x290]
push dword [edi + 0x370]
add ecx, 0xc
mov byte [edi + 0x36c], 0
call fcn.00412910
mov ecx, dword [edi + 0x290]
push dword [edi + 0x374]
add ecx, 0x18
call fcn.00412700
mov dword [edi + 0x374], 0
mov dword [edi + 0x370], 0
cmp dword [esi + 0x1c60], 0
je 0x40af8f
test dword [edi + 8], 0x80000
jne 0x40af8f
cmp dword [ebp - 0x68], 0
je 0x40af8f
mov eax, dword [edi]
mov ecx, eax
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0xac]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40aee8
test dl, dl
je 0x40aee4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40aee8
add eax, 2
add ecx, 2
test dl, dl
jne 0x40aec8
xor eax, eax
jmp 0x40aeed
sbb eax, eax
or eax, 1
test eax, eax
je 0x40af8f
mov ecx, dword [ebp - 0xac]
mov edx, dword [edi + 0x44]
mov dword [ebp - 0x88], edx
lea eax, [ecx + 1]
mov dword [ebp - 0x78], eax
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40af10
sub ecx, dword [ebp - 0x78]
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x74], eax
cmp edx, eax
jae 0x40af74
test ecx, ecx
je 0x40af3a
mov eax, dword [0x4c8150]
test eax, eax
je 0x40af3a
dec dword [eax + 0x374]
push dword [0x4c8148]
push ecx
call fcn.00402880
mov eax, dword [0x4c8150]
add esp, 8
test eax, eax
je 0x40af58
inc dword [eax + 0x374]
push dword [0x4c8148]
push dword [ebp - 0x74]
call fcn.00402870
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x88], eax
push eax
push dword [ebp - 0xac]
push ecx
call fcn.00478f60
mov dword [edi], eax
add esp, 0xc
mov eax, dword [ebp - 0x88]
mov dword [edi + 0x44], eax
mov edx, edi
lea ecx, [ebp - 0xa0]
call fcn.00408990
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [edi + 0x98]
movss dword [edi + 0x24], xmm0
movss dword [edi + 0x28], xmm1
test eax, eax
jle 0x40afc0
dec eax
mov dword [edi + 0x98], eax
mov eax, dword [edi + 0x9c]
test eax, eax
jle 0x40afd1
dec eax
mov dword [edi + 0x9c], eax
cmp dword [ebp - 0x68], 0
mov al, byte [ebp - 0x51]
mov cl, byte [ebp - 0x50]
jne 0x40afef
test al, al
je 0x40afe5
test cl, cl
jne 0x40afef
mov dword [edi + 0x9c], 1
cmp byte [ebp - 0x4f], 0
mov edx, dword [ebp - 0x58]
je 0x40b041
test edx, 0x6000000
je 0x40b041
mov dword [edi + 0x9c], 1
test dl, 0x40
je 0x40b041
test al, al
jne 0x40b021
mov dword [edi + 0x1c], 0
mov dword [edi + 0x14], 0
test cl, cl
jne 0x40b033
mov dword [edi + 0x20], 0
mov dword [edi + 0x18], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov eax, dword [0x4c8150]
mov dword [ebp - 0x88], eax
movss xmm1, dword [eax + 0x18e4]
mov dword [eax + 0x1a18], edi
mov ecx, dword [edi + 0x330]
mulss xmm1, dword [edi + 0x288]
test ecx, ecx
je 0x40b074
mulss xmm1, dword [ecx + 0x288]
movss dword [eax + 0x18f4], xmm1
movss dword [eax + 0x18e0], xmm1
mov eax, edx
and eax, 0x1000000
mov dword [ebp - 0x74], eax
je 0x40b09a
movss xmm0, dword [esi + 0x154c]
jmp 0x40b0bc
test edx, 0x6000000
je 0x40b0b4
test edx, 0x8000000
jne 0x40b0b4
movss xmm0, dword [esi + 0x1554]
jmp 0x40b0bc
movss xmm0, dword [esi + 0x1530]
movss dword [edi + 0x40], xmm0
mov eax, dword [esi + 0x1524]
mov ecx, dword [esi + 0x1528]
movss xmm2, dword [ebp - 0x64]
mov dword [edi + 0x34], eax
mov eax, edx
and eax, 0x5010000
mov dword [edi + 0x38], ecx
cmp eax, 0x1000000
jne 0x40b115
movss xmm0, dword [edi + 0x40]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jp 0x40b115
test edx, 0x400
je 0x40b106
movss xmm0, dword [esi + 0x1528]
jmp 0x40b109
movaps xmm0, xmm2
mov dword [edi + 0x34], 0
movss dword [edi + 0x38], xmm0
movss xmm0, dword [edi + 0x34]
maxss xmm0, dword [esi + 0x1568]
maxss xmm0, dword [esi + 0x1af8]
movss dword [edi + 0x14c], xmm0
mov eax, dword [esi + 0x1afc]
mov dword [edi + 0x150], eax
test dl, 0x21
jne 0x40b274
mov edx, dword [edi + 8]
mov ecx, dword [ebp - 0x88]
test dl, 1
je 0x40b15a
movaps xmm0, xmm2
jmp 0x40b18c
movss xmm1, dword [ecx + 0x18e4]
mov eax, dword [edi + 0x330]
mulss xmm1, dword [edi + 0x288]
test eax, eax
je 0x40b17c
mulss xmm1, dword [eax + 0x288]
movss xmm0, dword [ecx + 0x155c]
addss xmm0, xmm0
addss xmm0, xmm1
movss xmm5, dword [edi + 0xc]
movss xmm3, dword [edi + 0x1c]
addss xmm3, xmm5
movss xmm4, dword [edi + 0x10]
addss xmm4, xmm0
movss xmm6, dword [edi + 0x10]
cmp dword [esi + 0x1a1c], edi
jne 0x40b241
cmp dword [esi + 0x1a3c], 0
jne 0x40b241
cmp dword [esi + 0x1a40], 0
jne 0x40b241
mov eax, dword [ecx + 0x1a18]
movss xmm1, dword [ecx + 0x1578]
movss xmm0, dword [ecx + 0x157c]
maxss xmm5, dword [eax + 0x23c]
minss xmm3, dword [eax + 0x244]
maxss xmm6, dword [eax + 0x240]
minss xmm4, dword [eax + 0x248]
subss xmm5, xmm1
addss xmm3, xmm1
movss xmm1, dword [ecx + 0xe8]
subss xmm6, xmm0
addss xmm4, xmm0
comiss xmm1, xmm5
jb 0x40b241
movss xmm0, dword [ecx + 0xec]
comiss xmm0, xmm6
jb 0x40b241
comiss xmm3, xmm1
jbe 0x40b241
comiss xmm4, xmm0
jbe 0x40b241
cmp byte [esi + 0x3e5], 0
je 0x40b241
mov byte [edi + 0x7e], 1
cmp byte [edi + 0x7e], 0
je 0x40b278
cmp byte [edi + 0x7d], 0
sete al
mov byte [edi + 0x7d], al
test edx, 0x100
jne 0x40b26b
comiss xmm2, dword [ecx + 0x2e20]
jb 0x40b26b
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2e20], eax
mov ecx, edi
call fcn.0040cc70
jmp 0x40b278
mov byte [edi + 0x7d], 0
lea eax, [edi + 0x24]
mov byte [edi + 0x7e], 0
push eax
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.00408a40
mov al, byte [ebp - 0x52]
add esp, 4
test byte [ebp - 0x58], 0x40
mov byte [ebp - 0x4d], al
je 0x40b2d0
cmp byte [edi + 0x7d], 0
jne 0x40b2d0
cmp byte [ebp - 0x51], 0
jne 0x40b2b3
movss xmm0, dword [ebp - 0x28]
movss dword [edi + 0x1c], xmm0
mov byte [ebp - 0x52], 1
cmp byte [ebp - 0x50], 0
jne 0x40b372
movss xmm0, dword [ebp - 0x24]
movss dword [edi + 0x20], xmm0
mov byte [ebp - 0x4d], 1
jmp 0x40b372
mov al, byte [edi + 0x90]
test al, al
jg 0x40b2e7
cmp byte [edi + 0x91], 0
jle 0x40b372
cmp byte [ebp - 0x51], 0
jne 0x40b314
test al, al
jle 0x40b314
cmp byte [edi + 0x93], 0
je 0x40b306
movss xmm0, dword [edi + 0x1c]
maxss xmm0, dword [ebp - 0x28]
jmp 0x40b30b
movss xmm0, dword [ebp - 0x28]
movss dword [edi + 0x1c], xmm0
mov byte [ebp - 0x52], 1
cmp byte [ebp - 0x50], 0
jne 0x40b346
cmp byte [edi + 0x91], 0
jle 0x40b346
cmp byte [edi + 0x93], 0
je 0x40b338
movss xmm0, dword [edi + 0x20]
maxss xmm0, dword [ebp - 0x24]
jmp 0x40b33d
movss xmm0, dword [ebp - 0x24]
movss dword [edi + 0x20], xmm0
mov byte [ebp - 0x4d], 1
cmp byte [edi + 0x7d], 0
jne 0x40b372
test dword [edi + 8], 0x100
mov ecx, dword [0x4c8150]
jne 0x40b372
movss xmm0, dword [ebp - 0x64]
comiss xmm0, dword [ecx + 0x2e20]
jb 0x40b372
mov eax, dword [ecx + 0x1c]
mov dword [ecx + 0x2e20], eax
push dword [edi + 0x20]
mov edx, edi
lea ecx, [ebp - 0x8c]
push dword [edi + 0x1c]
call fcn.00408770
add esp, 8
cmp byte [edi + 0x7d], 0
movss xmm4, dword [eax]
movss xmm0, dword [eax + 4]
movss dword [edi + 0x1c], xmm4
movss dword [edi + 0x20], xmm0
je 0x40b41b
cmp dword [ebp - 0x74], 0
jne 0x40b41b
mov edx, dword [edi + 8]
test dl, 1
je 0x40b3b6
movss xmm3, dword [ebp - 0x64]
jmp 0x40b3ed
mov eax, dword [0x4c8150]
mov ecx, dword [edi + 0x330]
movss xmm1, dword [eax + 0x18e4]
mulss xmm1, dword [edi + 0x288]
test ecx, ecx
je 0x40b3dd
mulss xmm1, dword [ecx + 0x288]
movss xmm3, dword [eax + 0x155c]
addss xmm3, xmm3
addss xmm3, xmm1
movss xmm0, dword [edi + 0xc]
movss xmm1, dword [edi + 0x10]
addss xmm0, xmm4
addss xmm1, xmm3
subss xmm0, dword [edi + 0xc]
subss xmm1, dword [edi + 0x10]
movss dword [ebp - 0xa0], xmm0
movss dword [ebp - 0x9c], xmm1
jmp 0x40b430
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x20]
mov edx, dword [edi + 8]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x9c], ecx
lea ecx, [ebp - 0xa0]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [edi + 0x14], eax
mov eax, dword [0x4c8150]
mov dword [edi + 0x18], ecx
test dl, 1
je 0x40b455
movss xmm0, dword [ebp - 0x64]
movaps xmm1, xmm0
jmp 0x40b48c
movss xmm2, dword [eax + 0x18e4]
mov ecx, dword [edi + 0x330]
mulss xmm2, dword [edi + 0x288]
test ecx, ecx
je 0x40b477
mulss xmm2, dword [ecx + 0x288]
movss xmm1, dword [eax + 0x155c]
movss xmm0, dword [ebp - 0x64]
addss xmm1, xmm1
addss xmm1, xmm2
test edx, 0x400
je 0x40b4d4
movss xmm2, dword [eax + 0x18e4]
mov ecx, dword [edi + 0x330]
mulss xmm2, dword [edi + 0x288]
test ecx, ecx
je 0x40b4b6
mulss xmm2, dword [ecx + 0x288]
movss xmm3, dword [eax + 0x155c]
movss xmm0, dword [edi + 0x150]
addss xmm3, xmm3
addss xmm0, xmm2
addss xmm3, xmm0
jmp 0x40b4d7
movaps xmm3, xmm0
cmp byte [ebp - 0x4f], 0
addss xmm3, xmm1
movss dword [ebp - 0x80], xmm3
je 0x40b52a
mov eax, dword [ebp - 0x58]
and eax, 0xc000000
mov dword [edi + 0x94], 0xffffffff
cmp eax, 0x4000000
jne 0x40b52a
cmp byte [ebp - 0x4e], 0
jne 0x40b52a
mov eax, dword [esi + 0x1b44]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 0x1b4c]
movss xmm0, dword [eax + ecx*4 - 0x10]
movss xmm1, dword [eax + ecx*4 - 0xc]
movss dword [edi + 0xc], xmm0
movss dword [edi + 0x10], xmm1
cmp dword [ebp - 0x74], 0
je 0x40b5b6
mov ecx, dword [ebp - 0x70]
add ecx, 0x180
mov ax, word [ecx]
mov word [edi + 0x88], ax
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
cmp edx, eax
jne 0x40b580
inc edx
mov dword [ebp - 0x78], edx
test eax, eax
je 0x40b565
cdq
sub eax, edx
mov edx, dword [ebp - 0x78]
sar eax, 1
add eax, dword [ecx + 4]
jmp 0x40b56a
mov eax, 8
cmp eax, edx
cmovg edx, eax
push edx
call fcn.004124e0
mov ecx, dword [ebp - 0x70]
add ecx, 0x180
mov edx, dword [ecx]
mov eax, dword [ecx + 8]
mov dword [eax + edx*4], edi
inc dword [ecx]
mov edx, dword [ebp - 0x5c]
mov al, byte [ebp - 0x4e]
test edx, edx
jne 0x40b5bc
test al, al
jne 0x40b5bc
cmp dword [ebp - 0x6c], 0x3000000
je 0x40b5bc
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 0xc8]
mov ecx, dword [ecx + 0xcc]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
jmp 0x40b5b9
mov edx, dword [ebp - 0x5c]
mov al, byte [ebp - 0x4e]
movss xmm7, dword [edi + 0xac]
ucomiss xmm7, dword [0x4be060]
lahf
test ah, 0x44
jnp 0x40b6cc
cmp dword [edi + 0x9c], 0
jne 0x40b6cc
movss xmm1, dword [edi + 0xb4]
movss xmm5, dword [edi + 0x20]
movss xmm2, dword [edi + 0xb0]
and dword [edi + 0xa0], 0xfffffff1
mov dword [edi + 0xac], 0x7f7fffff
mov dword [edi + 0xb0], 0x7f7fffff
mulss xmm1, dword [edi + 0x1c]
mulss xmm5, dword [edi + 0xb8]
movss xmm4, dword [edi + 0xc]
subss xmm7, xmm1
movss xmm6, dword [edi + 0x10]
subss xmm2, xmm5
cvttss2si eax, xmm7
movd xmm7, eax
cvttss2si eax, xmm2
cvtdq2ps xmm7, xmm7
movd xmm1, eax
movss dword [edi + 0xc], xmm7
subss xmm7, xmm4
cvtdq2ps xmm1, xmm1
movaps xmm0, xmm7
movss dword [edi + 0x10], xmm1
subss xmm1, xmm6
addss xmm0, dword [edi + 0xc8]
movss dword [edi + 0xc8], xmm0
movaps xmm0, xmm1
addss xmm0, dword [edi + 0xcc]
movss dword [edi + 0xcc], xmm0
movaps xmm0, xmm7
addss xmm0, dword [edi + 0xe0]
movss dword [edi + 0xe0], xmm0
movss xmm0, dword [edi + 0xe4]
addss xmm0, xmm1
addss xmm1, dword [edi + 0xdc]
movss dword [edi + 0xe4], xmm0
movss xmm0, dword [edi + 0xd8]
addss xmm0, xmm7
movss dword [edi + 0xdc], xmm1
movss dword [edi + 0xd8], xmm0
jmp 0x40b71d
mov ecx, dword [ebp - 0x58]
test ecx, 0x10000000
jne 0x40b6fd
test edx, edx
je 0x40b6e8
test al, al
jne 0x40b6e8
cmp dword [ebp - 0x90], 0
jg 0x40b6fd
test ecx, 0x2000000
je 0x40b720
test al, al
jne 0x40b720
cmp dword [ebp - 0x6c], 0x3000000
je 0x40b720
mov edx, edi
lea ecx, [ebp - 0xe8]
call fcn.0040deb0
movss xmm1, dword [eax + 4]
movss xmm0, dword [eax]
movss dword [edi + 0xc], xmm0
movss dword [edi + 0x10], xmm1
mov ecx, dword [ebp - 0x58]
cmp byte [ebp - 0x4e], 0
mov eax, dword [0x4c8150]
movss xmm2, dword [esi + 0x15c0]
movss xmm1, dword [esi + 0x15bc]
maxss xmm2, dword [esi + 0x15c8]
movss xmm0, dword [eax + 0x10]
movss xmm4, dword [eax + 0x14]
movaps xmm6, xmm0
maxss xmm1, dword [esi + 0x15c4]
movss xmm3, dword [ebp - 0x64]
movaps xmm5, xmm4
subss xmm5, xmm2
movss dword [ebp - 0x38], xmm3
addss xmm2, xmm3
movss dword [ebp - 0x34], xmm3
movss dword [ebp - 0xb0], xmm0
subss xmm6, xmm1
movss dword [ebp - 0x30], xmm0
addss xmm1, xmm3
movss dword [ebp - 0x78], xmm4
movss dword [ebp - 0x2c], xmm4
movss dword [ebp - 0x48], xmm2
movss dword [ebp - 0x40], xmm5
movss dword [ebp - 0x44], xmm6
movss dword [ebp - 0x4c], xmm1
jne 0x40b861
cmp dword [ebp - 0x74], 0
jne 0x40b861
cmp byte [edi + 0x90], 0
jg 0x40b861
cmp byte [edi + 0x91], 0
jg 0x40b861
subss xmm0, xmm3
comiss xmm0, xmm3
jbe 0x40b861
movaps xmm0, xmm4
subss xmm0, xmm3
comiss xmm0, xmm3
jbe 0x40b861
cmp byte [eax + 0xb4], 0
movss xmm0, dword [edi + 0x18]
je 0x40b82c
test byte [edi + 8], 1
jne 0x40b82c
movss xmm4, dword [eax + 0x18e4]
mov edx, dword [edi + 0x330]
mulss xmm4, dword [edi + 0x288]
test edx, edx
je 0x40b81c
mulss xmm4, dword [edx + 0x288]
movss xmm0, dword [eax + 0x155c]
addss xmm0, xmm0
addss xmm0, xmm4
subss xmm1, dword [edi + 0x14]
subss xmm2, xmm0
movss xmm0, dword [edi + 0x10]
comiss xmm2, xmm0
ja 0x40b846
movaps xmm2, xmm5
minss xmm2, xmm0
movss xmm0, dword [edi + 0xc]
comiss xmm1, xmm0
ja 0x40b857
movaps xmm1, xmm6
minss xmm1, xmm0
movss dword [edi + 0xc], xmm1
movss dword [edi + 0x10], xmm2
cmp dword [ebp - 0x74], 0
cvttss2si eax, dword [edi + 0xc]
movd xmm0, eax
cvttss2si eax, dword [edi + 0x10]
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [edi + 0xc], xmm0
movss dword [edi + 0x10], xmm1
je 0x40b893
movss xmm2, dword [esi + 0x1548]
jmp 0x40b8b3
mov eax, ecx
and eax, 0xc000000
cmp eax, 0x4000000
jne 0x40b8ab
movss xmm2, dword [esi + 0x1550]
jmp 0x40b8b3
movss xmm2, dword [esi + 0x152c]
xor dl, dl
movss dword [edi + 0x3c], xmm2
mov dword [ebp - 0x90], edx
cmp byte [ebp - 0x4f], dl
je 0x40b8f1
test ecx, 0x1000
jne 0x40b8f1
cmp dword [ebp - 0x5c], 0
je 0x40b8dc
mov byte [ebp - 0x90], 1
jmp 0x40b8f1
cmp dword [ebp - 0x6c], 0
mov eax, 1
movzx edx, dl
cmove edx, eax
mov dword [ebp - 0x90], edx
movss xmm1, dword [esi + 0x18e0]
xorps xmm0, xmm0
addss xmm2, dword [0x4bdfa8]
movaps xmmword [ebp - 0x20], xmm0
xor eax, eax
cmp byte [esi + 0xb3], al
movaps xmm0, xmm1
mulss xmm1, dword [0x4bdf5c]
setne al
mov dword [ebp - 0x3c], 0xffffffff
mulss xmm0, dword [0x4bdfb0]
inc eax
cmp byte [edi + 0x7d], 0
addss xmm1, xmm2
mov dword [ebp - 0x9c], eax
maxss xmm0, xmm1
cvttss2si esi, xmm0
jne 0x40b96f
lea ecx, [ebp - 0x4c]
push ecx
lea ecx, [ebp - 0x20]
push ecx
push eax
lea eax, [ebp - 0x3c]
mov ecx, edi
push eax
lea edx, [ebp - 0x28]
call fcn.00408ca0
movss xmm3, dword [ebp - 0x64]
add esp, 0x10
test al, al
je 0x40b96f
mov cl, 1
mov dl, cl
jmp 0x40b975
mov dl, byte [ebp - 0x52]
mov cl, byte [ebp - 0x4d]
cmp byte [edi + 0x7d], 0
mov al, byte [ebp - 0x3c]
mov byte [edi + 0x84], al
jne 0x40bad3
cmp dword [ebp - 0x68], 0
lea eax, [ebp - 0xa8]
movss xmm2, dword [edi + 0x204]
movss xmm4, dword [edi + 0x208]
subss xmm2, dword [edi + 0x1fc]
subss xmm4, dword [edi + 0x200]
movss xmm5, dword [edi + 0x20]
movss xmm6, dword [edi + 0x1c]
subss xmm5, dword [ebp - 0x80]
addss xmm2, dword [edi + 0x70]
addss xmm4, dword [edi + 0x74]
jne 0x40b9e3
mov dword [ebp - 0xa8], 0
mov dword [ebp - 0xa4], 0
jmp 0x40ba0f
movss xmm0, dword [edi + 0x34]
movss xmm1, dword [edi + 0x38]
addss xmm0, xmm0
addss xmm1, xmm1
addss xmm0, dword [edi + 0x24]
addss xmm1, dword [edi + 0x28]
movss dword [ebp - 0xa8], xmm0
movss dword [ebp - 0xa4], xmm1
movss xmm7, dword [eax]
movss xmm1, dword [eax + 4]
test dl, dl
jne 0x40ba1f
movaps xmm6, xmm2
test cl, cl
jne 0x40ba26
movaps xmm5, xmm4
mov ecx, dword [ebp - 0x58]
test ecx, 0x4000
jne 0x40ba3f
comiss xmm1, xmm5
jbe 0x40ba3b
test cl, 8
je 0x40ba3f
xor al, al
jmp 0x40ba41
mov al, 1
mov byte [ebp - 0x4d], al
mov byte [edi + 0x79], al
test ecx, 0x8000
jne 0x40ba86
mov edx, dword [ebp - 0x60]
test al, al
je 0x40ba60
movss xmm0, dword [edx + 0x1588]
jmp 0x40ba63
movaps xmm0, xmm3
subss xmm6, xmm0
comiss xmm7, xmm6
jbe 0x40ba7d
mov eax, ecx
and eax, 0x808
cmp eax, 0x800
mov al, byte [ebp - 0x4d]
je 0x40ba86
mov byte [edi + 0x78], 0
movaps xmm1, xmm3
jmp 0x40baac
mov byte [edi + 0x78], 1
test al, al
jne 0x40baa1
comiss xmm1, xmm5
jbe 0x40ba9c
test cl, 8
jne 0x40ba9c
mov al, 1
jmp 0x40ba9e
xor al, al
mov byte [edi + 0x79], al
mov edx, dword [ebp - 0x60]
movss xmm1, dword [edx + 0x1588]
test al, al
je 0x40bac4
movss xmm0, dword [edx + 0x1588]
movss dword [edi + 0x70], xmm0
movss dword [edi + 0x74], xmm1
jmp 0x40bad9
movaps xmm0, xmm3
movss dword [edi + 0x74], xmm1
movss dword [edi + 0x70], xmm0
jmp 0x40bad9
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
mov eax, ecx
and eax, 0x5000000
mov dword [ebp - 0xa4], eax
cmp eax, 0x1000000
jne 0x40bb00
cmp dword [ebp - 0x6c], 0x3000000
je 0x40bb00
mov eax, dword [ebp - 0x70]
add eax, 0x23c
jmp 0x40bb03
lea eax, [ebp - 0x38]
test byte [edi + 8], 1
movups xmm0, xmmword [eax]
movss xmm6, dword [edi + 0xc]
movss xmm7, dword [edi + 0x10]
movaps xmm4, xmm6
movss xmm5, dword [edi + 0x18]
addss xmm4, dword [edi + 0x14]
movups xmmword [ebp - 0xc0], xmm0
addss xmm5, xmm7
je 0x40bb33
movaps xmm0, xmm3
jmp 0x40bb75
cmp dword [edi + 0x330], 0
mov eax, dword [0x4c8150]
mov edx, dword [ebp - 0x60]
movss xmm1, dword [eax + 0x18e4]
mulss xmm1, dword [edi + 0x288]
je 0x40bb65
mov ecx, dword [edi + 0x330]
mulss xmm1, dword [ecx + 0x288]
mov ecx, dword [ebp - 0x58]
movss xmm0, dword [eax + 0x155c]
addss xmm0, xmm0
addss xmm0, xmm1
movaps xmm2, xmm6
movss dword [ebp - 0xe0], xmm6
addss xmm2, dword [edi + 0x1c]
movaps xmm1, xmm7
and ecx, 0x401
addss xmm1, xmm0
movss xmm0, dword [edi + 0x10]
movss dword [ebp - 0xdc], xmm0
movss dword [ebp - 0xd8], xmm2
movss dword [ebp - 0xd4], xmm1
movss dword [edi + 0x1ec], xmm6
movss dword [edi + 0x1f0], xmm7
movss dword [edi + 0x1f4], xmm4
movss dword [edi + 0x1f8], xmm5
movss xmm1, dword [edi + 0x1ec]
movss xmm0, dword [edi + 0x1f0]
movss xmm2, dword [ebp - 0xc0]
movss xmm4, dword [ebp - 0xbc]
maxss xmm1, xmm2
maxss xmm0, xmm4
movss dword [edi + 0x1ec], xmm1
movss dword [edi + 0x1f0], xmm0
movss xmm1, dword [edi + 0x1f4]
movss xmm0, dword [edi + 0x1f8]
minss xmm1, dword [ebp - 0xb8]
minss xmm0, dword [ebp - 0xb4]
movss dword [edi + 0x1f4], xmm1
movss dword [edi + 0x1f8], xmm0
movss xmm1, dword [edi + 0x10]
movss xmm5, dword [edi + 0xc]
movss dword [edi + 0x1fc], xmm5
addss xmm1, dword [ebp - 0x80]
movss dword [ebp - 0x88], xmm1
movss dword [edi + 0x200], xmm1
movaps xmm1, xmm5
addss xmm1, dword [edi + 0x14]
subss xmm1, dword [edi + 0x70]
movss dword [ebp - 0x68], xmm1
movss dword [edi + 0x204], xmm1
movss xmm1, dword [edi + 0x18]
addss xmm1, dword [edi + 0x10]
subss xmm1, dword [edi + 0x74]
movss dword [ebp - 0x5c], xmm1
movss dword [edi + 0x208], xmm1
cmp ecx, 1
jne 0x40bca3
movss xmm6, dword [edi + 0x40]
movaps xmm7, xmm6
jmp 0x40bcb0
movss xmm6, dword [edx + 0x1564]
movss xmm7, dword [edi + 0x40]
movss xmm5, dword [0x4bdf74]
movss xmm0, dword [edi + 0x34]
mulss xmm0, xmm5
cvttss2si eax, xmm0
movss xmm0, dword [edi + 0xc]
addss xmm0, xmm5
movd xmm1, eax
cvtdq2ps xmm1, xmm1
maxss xmm1, xmm7
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x20c], xmm0
movss xmm0, dword [ebp - 0x88]
addss xmm0, xmm5
addss xmm0, xmm6
movss xmm6, dword [ebp - 0xb4]
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x210], xmm0
movss xmm0, dword [ebp - 0x68]
addss xmm0, xmm5
subss xmm0, xmm1
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x214], xmm0
movss xmm0, dword [ebp - 0x5c]
addss xmm0, xmm5
subss xmm0, xmm7
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x218], xmm0
movss xmm0, dword [edi + 0x210]
comiss xmm4, xmm0
jbe 0x40bd6d
movaps xmm1, xmm4
jmp 0x40bd74
movaps xmm1, xmm6
minss xmm1, xmm0
movss xmm7, dword [ebp - 0xb8]
movd xmm5, eax
cvtdq2ps xmm5, xmm5
comiss xmm2, xmm5
jbe 0x40bd8d
movaps xmm0, xmm2
jmp 0x40bd94
movaps xmm0, xmm7
minss xmm0, xmm5
movss dword [edi + 0x20c], xmm0
movss dword [edi + 0x210], xmm1
movss xmm0, dword [edi + 0x218]
comiss xmm4, xmm0
ja 0x40bdb8
movaps xmm4, xmm6
minss xmm4, xmm0
movss xmm0, dword [edi + 0x214]
comiss xmm2, xmm0
ja 0x40bdcc
movaps xmm2, xmm7
minss xmm2, xmm0
movss dword [edi + 0x214], xmm2
movss dword [edi + 0x218], xmm4
movss xmm0, dword [edi + 0x14]
comiss xmm0, xmm3
jbe 0x40bdf9
test dword [ebp - 0x58], 0x2000040
jne 0x40bdf9
mulss xmm0, dword [0x4bdf7c]
jmp 0x40be09
movss xmm0, dword [edx + 0x18e0]
mulss xmm0, dword [0x4be010]
cvttss2si eax, xmm0
mov edx, edi
lea ecx, [ebp - 0xe8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x26c], xmm0
movss xmm1, dword [edi + 0x34]
movss xmm0, dword [edi + 0x204]
addss xmm1, xmm1
subss xmm0, dword [edi + 0x1fc]
addss xmm1, dword [edi + 0x24]
subss xmm1, xmm0
movaps xmm0, xmm3
maxss xmm0, xmm1
movss xmm1, dword [edi + 0x38]
addss xmm1, xmm1
movss dword [edi + 0x58], xmm0
movss xmm0, dword [edi + 0x208]
subss xmm0, dword [edi + 0x200]
addss xmm1, dword [edi + 0x28]
subss xmm1, xmm0
movaps xmm0, xmm3
maxss xmm0, xmm1
movss dword [edi + 0x5c], xmm0
call fcn.0040d440
mov edx, dword [edi + 0x290]
mov dword [ebp - 0x68], edx
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov eax, dword [ebp - 0x60]
movss dword [edi + 0x50], xmm0
movss dword [edi + 0x54], xmm1
mov dword [edi + 0x60], 0x7f7fffff
mov dword [edi + 0x64], 0x7f7fffff
lea edi, [edx + 0x48]
mov eax, dword [eax + 0x18dc]
mov ecx, dword [edi]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [edi + 4]
cmp ecx, eax
jne 0x40bef3
inc ecx
test eax, eax
je 0x40bedf
cdq
sub eax, edx
sar eax, 1
add eax, dword [edi + 4]
jmp 0x40bee4
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edi
call fcn.004124e0
mov ecx, dword [edi]
mov eax, dword [edi + 8]
mov edx, dword [ebp - 0x88]
mov dword [eax + ecx*4], edx
mov edx, dword [ebp - 0x68]
mov ecx, edx
inc dword [edi]
mov eax, dword [ebp - 0x88]
mov dword [edx + 0x70], eax
call fcn.0041a8a0
mov ecx, dword [0x4c8150]
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
mov eax, dword [ecx + 0x1a18]
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
mov byte [eax + 0x7c], 1
mov edi, dword [ecx + 0x1a18]
push 0
mov ecx, dword [edi + 0x290]
call fcn.0041a910
mov eax, dword [edi + 0x290]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
test dword [ebp - 0x58], 0x8000000
movss xmm0, dword [eax + ecx*8 - 0xc]
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [edi + 0x23c], eax
movss dword [edi + 0x240], xmm0
movss dword [edi + 0x244], xmm1
movss dword [edi + 0x248], xmm2
je 0x40bfb6
call fcn.0040da60
mov edi, dword [ebp - 0x84]
cmp edi, eax
jne 0x40bfbc
cmp dword [edi + 0x9c], 0
jg 0x40bfbc
mov dl, 1
jmp 0x40bfbe
mov edi, dword [ebp - 0x84]
xor dl, dl
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x1c5c]
test ecx, ecx
je 0x40bfd7
cmp edi, dword [ecx + 0x334]
jne 0x40bfd7
mov cl, 1
jmp 0x40bfd9
xor cl, cl
mov byte [ebp - 0x4d], cl
test dl, dl
jne 0x40bfe8
test cl, cl
je 0x40c0d8
movss xmm1, dword [eax + 0x1cd0]
push 0xf
push ecx
movzx ecx, dl
add ecx, 0x2e
mov dword [esp], 0
call fcn.00403570
mov ecx, dword [edi + 0x290]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0041c450
cmp byte [ebp - 0x4d], 0
mov eax, dword [ebp - 0x60]
je 0x40c0d8
cmp edi, dword [eax + 0x1c5c]
jne 0x40c0d8
movss xmm4, dword [edi + 0x14]
movss xmm5, dword [edi + 0x18]
movss xmm1, dword [eax + 0x18e0]
addss xmm4, dword [edi + 0xc]
addss xmm5, dword [edi + 0x10]
movss xmm3, dword [edi + 0xc]
movss xmm6, dword [edi + 0x10]
subss xmm3, xmm1
movss xmm0, dword [ebp - 0x64]
subss xmm6, xmm1
addss xmm4, xmm1
addss xmm5, xmm1
comiss xmm0, xmm3
movss dword [ebp - 0x38], xmm3
movss dword [ebp - 0x34], xmm6
movss dword [ebp - 0x30], xmm4
movss dword [ebp - 0x2c], xmm5
jb 0x40c09a
comiss xmm0, xmm6
jb 0x40c09a
comiss xmm4, dword [ebp - 0xb0]
jb 0x40c09a
comiss xmm5, dword [ebp - 0x78]
jae 0x40c0d8
movss xmm1, dword [eax + 0x1c68]
mulss xmm1, dword [0x4bdf60]
push 0xf
movss xmm0, dword [eax + 0x152c]
push ecx
mov ecx, 0x2d
movss dword [esp], xmm0
call fcn.00403570
mov ecx, dword [edi + 0x290]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0041c450
cmp dword [ebp - 0xa4], 0x1000000
mov byte [ebp - 0x4d], 0
jne 0x40c11f
cmp dword [ebp - 0x6c], 0x3000000
je 0x40c11f
mov edx, dword [edi + 0x290]
mov eax, dword [edx]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 8]
cmp dword [eax + ecx*8 - 0xc], 0
jne 0x40c11f
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x290]
cmp dword [eax + 0x18], 0
jle 0x40c11f
mov byte [ebp - 0x4d], 1
mov dword [edi + 0x290], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax + 0x1c58]
test ecx, ecx
jne 0x40c132
mov ecx, dword [eax + 0x1b50]
cmp byte [ebp - 0x90], 0
jne 0x40c156
test ecx, ecx
je 0x40c14d
mov eax, dword [edi + 0x338]
cmp eax, dword [ecx + 0x338]
je 0x40c156
mov byte [ebp - 0x88], 0
jmp 0x40c15d
mov byte [ebp - 0x88], 1
movd xmm0, esi
lea eax, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
push ecx
lea edx, [ebp - 0xe0]
mov ecx, edi
movss dword [esp], xmm0
push eax
push dword [ebp - 0x9c]
push dword [ebp - 0x88]
call fcn.00409ca0
add esp, 0x10
cmp byte [ebp - 0x4d], 0
je 0x40c19c
lea eax, [edi + 0x294]
mov dword [edi + 0x290], eax
mov edx, dword [ebp - 0x60]
cmp dword [edx + 0x1c5c], edi
jne 0x40c341
movss xmm6, dword [edi + 0x3c]
movss xmm5, dword [edi + 0x14]
movaps xmm0, xmm6
movss xmm4, dword [edi + 0x18]
movss xmm2, dword [edx + 0x18e0]
addss xmm5, dword [edi + 0xc]
addss xmm4, dword [edi + 0x10]
maxss xmm0, dword [edx + 0x152c]
movss xmm3, dword [edi + 0xc]
movss xmm7, dword [edi + 0x10]
subss xmm3, xmm2
addss xmm5, xmm2
addss xmm4, xmm2
movss dword [ebp - 0x84], xmm0
subss xmm7, xmm2
movss xmm0, dword [ebp - 0x64]
comiss xmm0, xmm3
movss dword [ebp - 0x6c], xmm3
movss dword [ebp - 0x68], xmm5
movss dword [ebp - 0x5c], xmm4
jb 0x40c25f
comiss xmm0, xmm7
jb 0x40c25f
comiss xmm5, dword [ebp - 0xb0]
jb 0x40c25f
comiss xmm4, dword [ebp - 0x78]
jb 0x40c25f
xorps xmm2, xmmword [0x4be510]
subss xmm2, dword [0x4bdfa8]
movss dword [ebp - 0x84], xmm6
movaps xmm0, xmm2
subss xmm3, xmm2
subss xmm7, xmm2
addss xmm5, xmm0
addss xmm2, xmm4
movss dword [ebp - 0x6c], xmm3
movss dword [ebp - 0x68], xmm5
movss dword [ebp - 0x5c], xmm2
movss xmm1, dword [edx + 0x1c68]
mov ecx, 0x2d
mov esi, dword [edi + 0x290]
call fcn.00403570
mov dword [ebp - 0x9c], eax
test eax, 0xff000000
je 0x40c341
test byte [esi + 0x24], 1
lea eax, [ebp - 0xa8]
movss xmm1, dword [ebp - 0x68]
mov ecx, esi
movss xmm0, dword [ebp - 0x6c]
movss xmm3, dword [ebp - 0x84]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x7c]
push eax
je 0x40c2d6
movss xmm2, dword [0x4bdf74]
subss xmm1, xmm2
addss xmm0, xmm2
addss xmm7, xmm2
movss dword [ebp - 0xa8], xmm1
movss xmm1, dword [ebp - 0x5c]
subss xmm1, xmm2
jmp 0x40c303
subss xmm1, dword [0x4bdf70]
addss xmm0, dword [0x4bdf74]
addss xmm7, dword [0x4bdf74]
movss dword [ebp - 0xa8], xmm1
movss xmm1, dword [ebp - 0x5c]
subss xmm1, dword [0x4bdf70]
movss dword [ebp - 0xa4], xmm1
movss dword [ebp - 0x7c], xmm0
movss dword [ebp - 0x78], xmm7
call fcn.0041c000
push ecx
mov dword [esp], 0x40400000
mov ecx, esi
push 1
push dword [ebp - 0x9c]
push dword [esi + 0x54]
push dword [esi + 0x5c]
call fcn.0041ac20
mov edx, dword [ebp - 0x60]
mov dword [esi + 0x54], 0
mov ecx, dword [ebp - 0x58]
mov eax, ecx
movss xmm0, dword [edi + 0x2c]
movss xmm4, dword [ebp - 0x64]
shr eax, 3
not al
and eax, 0xffffff01
ucomiss xmm0, xmm4
mov dword [ebp - 0x9c], eax
lahf
test ah, 0x44
jp 0x40c39c
movss xmm0, dword [edi + 0x34]
mov eax, ecx
movss xmm1, dword [edi + 0x14]
addss xmm0, xmm0
and eax, 0x808
subss xmm1, xmm0
subss xmm1, dword [edi + 0x70]
cmp eax, 0x800
jne 0x40c395
movss xmm0, dword [edi + 0x24]
jmp 0x40c398
movaps xmm0, xmm4
maxss xmm0, xmm1
movss xmm5, dword [edi + 0x30]
movss xmm6, dword [edi + 0x38]
ucomiss xmm5, xmm4
movss dword [ebp - 0x78], xmm0
lahf
test ah, 0x44
jnp 0x40c3be
movss dword [ebp - 0xb0], xmm5
jmp 0x40c3f7
cmp byte [ebp - 0x9c], 0
movaps xmm0, xmm6
movss xmm1, dword [edi + 0x18]
addss xmm0, xmm6
subss xmm1, xmm0
subss xmm1, dword [ebp - 0x80]
subss xmm1, dword [edi + 0x74]
je 0x40c3e8
movss xmm0, dword [edi + 0x28]
jmp 0x40c3eb
movaps xmm0, xmm4
maxss xmm0, xmm1
movss dword [ebp - 0xb0], xmm0
movss xmm0, dword [edi + 0x50]
movss xmm1, dword [edi + 0x1fc]
movss xmm7, dword [edi + 0x34]
subss xmm1, xmm0
movss dword [ebp - 0x88], xmm0
movaps xmm0, xmm7
maxss xmm0, dword [edi + 0x40]
movss xmm3, dword [edi + 0x10]
addss xmm1, xmm0
movss xmm0, dword [edi + 0x54]
movss dword [ebp - 0x68], xmm0
subss xmm3, dword [ebp - 0x68]
cvttss2si eax, xmm1
movss xmm1, dword [edi + 0x200]
addss xmm3, xmm6
subss xmm1, xmm0
movaps xmm0, xmm6
maxss xmm0, dword [edi + 0x40]
movd xmm2, eax
cvtdq2ps xmm2, xmm2
addss xmm1, xmm0
movss dword [edi + 0x21c], xmm2
addss xmm2, dword [ebp - 0x78]
cvttss2si eax, xmm1
movss xmm1, dword [edi + 0x2c]
movss dword [edi + 0x224], xmm2
ucomiss xmm1, xmm4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
lahf
movss dword [edi + 0x220], xmm0
addss xmm0, dword [ebp - 0xb0]
movss dword [edi + 0x228], xmm0
movups xmm0, xmmword [edi + 0x21c]
movups xmmword [edi + 0x22c], xmm0
movss xmm0, dword [edi + 0xc]
movss dword [ebp - 0x9c], xmm0
movaps xmm2, xmm0
movss xmm0, dword [ebp - 0x80]
addss xmm3, xmm0
subss xmm2, dword [ebp - 0x88]
movss dword [edi + 0x250], xmm3
addss xmm2, xmm7
movss dword [edi + 0x24c], xmm2
test ah, 0x44
jp 0x40c4ff
movss xmm1, dword [edi + 0x14]
movaps xmm0, xmm7
addss xmm0, xmm7
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm1, dword [edi + 0x70]
ucomiss xmm5, xmm4
addss xmm2, xmm1
lahf
movss dword [edi + 0x254], xmm2
test ah, 0x44
jp 0x40c532
movss xmm5, dword [edi + 0x18]
movaps xmm0, xmm6
addss xmm0, xmm6
subss xmm5, xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm5, xmm0
subss xmm5, dword [edi + 0x74]
cmp dword [ebp - 0x74], 0
addss xmm7, xmm4
addss xmm3, xmm5
addss xmm6, xmm0
subss xmm7, dword [ebp - 0x88]
movss dword [edi + 0x258], xmm3
subss xmm6, dword [ebp - 0x68]
movss dword [edi + 0x100], xmm7
addss xmm7, xmm4
mov dword [edi + 0x108], 0
mov dword [edi + 0x104], 0
addss xmm6, dword [edi + 0x10]
addss xmm7, dword [ebp - 0x9c]
movss dword [edi + 0xd8], xmm7
movss dword [edi + 0xdc], xmm6
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [edi + 0xc8], eax
mov dword [edi + 0xcc], ecx
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [edi + 0xd0], eax
mov dword [edi + 0xd4], ecx
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [edi + 0xe0], eax
mov dword [edi + 0xe4], ecx
mov dword [edi + 0xf0], 0
mov dword [edi + 0xf4], 0
mov eax, dword [edi + 0xf0]
mov ecx, dword [edi + 0xf4]
mov dword [edi + 0xe8], eax
mov dword [edi + 0xec], ecx
mov dword [edi + 0xfc], 0
mov dword [edi + 0xf8], 0
mov dword [edi + 0x134], 0
mov dword [edi + 0x138], 1
mov eax, dword [edi + 0x140]
mov dword [edi + 0x13c], eax
mov dword [edi + 0x140], 0
je 0x40c653
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x144]
jmp 0x40c655
xor eax, eax
mov dword [edi + 0x144], eax
lea ecx, [edi + 0x16c]
mov byte [edi + 0x148], 0
movss xmm0, dword [edi + 0x5c]
comiss xmm0, xmm4
seta al
cmp byte [ebp - 0x4f], 0
mov byte [edi + 0x149], al
mov byte [edi + 0x14a], 0
movss xmm0, dword [edx + 0x1568]
mov dword [edi + 0x15c], 0
mov dword [edi + 0x158], 0
movss dword [edi + 0x154], xmm0
je 0x40c6b8
xorps xmm0, xmm0
movq qword [ecx], xmm0
mov dword [ecx + 8], 0
xor edx, edx
nop word [eax + eax]
test edx, edx
je 0x40c6e5
movss xmm0, dword [ecx]
comiss xmm0, xmm4
jbe 0x40c6e5
movss xmm0, dword [edi + 0x154]
addss xmm0, dword [edi + 0x158]
movss dword [edi + 0x158], xmm0
cvttss2si eax, dword [edi + 0x158]
inc edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx - 0xc], xmm0
movss xmm0, dword [edi + 0x158]
addss xmm0, dword [ecx]
movss dword [edi + 0x158], xmm0
mov dword [ecx], 0
add ecx, 4
cmp edx, 3
jl 0x40c6c0
mov dword [edi + 0x178], 0
mov dword [edi + 0x17c], 0
mov ecx, dword [edi + 0x184]
test ecx, ecx
jns 0x40c756
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x180]
call fcn.004124e0
mov dword [edi + 0x180], 0
lea eax, [edi + 0x270]
mov dword [edi + 0x18c], eax
mov eax, dword [ebp - 0x70]
mov dword [edi + 0x190], 0
mov dword [edi + 0x194], 1
test eax, eax
je 0x40c78f
mov eax, dword [eax + 0x194]
jmp 0x40c794
mov eax, 1
mov dword [edi + 0x198], eax
lea esi, [edi + 0x1b0]
mov dword [edi + 0x1a0], 0xffffffff
mov dword [edi + 0x19c], 0xffffffff
mov eax, dword [edi + 0x26c]
mov dword [edi + 0x1a8], eax
mov dword [edi + 0x1ac], 0xbf800000
mov ecx, dword [esi + 4]
test ecx, ecx
jns 0x40c7e9
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.004124e0
lea eax, [edi + 0x1bc]
mov dword [esi], 0
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x40c81e
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x1bc]
call fcn.004124e0
lea eax, [edi + 0x1bc]
mov dword [eax], 0
lea eax, [edi + 0x1c8]
mov ecx, dword [eax + 4]
test ecx, ecx
jns 0x40c853
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
xor ecx, ecx
test eax, eax
cmovg ecx, eax
push ecx
lea ecx, [edi + 0x1c8]
call fcn.004124e0
lea eax, [edi + 0x1c8]
push 0
lea ecx, [edi + 0x1d4]
mov dword [eax], 0
call fcn.004120a0
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x40c8b5
mov edx, dword [eax + 0x1a4]
mov dword [edi + 0x1a4], edx
mov ecx, dword [esi]
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x40c8ab
inc ecx
test eax, eax
je 0x40c891
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
jmp 0x40c896
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, esi
call fcn.004124e0
mov ecx, dword [esi]
mov edx, dword [edi + 0x1a4]
mov eax, dword [esi + 8]
mov dword [eax + ecx*4], edx
inc dword [esi]
jmp 0x40c8bf
mov dword [edi + 0x1a4], 0
mov al, byte [edi + 0x90]
test al, al
jle 0x40c8d1
dec al
mov byte [edi + 0x90], al
mov al, byte [edi + 0x91]
test al, al
jle 0x40c8e3
dec al
mov byte [edi + 0x91], al
cmp byte [ebp - 0x90], 0
je 0x40c8fc
mov ecx, edi
call fcn.0040cc70
xor dl, dl
mov ecx, edi
call fcn.0040ead0
test byte [ebp - 0x58], 1
jne 0x40c91e
push dword [ebp - 0xc4]
lea edx, [ebp - 0xe0]
mov ecx, edi
push dword [ebp - 0xac]
call fcn.0040a290
add esp, 8
mov esi, dword [0x4c8150]
xor eax, eax
movss xmm2, dword [ebp - 0xe0]
movss xmm3, dword [ebp - 0xd8]
movss xmm4, dword [ebp - 0xd4]
mov dword [edi + 0x25c], eax
movss xmm1, dword [esi + 0x1578]
movss xmm0, dword [esi + 0x157c]
subss xmm2, xmm1
movss xmm5, dword [esi + 0xe8]
addss xmm3, xmm1
movss xmm1, dword [ebp - 0xdc]
addss xmm4, xmm0
subss xmm1, xmm0
comiss xmm5, xmm2
jb 0x40c995
movss xmm0, dword [esi + 0xec]
comiss xmm0, xmm1
jb 0x40c995
comiss xmm3, xmm5
jbe 0x40c995
comiss xmm4, xmm0
jbe 0x40c995
lea ecx, [eax + 1]
jmp 0x40c997
xor ecx, ecx
mov eax, dword [edi + 0x48]
movups xmm0, xmmword [ebp - 0xe0]
mov dword [edi + 0x10c], eax
mov dword [edi + 0x110], ecx
movups xmmword [edi + 0x114], xmm0
jmp 0x40c9f4
mov esi, dword [0x4c8150]
movss xmm1, dword [esi + 0x18e4]
mov dword [esi + 0x1a18], edi
mov eax, dword [edi + 0x330]
mulss xmm1, dword [edi + 0x288]
test eax, eax
je 0x40c9e4
mulss xmm1, dword [eax + 0x288]
movss dword [esi + 0x18f4], xmm1
movss dword [esi + 0x18e0], xmm1
mov eax, dword [esi + 0x1a18]
mov byte [eax + 0x7c], 1
push dword [edi + 0x218]
mov esi, dword [esi + 0x1a18]
push dword [edi + 0x214]
push dword [edi + 0x210]
mov ecx, dword [esi + 0x290]
push dword [edi + 0x20c]
push 1
call fcn.0041a910
mov eax, dword [esi + 0x290]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
movss xmm0, dword [eax + ecx*8 - 0xc]
movss xmm1, dword [eax + ecx*8 - 8]
movss xmm2, dword [eax + ecx*8 - 4]
mov eax, dword [eax + ecx*8 - 0x10]
mov dword [esi + 0x23c], eax
mov eax, dword [ebp - 0x94]
movss dword [esi + 0x240], xmm0
movss dword [esi + 0x244], xmm1
movss dword [esi + 0x248], xmm2
cmp eax, dword [ebp - 0x98]
je 0x40ca7d
mov byte [edi + 0x7c], 0
mov eax, dword [ebp - 0x60]
inc word [edi + 0x86]
mov ecx, dword [ebp - 0x58]
mov dword [eax + 0x1aa0], 0
test ecx, 0x1000000
je 0x40cb18
test cl, 0x40
jne 0x40cadf
cmp byte [edi + 0x90], 0
jg 0x40cadf
cmp byte [edi + 0x91], 0
jg 0x40cadf
movss xmm0, dword [edi + 0x1ec]
comiss xmm0, dword [edi + 0x1f4]
jae 0x40cad5
movss xmm0, dword [edi + 0x1f0]
comiss xmm0, dword [edi + 0x1f8]
jb 0x40cadf
mov dword [edi + 0x98], 1
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x40cb18
cmp byte [ecx + 0x7d], 0
jne 0x40caf5
cmp dword [ecx + 0x98], 0
jle 0x40cb05
mov dword [edi + 0x98], 1
cmp byte [ecx + 0x7d], 0
jne 0x40cb0e
cmp dword [ecx + 0x9c], 0
jle 0x40cb18
mov dword [edi + 0x9c], 1
movss xmm0, dword [ebp - 0x64]
comiss xmm0, dword [eax + 0x1520]
jb 0x40cb82
mov dword [edi + 0x98], 1
mov cl, 1
xor al, al
mov byte [edi + 0x81], cl
cmp byte [edi + 0x7d], al
jne 0x40cb48
cmp byte [edi + 0x7a], al
je 0x40cb48
test cl, cl
je 0x40cb6a
cmp byte [edi + 0x90], al
jg 0x40cb6a
cmp byte [edi + 0x91], al
jg 0x40cb6a
cmp dword [edi + 0x9c], 0
mov ecx, 1
movzx eax, al
cmovle eax, ecx
mov ecx, dword [ebp - 4]
mov byte [edi + 0x7f], al
xor ecx, ebp
pop edi
xor al, 1
pop esi
call fcn.00475e9f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp dword [edi + 0x98], 0
jg 0x40cb30
cmp dword [edi + 0x9c], 0
jg 0x40cb30
xor cl, cl
jmp 0x40cb32