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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
mov eax, dword [0x6c0fe4]
xor eax, esp
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 0xc]
xorps xmm3, xmm3
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov ebx, ecx
push edi
mov edi, dword [ebp + 8]
xorps xmm2, xmm2
mov dword [esp + 0x4c], eax
xorps xmm1, xmm1
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x5c], ebx
mov ecx, dword [edi]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], eax
call fcn.00457270
movsd xmm2, qword [ebx + 0x40]
lea ecx, [ebx + 0x20]
movsd xmm1, qword [ebx + 0x48]
movaps xmm0, xmm2
cvttsd2si eax, qword [ebx + 0xb8]
sub esp, 0xc
addsd xmm0, xmm1
mov dword [esp + 0x9c], eax
addsd xmm0, qword [ebx + 0x50]
cvttsd2si eax, xmm0
cvtpd2ps xmm0, xmm1
mov dword [esp + 0xa0], eax
mov eax, dword [ebx + 0xcc]
cmp byte [eax], 0
movss dword [esp + 4], xmm0
cvtpd2ps xmm0, xmm2
movss dword [esp], xmm0
push ecx
je 0x45eafc
mov eax, dword [esp + 0x5c]
push dword [eax]
jmp 0x45eafe
push dword [esi]
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x54]
push dword [edi]
call fcn.00463870
movsd xmm0, qword [ebx + 0xb8]
mulsd xmm0, qword [0x69c1e0]
mov ecx, dword [ebp + 0x20]
sub ecx, dword [ebp + 0x1c]
movsd xmm3, qword [ebx + 0x70]
movsd xmm2, qword [ebx + 0x60]
movsd xmm4, qword [ebx + 0x68]
mov dword [esp + 0x44], ecx
cvttsd2si eax, xmm0
mov dword [esp + 0x70], eax
cmp ecx, 0x2a
jle 0x45eb75
movsd xmm0, qword [ebx + 0x78]
movaps xmm1, xmm2
addsd xmm0, qword [ebx + 0x80]
addsd xmm1, xmm3
addsd xmm0, xmm2
addsd xmm1, xmm4
mulsd xmm0, qword [0x69c2a0]
mulsd xmm1, qword [0x69c210]
jmp 0x45eba8
movsd xmm1, qword [ebx + 0x78]
lea eax, [ecx + 1]
addsd xmm1, qword [ebx + 0x80]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm2
mulsd xmm1, xmm0
movaps xmm0, xmm2
addsd xmm0, xmm3
addsd xmm0, xmm4
mulsd xmm0, qword [0x69c210]
mov ecx, dword [esp + 0x3c]
addsd xmm1, xmm0
addsd xmm3, xmm2
push ecx
mov eax, dword [ecx]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x7c], eax
addsd xmm3, xmm4
mov eax, dword [ecx + 4]
sub eax, dword [esp + 0x98]
cvttsd2si esi, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x78], esi
subsd xmm0, qword [ebx + 0x58]
cvttsd2si eax, xmm0
cvtpd2ps xmm0, xmm3
mov dword [esp + 0x54], eax
mov dword [esp + 0x80], eax
lea eax, [esp + 0x74]
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x80]
push eax
push dword [edi]
call fcn.004635d0
mov ecx, dword [esp + 0x50]
xorps xmm3, xmm3
movsd xmm0, qword [ebx + 0x60]
xorps xmm2, xmm2
addsd xmm0, qword [ebx + 0x70]
mov dword [esp + 0x88], 0
movd xmm1, ecx
sub ecx, esi
cvtdq2pd xmm1, xmm1
mov esi, edi
mov dword [esp + 0x50], ecx
mov ecx, dword [esi]
addsd xmm0, qword [ebx + 0x68]
subsd xmm1, xmm0
cvttsd2si eax, xmm1
xorps xmm1, xmm1
mov dword [esp + 0x2c], eax
call fcn.00457270
mov ecx, dword [esi]
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00456fe0
mov eax, dword [ebx + 0xcc]
xor edi, edi
mov dword [esp + 0x54], edi
mov eax, dword [eax + 4]
cmp dword [eax + 0xdc], edi
jl 0x45f212
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x20]
dec edx
cmp dword [esp + 0x44], 0x2a
mov dword [esp + 0x6c], edx
lea ecx, [eax + 0x29]
cmovle ecx, edx
dec eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], eax
jmp 0x45eca8
mov esi, dword [esp + 0x1c]
push edi
mov ecx, ebx
call fcn.0045f8e0
movaps xmm1, xmm0
test edi, edi
je 0x45ecdf
mov eax, dword [ebx + 0x38]
lea ecx, [edi - 1]
lea ecx, [ecx + ecx*2]
lea edx, [esp + 0xbc]
lea ecx, [eax + ecx*8]
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x45ecd0
jmp 0x45ed0f
mov eax, dword [ebx + 0xcc]
cmp byte [eax], 0
je 0x45ed04
mov eax, dword [0x698a68]
mov dword [esp + 0xbc], eax
mov al, byte [0x698a6c]
mov byte [esp + 0xc0], al
jmp 0x45ed0f
mov dword [esp + 0xbc], 0x2e6f4e
movd xmm0, dword [esp + 0x28]
mov eax, dword [ebx + 0xcc]
cvtdq2pd xmm0, xmm0
mov eax, dword [eax + 4]
addsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov dword [esp + 0x34], ecx
cmp edi, dword [eax + 0xdc]
je 0x45ed6d
movd xmm2, dword [esp + 0x2c]
movd xmm0, ecx
mov ecx, dword [esi]
cvtdq2ps xmm1, xmm0
cvtdq2ps xmm2, xmm2
call fcn.00455c20
movd xmm2, dword [esp + 0x50]
movd xmm1, dword [esp + 0x34]
mov ecx, dword [esi]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.00455df0
mov ecx, dword [esi]
call fcn.004561b0
mov eax, dword [esp + 0x4c]
xorps xmm1, xmm1
movsd xmm0, qword [ebx + 0x60]
cvtpd2ps xmm0, xmm0
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x38], ecx
movss dword [esp + 0x20], xmm1
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [esi]
xor esi, esi
cmp byte [esp + 0xbc], 0
movss dword [esp + 0x60], xmm0
mov dword [esp + 0x24], eax
je 0x45ee57
mov ebx, dword [esp + 0x30]
mov edi, eax
nop word [eax + eax]
mov al, byte [esp + esi + 0xbc]
movaps xmm2, xmm0
mov byte [esp + 0x14], al
test al, al
jns 0x45edf9
mov al, byte [esp + esi + 0xbd]
mov edx, ecx
mov ecx, edi
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
call fcn.004565b0
lea edx, [esp + 0x14]
mov ecx, edi
call fcn.00455050
inc esi
jmp 0x45ee12
mov edx, ebx
mov byte [esp + 0x15], 0
mov ecx, edi
call fcn.004565b0
lea edx, [esp + 0x14]
mov ecx, edi
call fcn.00455050
addss xmm0, dword [esp + 0x20]
mov ecx, dword [esp + 0x38]
inc esi
cmp byte [esp + esi + 0xbc], 0
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x60]
jne 0x45edc0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
mov eax, dword [eax]
mov esi, dword [esi]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
jmp 0x45ee5b
mov esi, dword [esp + 0x24]
movsd xmm0, qword [ebx + 0x70]
mov ecx, esi
mov eax, dword [esp + 0x34]
sub eax, dword [esp + 0x28]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [ebx + 0x60]
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x24], eax
movss dword [esp + 0x60], xmm0
call fcn.00456390
movd xmm1, dword [esp + 0x2c]
mov ecx, esi
cvtdq2pd xmm0, xmm1
movd xmm1, dword [esp + 0x24]
addsd xmm0, qword [esp + 0x80]
cvtdq2pd xmm1, xmm1
cvttsd2si eax, xmm0
movss xmm0, dword [esp + 0x20]
cvtps2pd xmm0, xmm0
movd xmm2, eax
subsd xmm1, xmm0
movd xmm0, dword [esp + 0x28]
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x69c1e0]
cvtdq2ps xmm2, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.00456920
movss xmm0, dword [esp + 0x60]
lea eax, [esp + 0xbc]
push eax
push ecx
movss dword [esp], xmm0
push dword [esp + 0x40]
push dword [esp + 0x3c]
push esi
call fcn.00463560
mov ecx, esi
call fcn.004564c0
mov byte [esp + 0x13], 1
xorps xmm0, xmm0
movlpd qword [esp + 0x98], xmm0
cmp edi, 2
jle 0x45ef56
mov ecx, dword [ebx + 0xcc]
mov eax, dword [ecx + 4]
cmp edi, dword [eax + 0xdc]
je 0x45ef56
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x8c]
push eax
lea eax, [esp + 0x23]
push eax
lea eax, [edi - 3]
push eax
call fcn.00463320
mov esi, dword [esp + 0x48]
mov dword [esp + 0x38], esi
cmp esi, dword [esp + 0x58]
jg 0x45f1e6
mov dword [esp + 0x30], 1
cmp edi, 2
jle 0x45efa5
mov ecx, dword [ebx + 0xcc]
mov eax, dword [ecx + 4]
cmp edi, dword [eax + 0xdc]
je 0x45efa5
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0xb0]
push eax
push esi
lea eax, [edi - 3]
push eax
call fcn.00463220
push ecx
lea eax, [esp + 0xc0]
mov ecx, ebx
push eax
push esi
push edi
call fcn.0045fb20
mov eax, dword [esp + 0x1c]
movsd xmm2, qword [ebx + 0x60]
cvtpd2ps xmm2, xmm2
mov esi, dword [eax]
mov ecx, esi
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
call fcn.004565b0
lea edx, [esp + 0xbc]
mov ecx, esi
call fcn.00455050
movd xmm1, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
movsd xmm2, qword [ebx + 0x80]
cvtdq2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
subsd xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x69c1e0]
addsd xmm1, xmm0
movd xmm0, dword [esp + 0x30]
cvtdq2pd xmm0, xmm0
cvttsd2si eax, xmm1
movaps xmm1, xmm2
mov dword [esp + 0x80], eax
addsd xmm1, qword [ebx + 0x78]
addsd xmm1, qword [ebx + 0x60]
movsd qword [esp + 0x60], xmm1
mulsd xmm0, xmm1
movd xmm1, dword [esp + 0x2c]
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
addsd xmm1, xmm2
cvttsd2si ecx, xmm1
mov dword [esp + 0x20], ecx
cmp edi, 2
jle 0x45f161
mov eax, dword [ebx + 0xcc]
mov eax, dword [eax + 4]
cmp edi, dword [eax + 0xdc]
je 0x45f161
cmp byte [esp + 0x13], 0
je 0x45f161
cmp byte [esp + 0x1b], 0
je 0x45f161
movsd xmm0, qword [esp + 0xa0]
movsd xmm3, qword [0x69c1c0]
movsd xmm1, qword [esp + 0xa8]
addsd xmm0, xmm3
comisd xmm0, xmm1
ja 0x45f0c8
movsd xmm0, qword [esp + 0x88]
subsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x45f161
mov eax, dword [esp + 0x1c]
lea edi, [edx + 1]
movss xmm3, dword [0x69c198]
movss xmm1, dword [0x69c1b8]
movd xmm0, ecx
mov ebx, dword [eax]
mov ecx, ebx
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm2
movaps xmm2, xmm3
addsd xmm0, qword [0x69c1f8]
cvttsd2si esi, xmm0
call fcn.00456fe0
mov eax, dword [esp + 0x24]
add eax, 0xfffffffe
push ecx
mov ecx, ebx
movsd xmm0, qword [esp + 0x64]
subsd xmm0, qword [0x69c230]
movd xmm2, esi
movd xmm1, edi
cvtdq2ps xmm2, xmm2
cvtpd2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [esp], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtpd2ps xmm3, xmm0
call fcn.00455fa0
add esp, 4
mov ecx, ebx
call fcn.004562a0
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
mov ecx, ebx
call fcn.00456fe0
mov ebx, dword [esp + 0x5c]
movsd xmm0, qword [ebx + 0x60]
subsd xmm0, qword [0x69c230]
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov eax, dword [esp + 0x1c]
cvtpd2ps xmm0, xmm0
mov edi, dword [eax]
mov ecx, edi
movss dword [esp + 0x60], xmm0
call fcn.00456390
movss xmm2, dword [esp + 0x60]
mov edx, esi
mov ecx, edi
call fcn.004565b0
movd xmm2, dword [esp + 0x20]
mov ecx, edi
movd xmm1, dword [esp + 0x80]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.00456920
lea edx, [esp + 0xbc]
mov ecx, edi
call fcn.00456e20
mov ecx, edi
call fcn.004564c0
mov esi, dword [esp + 0x38]
inc dword [esp + 0x30]
inc esi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x38], esi
cmp esi, dword [esp + 0x58]
jle 0x45ef70
mov eax, dword [esp + 0x34]
inc edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0xcc]
mov dword [esp + 0x54], edi
mov eax, dword [eax + 4]
cmp edi, dword [eax + 0xdc]
jle 0x45eca4
jmp 0x45f225
mov eax, dword [ebp + 0x20]
dec eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x44]
cmp ecx, 0x2a
jle 0x45f8be
movsd xmm0, qword [ebx + 0xb8]
mulsd xmm0, qword [0x69c1e0]
movsd xmm2, qword [ebx + 0x60]
movsd xmm1, qword [ebx + 0x80]
addsd xmm1, qword [ebx + 0x78]
addsd xmm2, qword [ebx + 0x70]
cvttsd2si eax, xmm0
addsd xmm1, qword [ebx + 0x60]
addsd xmm2, qword [ebx + 0x68]
mov dword [esp + 0x70], eax
lea eax, [ecx - 0x2a]
mov ecx, dword [esp + 0x3c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
push ecx
mov eax, dword [ecx]
add eax, 0x120
mov dword [esp + 0x2c], eax
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + 4]
sub eax, dword [esp + 0x98]
mulsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [0x69c210]
addsd xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
lea eax, [esp + 0x74]
cvttsd2si esi, xmm1
subsd xmm0, qword [ebx + 0x58]
mov dword [esp + 0x78], esi
cvttsd2si edi, xmm0
cvtpd2ps xmm0, xmm2
mov dword [esp + 0x80], edi
movss dword [esp], xmm0
push eax
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x28]
push dword [eax]
call fcn.004635d0
movsd xmm0, qword [ebx + 0x60]
xorps xmm3, xmm3
addsd xmm0, qword [ebx + 0x70]
movd xmm1, edi
xorps xmm2, xmm2
cvtdq2pd xmm1, xmm1
sub edi, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x80], edi
mov ecx, dword [esi]
addsd xmm0, qword [ebx + 0x68]
subsd xmm1, xmm0
cvttsd2si eax, xmm1
xorps xmm1, xmm1
mov dword [esp + 0x20], eax
call fcn.00457270
mov ecx, dword [esi]
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.00456fe0
mov eax, dword [ebx + 0xcc]
xor edi, edi
mov dword [esp + 0x3c], edi
mov eax, dword [eax + 4]
cmp dword [eax + 0xdc], edi
jl 0x45f8be
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x60], eax
nop dword [eax]
push edi
mov ecx, ebx
call fcn.0045f8e0
movaps xmm1, xmm0
test edi, edi
je 0x45f393
mov eax, dword [ebx + 0x38]
lea ecx, [edi - 1]
lea ecx, [ecx + ecx*2]
lea edx, [esp + 0xbc]
lea ecx, [eax + ecx*8]
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x45f384
jmp 0x45f3c3
mov eax, dword [ebx + 0xcc]
cmp byte [eax], 0
je 0x45f3b8
mov eax, dword [0x698a68]
mov dword [esp + 0xbc], eax
mov al, byte [0x698a6c]
mov byte [esp + 0xc0], al
jmp 0x45f3c3
mov dword [esp + 0xbc], 0x2e6f4e
movd xmm0, dword [esp + 0x28]
mov eax, dword [ebx + 0xcc]
cvtdq2pd xmm0, xmm0
mov eax, dword [eax + 4]
addsd xmm0, xmm1
cvttsd2si ecx, xmm0
mov dword [esp + 0x38], ecx
cmp edi, dword [eax + 0xdc]
je 0x45f424
movd xmm2, dword [esp + 0x20]
movd xmm0, ecx
mov ecx, dword [esi]
cvtdq2ps xmm1, xmm0
cvtdq2ps xmm2, xmm2
call fcn.00455c20
movd xmm2, dword [esp + 0x80]
movd xmm1, dword [esp + 0x38]
mov ecx, dword [esi]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.00455df0
mov ecx, dword [esi]
call fcn.004561b0
mov eax, dword [esp + 0x4c]
xorps xmm1, xmm1
movsd xmm0, qword [ebx + 0x60]
cvtpd2ps xmm0, xmm0
mov ecx, dword [eax]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
movss dword [esp + 0x2c], xmm1
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esi]
xor esi, esi
cmp byte [esp + 0xbc], 0
movss dword [esp + 0x48], xmm0
mov dword [esp + 0x44], eax
je 0x45f507
mov ebx, dword [esp + 0x24]
mov edi, eax
nop dword [eax]
mov al, byte [esp + esi + 0xbc]
movaps xmm2, xmm0
mov byte [esp + 0x14], al
test al, al
jns 0x45f4a9
mov al, byte [esp + esi + 0xbd]
mov edx, ecx
mov ecx, edi
mov byte [esp + 0x15], al
mov byte [esp + 0x16], 0
call fcn.004565b0
lea edx, [esp + 0x14]
mov ecx, edi
call fcn.00455050
inc esi
jmp 0x45f4c2
mov edx, ebx
mov byte [esp + 0x15], 0
mov ecx, edi
call fcn.004565b0
lea edx, [esp + 0x14]
mov ecx, edi
call fcn.00455050
addss xmm0, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
inc esi
cmp byte [esp + esi + 0xbc], 0
movss dword [esp + 0x2c], xmm0
movss xmm0, dword [esp + 0x48]
jne 0x45f470
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x3c]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
jmp 0x45f50b
mov esi, dword [esp + 0x44]
movsd xmm0, qword [ebx + 0x70]
mov ecx, esi
mov eax, dword [esp + 0x38]
sub eax, dword [esp + 0x28]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [ebx + 0x60]
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x30], eax
movss dword [esp + 0x48], xmm0
call fcn.00456390
movd xmm1, dword [esp + 0x20]
mov ecx, esi
cvtdq2pd xmm0, xmm1
movd xmm1, dword [esp + 0x30]
addsd xmm0, qword [esp + 0x88]
cvtdq2pd xmm1, xmm1
cvttsd2si eax, xmm0
movss xmm0, dword [esp + 0x2c]
cvtps2pd xmm0, xmm0
movd xmm2, eax
subsd xmm1, xmm0
movd xmm0, dword [esp + 0x28]
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x69c1e0]
cvtdq2ps xmm2, xmm2
addsd xmm1, xmm0
cvttsd2si eax, xmm1
movd xmm1, eax
cvtdq2ps xmm1, xmm1
call fcn.00456920
movss xmm0, dword [esp + 0x48]
lea eax, [esp + 0xbc]
push eax
push ecx
movss dword [esp], xmm0
push dword [esp + 0x3c]
push dword [esp + 0x30]
push esi
call fcn.00463560
mov ecx, esi
call fcn.004564c0
mov byte [esp + 0x13], 1
xorps xmm0, xmm0
movlpd qword [esp + 0x88], xmm0
cmp edi, 2
jle 0x45f606
mov ecx, dword [ebx + 0xcc]
mov eax, dword [ecx + 4]
cmp edi, dword [eax + 0xdc]
je 0x45f606
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x23]
push eax
lea eax, [edi - 3]
push eax
call fcn.00463320
mov esi, dword [esp + 0x60]
mov dword [esp + 0x44], esi
cmp esi, dword [esp + 0x6c]
jg 0x45f890
mov dword [esp + 0x34], 1
cmp edi, 2
jle 0x45f655
mov ecx, dword [ebx + 0xcc]
mov eax, dword [ecx + 4]
cmp edi, dword [eax + 0xdc]
je 0x45f655
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0xa8]
push eax
push esi
lea eax, [edi - 3]
push eax
call fcn.00463220
push ecx
lea eax, [esp + 0xc0]
mov ecx, ebx
push eax
push esi
push edi
call fcn.0045fb20
mov eax, dword [esp + 0x1c]
movsd xmm2, qword [ebx + 0x60]
cvtpd2ps xmm2, xmm2
mov esi, dword [eax]
mov ecx, esi
mov eax, dword [esp + 0x40]
mov edx, dword [eax]
call fcn.004565b0
lea edx, [esp + 0xbc]
mov ecx, esi
call fcn.00455050
movd xmm1, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
movsd xmm2, qword [ebx + 0x80]
cvtdq2pd xmm1, xmm1
cvtss2sd xmm0, xmm0
subsd xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x69c1e0]
addsd xmm1, xmm0
movd xmm0, dword [esp + 0x34]
cvtdq2pd xmm0, xmm0
cvttsd2si eax, xmm1
movaps xmm1, xmm2
mov dword [esp + 0x50], eax
addsd xmm1, qword [ebx + 0x78]
addsd xmm1, qword [ebx + 0x60]
movsd qword [esp + 0x78], xmm1
mulsd xmm0, xmm1
movd xmm1, dword [esp + 0x20]
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
addsd xmm1, xmm2
cvttsd2si ecx, xmm1
mov dword [esp + 0x24], ecx
cmp edi, 2
jle 0x45f80e
mov eax, dword [ebx + 0xcc]
mov eax, dword [eax + 4]
cmp edi, dword [eax + 0xdc]
je 0x45f80e
cmp byte [esp + 0x13], 0
je 0x45f80e
cmp byte [esp + 0x1b], 0
je 0x45f80e
movsd xmm0, qword [esp + 0xa8]
movsd xmm3, qword [0x69c1c0]
movsd xmm1, qword [esp + 0xa0]
addsd xmm0, xmm3
comisd xmm0, xmm1
ja 0x45f775
movsd xmm0, qword [esp + 0x98]
subsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x45f80e
mov eax, dword [esp + 0x1c]
lea edi, [edx + 1]
movss xmm3, dword [0x69c198]
movss xmm1, dword [0x69c1b8]
movd xmm0, ecx
mov ebx, dword [eax]
mov ecx, ebx
cvtdq2pd xmm0, xmm0
subsd xmm0, xmm2
movaps xmm2, xmm3
addsd xmm0, qword [0x69c1f8]
cvttsd2si esi, xmm0
call fcn.00456fe0
mov eax, dword [esp + 0x30]
add eax, 0xfffffffe
push ecx
mov ecx, ebx
movsd xmm0, qword [esp + 0x7c]
subsd xmm0, qword [0x69c230]
movd xmm2, esi
movd xmm1, edi
cvtdq2ps xmm2, xmm2
cvtpd2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [esp], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtpd2ps xmm3, xmm0
call fcn.00455fa0
add esp, 4
mov ecx, ebx
call fcn.004562a0
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
mov ecx, ebx
call fcn.00456fe0
mov ebx, dword [esp + 0x5c]
movsd xmm0, qword [ebx + 0x60]
subsd xmm0, qword [0x69c230]
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov eax, dword [esp + 0x1c]
cvtpd2ps xmm0, xmm0
mov edi, dword [eax]
mov ecx, edi
movss dword [esp + 0x48], xmm0
call fcn.00456390
movss xmm2, dword [esp + 0x48]
mov edx, esi
mov ecx, edi
call fcn.004565b0
movd xmm2, dword [esp + 0x24]
mov ecx, edi
movd xmm1, dword [esp + 0x50]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm1, xmm1
call fcn.00456920
lea edx, [esp + 0xbc]
mov ecx, edi
call fcn.00456e20
mov ecx, edi
call fcn.004564c0
mov esi, dword [esp + 0x44]
inc dword [esp + 0x34]
inc esi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x44], esi
cmp esi, dword [esp + 0x6c]
jle 0x45f620
mov eax, dword [esp + 0x38]
inc edi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0xcc]
mov dword [esp + 0x3c], edi
mov eax, dword [eax + 4]
cmp edi, dword [eax + 0xdc]
jle 0x45f360
mov ecx, dword [esp + 0xe4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005b03a9
mov esp, ebp
pop ebp
ret 0x1c