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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0xd0
mov eax, dword [esp + 0xf0]
mov edx, dword [0x21e9fa0]
push 0x21ec3d0
movsd xmm2, qword [eax]
movsd xmm0, qword [edx*8 + 0x5e4e248]
lea ecx, [edx*8 + 0x5e4e230]
movsd xmm1, qword [ecx + 0x30]
subsd xmm2, xmm0
subsd xmm1, xmm0
divsd xmm2, xmm1
push ecx
movsd qword [0x21ec3d0], xmm2
call fcn.00418610
fstp qword [esp + 0x6c]
add esp, 8
mov edi, dword [esp + 0x100]
movsd xmm0, qword [esp + 0x64]
mov ebp, dword [esp + 0xec]
mov ebx, dword [esp + 0xf4]
movsd qword [0x21ec3d8], xmm0
comisd xmm0, xmmword [edi]
jbe 0x437921
mov eax, dword [0x21e9fa0]
push ebx
movsd xmm0, qword [0x21ec3d0]
movsd xmm2, qword [eax*8 + 0x5e4e230]
movsd xmm1, qword [eax*8 + 0x5e4e170]
movsd qword [0x21ec3e0], xmm2
addsd xmm2, xmm1
mulsd xmm2, qword [0x4fa930]
push 0x21ec3e8
movsd qword [ebx], xmm0
movsd qword [0x21ec3f0], xmm1
movsd qword [0x21ec3e8], xmm2
call fcn.00418610
fstp qword [esp + 0xc4]
movsd xmm0, qword [esp + 0xc4]
movsd xmm2, qword [0x21ec3e0]
lea eax, [esp + 0xc4]
movsd xmm3, qword [0x21ec3e8]
movsd xmm1, qword [eax - 0x58]
subsd xmm3, xmm2
subsd xmm0, xmm1
divsd xmm3, xmm0
movsd xmm0, qword [edi]
subsd xmm0, xmm1
mulsd xmm3, xmm0
addsd xmm3, xmm2
movsd qword [eax], xmm3
push 0x21ec3f0
push 0x21ec3e0
push eax
call fcn.004489e0
add esp, 0x14
fstp qword [ebp]
mov edi, dword [esp + 0x108]
mov esi, dword [esp + 0x104]
push ebx
push ebp
call fcn.00418610
add esp, 8
mov edx, dword [esp + 0x100]
mov ecx, 0x4fa760
mov dword [esp], ebp
mov dword [esp + 4], edx
lea edx, [esp + 0xcc]
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec3f0
dec eax
mov dword [esp + 0x18], 0x21ec3e0
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d0
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb2bc
mov dword [esp + 0x44], 0x4fb2c4
mov dword [esp + 0x48], 0x4fb2d4
mov dword [esp + 0x4c], 0x21ec0e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4377c5
movq xmm0, qword [0x4fa958]
movq xmm1, qword [0x4fa960]
mov dword [esp], 0x21ec0e0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4fb2dc
movq qword [esp + 0x10], xmm1
mov edi, dword [esp + 0x100]
movq qword [esp + 0x18], xmm1
call fcn.00449e00
test eax, eax
je 0x438099
movsd xmm1, qword [ebp]
movsd xmm0, qword [0x21ec3e0]
comisd xmm0, xmm1
ja 0x437909
comisd xmm1, xmmword [0x21ec3f0]
jbe 0x43808c
mov eax, dword [esp + 0x10c]
mov dword [eax], 1
add esp, 0xd0
pop ebp
pop ebx
pop edi
pop esi
ret
mov eax, dword [0x21e9fa0]
push 0x4fa770
lea edx, [eax*8 + 0x5e4e230]
push edx
call fcn.00418610
mov eax, dword [0x21e9fa0]
push 0x4fa778
fst qword [0x21ec408]
lea edx, [eax*8 + 0x5e4e230]
push edx
fstp qword [esp + 0x74]
call fcn.00418610
fld qword [esp + 0x74]
add esp, 0x10
fstp qword [esp + 0xbc]
movsd xmm1, qword [edi]
movsd xmm0, qword [esp + 0xbc]
fst qword [0x21ec410]
comisd xmm0, xmm1
jb 0x43814b
fstp st(0)
mov eax, dword [0x21e9fa0]
movsd xmm0, qword [0x4fa940]
movsd qword [0x21ec3e0], xmm0
movsd xmm1, qword [eax*8 + 0x5e4e230]
movsd qword [0x21ec3f0], xmm1
mulsd xmm1, qword [0x4fa930]
movsd qword [ebp], xmm1
mov esi, dword [esp + 0x108]
mov ebx, dword [esp + 0x104]
push 0x4fa770
push ebp
call fcn.00418610
add esp, 8
mov dword [esp], ebp
mov edx, 0x4fa760
mov dword [esp + 4], edi
mov ecx, 0x4fa788
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0x21ec3f0
mov dword [esp + 0x18], 0x21ec3e0
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], ecx
mov eax, dword [esi]
mov dword [esp + 0x24], ecx
dec eax
mov dword [esp + 0x28], edx
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x5251d0
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 0x4fb2e0
mov dword [esp + 0x44], 0x4fb2e8
mov dword [esp + 0x48], 0x4fb2f8
mov dword [esp + 0x4c], 0x21ec0e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4379c7
mov ebx, dword [esp + 0xf4]
push 0x4fa770
push ebp
call fcn.004181e0
add esp, 8
mov eax, dword [esp + 0xf0]
fst qword [esp + 0xbc]
movsd xmm0, qword [esp + 0xbc]
fstp qword [0x21ec418]
comisd xmm0, xmmword [eax]
jb 0x437e8d
movsd xmm2, qword [ebp]
lea eax, [esp + 0x9c]
movsd qword [0x21ec3f0], xmm2
mulsd xmm2, qword [0x4fa930]
pxor xmm1, xmm1
movsd qword [eax], xmm2
push 0x21ec3f0
push 0x21ec3e0
movsd xmm0, qword [0x4fa968]
push eax
movsd qword [0x21ec420], xmm0
movsd qword [0x21ec428], xmm1
call fcn.004489e0
push 0x4fa770
push ebp
fstp qword [ebp]
call fcn.00419610
fstp qword [esp + 0x78]
push 0x4fa778
push ebp
movsd xmm0, qword [esp + 0x80]
movsd qword [0x21ec418], xmm0
call fcn.004194c0
fstp qword [esp + 0xd8]
movsd xmm1, qword [esp + 0xd8]
mov eax, dword [esp + 0x10c]
lea edx, [esp + 0xc0]
movsd xmm0, qword [edx - 0x40]
movsd qword [0x21ec430], xmm1
subsd xmm1, xmm0
movsd xmm2, qword [eax]
subsd xmm2, xmm0
divsd xmm2, xmm1
movsd qword [edx], xmm2
push 0x21ec420
push 0x21ec428
push edx
call fcn.004489e0
add esp, 0x28
fstp qword [ebx]
mov edi, dword [esp + 0x108]
mov esi, dword [esp + 0x104]
push ebx
push ebp
call fcn.004181e0
add esp, 8
mov edx, dword [esp + 0xf0]
mov ecx, 0x4fa760
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0xc8]
mov dword [esp + 8], 0x21ec438
mov dword [esp + 0xc], 0x4fa780
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec420
dec eax
mov dword [esp + 0x18], 0x21ec428
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d4
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb300
mov dword [esp + 0x44], 0x4fb308
mov dword [esp + 0x48], 0x4fb318
mov dword [esp + 0x4c], 0x21ec1e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec438]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x437bbf
movsd xmm2, qword [ebx]
movaps xmm1, xmm2
movsd xmm0, qword [0x21ec428]
subsd xmm1, qword [0x4fa940]
comisd xmm0, xmm1
jbe 0x438104
push 0x21ec440
push ebp
addsd xmm2, qword [0x4fa940]
movsd qword [0x21ec440], xmm2
call fcn.004181e0
fstp qword [esp + 0xc4]
movsd xmm1, qword [esp + 0xc4]
add esp, 8
subsd xmm1, qword [0x21ec438]
divsd xmm1, qword [0x4fa940]
movsd qword [0x21ec448], xmm1
pxor xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x437d10
je 0x437d40
movsd xmm0, qword [0x21ec400]
lea eax, [esp + 0xac]
divsd xmm0, xmm1
addsd xmm0, qword [ebx]
movsd qword [eax], xmm0
push 0x21ec420
push 0x21ec428
push eax
call fcn.004489e0
add esp, 0xc
fstp qword [ebx]
push ebx
push ebp
call fcn.00418610
add esp, 8
mov edx, dword [esp + 0x100]
mov ecx, 0x4fa760
mov dword [esp], ebp
mov dword [esp + 4], edx
lea edx, [esp + 0xb8]
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec3f0
dec eax
mov dword [esp + 0x18], 0x21ec3e0
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d8
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb320
mov dword [esp + 0x44], 0x4fb328
mov dword [esp + 0x48], 0x4fb338
mov dword [esp + 0x4c], 0x21ec2e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x437bbf
movq xmm0, qword [0x4fa958]
movq xmm1, qword [0x4fa960]
mov dword [esp], 0x21ec2e0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4fb340
movq qword [esp + 0x10], xmm1
mov edi, dword [esp + 0x100]
movq qword [esp + 0x18], xmm1
call fcn.00449e00
test eax, eax
je 0x438099
movsd xmm1, qword [ebp]
movsd xmm0, qword [0x21ec3e0]
comisd xmm0, xmm1
ja 0x437909
comisd xmm1, xmmword [0x21ec3f0]
ja 0x437909
jmp 0x43808c
movsd xmm1, qword [ebp]
movsd qword [0x21ec3e0], xmm1
push 0x21ec3f0
push 0x21ec3e0
movsd xmm0, qword [0x4fa930]
push ebp
mov eax, dword [esp + 0x118]
addsd xmm1, qword [0x21ec3f0]
mulsd xmm0, xmm1
mov dword [eax], 0xa
movsd qword [ebp], xmm0
call fcn.004489e0
add esp, 0xc
fstp qword [ebp]
mov esi, dword [esp + 0x104]
push 0x4fa770
push ebp
call fcn.00419610
fstp qword [esp + 0xc4]
movsd xmm2, qword [esp + 0xc4]
push 0x4fa770
push ebp
movsd qword [0x21ec418], xmm2
movsd qword [esp + 0x74], xmm2
call fcn.004194c0
fstp qword [esp + 0xcc]
movsd xmm2, qword [esp + 0x74]
movsd xmm1, qword [esp + 0xcc]
push ebx
push ebp
mov eax, dword [esp + 0x108]
movsd qword [0x21ec430], xmm1
subsd xmm1, xmm2
movsd xmm0, qword [eax]
subsd xmm0, xmm2
divsd xmm0, xmm1
movsd qword [ebx], xmm0
call fcn.00418610
add esp, 0x18
mov eax, dword [esp + 0x108]
mov ecx, 0x4fa760
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x21ec3f0
mov dword [esp + 0x18], 0x21ec3e0
mov edx, dword [eax]
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
dec edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0xb4], edx
lea edx, [esp + 0xb4]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d4
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb344
mov dword [esp + 0x44], 0x4fb34c
mov dword [esp + 0x48], 0x4fb35c
mov dword [esp + 0x4c], 0x21ec1e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x437edd
movq xmm0, qword [0x4fa958]
movq xmm1, qword [0x4fa960]
mov dword [esp], 0x21ec1e0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4fb364
movq qword [esp + 0x10], xmm1
movq qword [esp + 0x18], xmm1
call fcn.00449e00
test eax, eax
je 0x438099
movsd xmm1, qword [ebp]
movsd xmm0, qword [0x21ec3e0]
comisd xmm0, xmm1
ja 0x437909
comisd xmm1, xmmword [0x21ec3f0]
ja 0x437909
mov eax, dword [esp + 0x10c]
mov dword [eax], 2
mov eax, 0x4fa790
mov ecx, 0x4fa788
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0xe4]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xe8]
mov ebp, dword [esp + 0xf0]
mov dword [esp + 0x20], edx
mov edx, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
mov ebx, dword [esp + 0xf8]
mov ebp, dword [esp + 0xfc]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], edi
call fcn.0042deec
add esp, 0xd0
pop ebp
pop ebx
pop edi
pop esi
ret
push 0x21ec440
push ebp
movsd qword [0x21ec440], xmm1
call fcn.004181e0
fstp qword [esp + 0xc4]
movsd xmm0, qword [esp + 0xc4]
add esp, 8
movsd xmm1, qword [0x21ec438]
subsd xmm1, xmm0
divsd xmm1, qword [0x4fa940]
movsd qword [0x21ec448], xmm1
jmp 0x437d04
fstp qword [esp + 0xbc]
movsd xmm0, qword [esp + 0xbc]
comisd xmm0, xmm1
jae 0x43848e
mov eax, dword [0x21e9fa0]
movsd xmm0, qword [0x4fa940]
movsd qword [0x21ec3e0], xmm0
movsd xmm1, qword [eax*8 + 0x5e4e230]
movsd qword [0x21ec3f0], xmm1
mulsd xmm1, qword [0x4fa930]
movsd qword [ebp], xmm1
mov esi, dword [esp + 0x108]
mov ebx, dword [esp + 0x104]
push 0x4fa778
push ebp
call fcn.00418610
add esp, 8
mov dword [esp], ebp
mov edx, 0x4fa760
mov dword [esp + 4], edi
mov ecx, 0x4fa788
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0x21ec3f0
mov dword [esp + 0x18], 0x21ec3e0
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], ecx
mov eax, dword [esi]
mov dword [esp + 0x24], ecx
dec eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x90], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0x5251d0
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 0x4fb368
mov dword [esp + 0x44], 0x4fb370
mov dword [esp + 0x48], 0x4fb380
mov dword [esp + 0x4c], 0x21ec0e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4381a6
mov ebx, dword [esp + 0xf4]
push 0x4fa778
push ebp
call fcn.004181e0
fstp qword [esp + 0x7c]
add esp, 8
mov eax, dword [esp + 0xf0]
movsd xmm1, qword [esp + 0x74]
movsd qword [0x21ec430], xmm1
movsd xmm0, qword [eax]
comisd xmm0, xmm1
jb 0x4387c1
movsd xmm0, qword [ebp]
movsd qword [0x21ec3e0], xmm0
mov esi, dword [esp + 0x104]
push 0x4fa778
push ebp
call fcn.00419610
fstp qword [esp + 0xc4]
movsd xmm2, qword [esp + 0xc4]
push 0x4fa778
push ebp
movsd qword [0x21ec418], xmm2
movsd qword [esp + 0x74], xmm2
call fcn.004194c0
fstp qword [esp + 0xcc]
movsd xmm2, qword [esp + 0x74]
movsd xmm1, qword [esp + 0xcc]
push ebx
push ebp
mov eax, dword [esp + 0x108]
movsd qword [0x21ec430], xmm1
subsd xmm1, xmm2
movsd xmm0, qword [eax]
subsd xmm0, xmm2
divsd xmm0, xmm1
movsd qword [ebx], xmm0
call fcn.00418610
add esp, 0x18
mov eax, dword [esp + 0x108]
mov ecx, 0x4fa760
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0x21ec3f0
mov dword [esp + 0x18], 0x21ec3e0
mov edx, dword [eax]
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
dec edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x8c], edx
lea edx, [esp + 0x8c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d4
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb388
mov dword [esp + 0x44], 0x4fb390
mov dword [esp + 0x48], 0x4fb3a0
mov dword [esp + 0x4c], 0x21ec1e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4382d6
movq xmm0, qword [0x4fa958]
movq xmm1, qword [0x4fa960]
mov dword [esp], 0x21ec1e0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4fb3a8
movq qword [esp + 0x10], xmm1
movq qword [esp + 0x18], xmm1
call fcn.00449e00
test eax, eax
je 0x438099
movsd xmm1, qword [ebp]
movsd xmm0, qword [0x21ec3e0]
comisd xmm0, xmm1
ja 0x437909
comisd xmm1, xmmword [0x21ec3f0]
ja 0x437909
jmp 0x43808c
mov eax, dword [0x21e9fa0]
movsd xmm2, qword [0x4fa930]
movsd xmm0, qword [0x4fa968]
movsd xmm1, qword [eax*8 + 0x5e4e230]
movsd qword [0x21ec3f0], xmm1
mulsd xmm1, xmm2
movsd xmm3, qword [0x4fa940]
movsd qword [0x21ec420], xmm0
pxor xmm0, xmm0
movsd qword [0x21ec3e0], xmm3
movsd qword [0x21ec428], xmm0
movsd qword [ebp], xmm1
movsd qword [ebx], xmm2
mov edi, dword [esp + 0x108]
mov esi, dword [esp + 0x104]
push ebx
push ebp
call fcn.004181e0
add esp, 8
mov edx, dword [esp + 0xf0]
mov ecx, 0x4fa760
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0x98]
mov dword [esp + 8], 0x21ec438
mov dword [esp + 0xc], 0x4fa780
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec420
dec eax
mov dword [esp + 0x18], 0x21ec428
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d0
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb3ac
mov dword [esp + 0x44], 0x4fb3b4
mov dword [esp + 0x48], 0x4fb3c4
mov dword [esp + 0x4c], 0x21ec0e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec438]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4384f3
movsd xmm2, qword [ebx]
movaps xmm1, xmm2
movsd xmm0, qword [0x21ec428]
subsd xmm1, qword [0x4fa940]
comisd xmm0, xmm1
jbe 0x438cd3
push 0x21ec440
push ebp
addsd xmm2, qword [0x4fa940]
movsd qword [0x21ec440], xmm2
call fcn.004181e0
fstp qword [esp + 0xc4]
movsd xmm1, qword [esp + 0xc4]
add esp, 8
subsd xmm1, qword [0x21ec438]
divsd xmm1, qword [0x4fa940]
movsd qword [0x21ec448], xmm1
pxor xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x438644
je 0x438674
movsd xmm0, qword [0x21ec400]
lea eax, [esp + 0x84]
divsd xmm0, xmm1
addsd xmm0, qword [ebx]
movsd qword [eax], xmm0
push 0x21ec420
push 0x21ec428
push eax
call fcn.004489e0
add esp, 0xc
fstp qword [ebx]
push ebx
push ebp
call fcn.00418610
add esp, 8
mov edx, dword [esp + 0x100]
mov ecx, 0x4fa760
mov dword [esp], ebp
mov dword [esp + 4], edx
lea edx, [esp + 0x94]
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec3f0
dec eax
mov dword [esp + 0x18], 0x21ec3e0
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d4
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb3cc
mov dword [esp + 0x44], 0x4fb3d4
mov dword [esp + 0x48], 0x4fb3e4
mov dword [esp + 0x4c], 0x21ec1e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4384f3
movq xmm0, qword [0x4fa958]
movq xmm1, qword [0x4fa960]
mov dword [esp], 0x21ec1e0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4fb3ec
movq qword [esp + 0x10], xmm1
mov edi, dword [esp + 0x100]
movq qword [esp + 0x18], xmm1
call fcn.00449e00
test eax, eax
je 0x438099
movsd xmm1, qword [ebp]
movsd xmm0, qword [0x21ec3e0]
comisd xmm0, xmm1
ja 0x437909
comisd xmm1, xmmword [0x21ec3f0]
ja 0x437909
jmp 0x43808c
mov eax, dword [0x21e9fa0]
movsd xmm2, qword [0x4fa968]
pxor xmm1, xmm1
push 0x4fa778
movsd xmm3, qword [eax*8 + 0x5e4e158]
movsd xmm0, qword [ebp]
subsd xmm3, xmm2
push 0x21ec450
movsd qword [0x21ec3f0], xmm0
movsd qword [0x21ec420], xmm2
movsd qword [0x21ec428], xmm1
movsd qword [0x21ec450], xmm3
call fcn.00419320
fstp qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x6c]
push 0x4fa770
push 0x21ec450
movsd qword [0x21ec458], xmm0
call fcn.004191d0
fstp qword [esp + 0xcc]
movsd xmm0, qword [esp + 0xcc]
movsd xmm2, qword [edi]
movsd xmm1, qword [esp + 0x74]
subsd xmm2, xmm0
subsd xmm1, xmm0
divsd xmm2, xmm1
push 0x21ec460
push 0x21ec450
movsd qword [0x21ec468], xmm0
movsd qword [0x21ec460], xmm2
call fcn.004181e0
fstp qword [esp + 0x84]
push 0x21ec3f0
push 0x21ec3e0
push ebp
mov eax, dword [esp + 0x114]
movsd xmm0, qword [esp + 0x90]
movsd xmm1, qword [esp + 0x98]
movsd xmm4, qword [eax]
subsd xmm1, xmm0
subsd xmm4, xmm0
divsd xmm4, xmm1
movsd xmm3, qword [0x21ec450]
movsd xmm2, qword [0x21ec3f0]
movsd qword [0x21ec470], xmm0
subsd xmm2, xmm3
mulsd xmm4, xmm2
movsd qword [esp + 0x98], xmm1
addsd xmm4, xmm3
movsd qword [ebp], xmm4
call fcn.004489e0
mov eax, dword [esp + 0x114]
lea edx, [esp + 0x88]
movsd xmm1, qword [0x21ec460]
movsd xmm0, qword [0x4fa968]
movsd xmm2, qword [eax]
subsd xmm0, xmm1
subsd xmm2, qword [edx + 8]
divsd xmm2, qword [edx + 0x10]
mulsd xmm2, xmm0
fstp qword [ebp]
addsd xmm2, xmm1
movsd qword [edx], xmm2
push 0x21ec420
push 0x21ec428
push edx
call fcn.004489e0
push ebx
push ebp
fstp qword [ebx]
call fcn.00419610
fstp qword [esp + 0xac]
push ebx
push ebp
movsd xmm0, qword [esp + 0xb4]
movsd qword [0x21ec418], xmm0
call fcn.004194c0
fstp qword [esp + 0xfc]
movsd xmm1, qword [esp + 0xfc]
mov eax, dword [esp + 0x130]
lea edx, [esp + 0xac]
movsd xmm0, qword [edx + 8]
movsd qword [0x21ec430], xmm1
subsd xmm1, xmm0
movsd xmm2, qword [eax]
subsd xmm2, xmm0
divsd xmm2, xmm1
movsd qword [edx], xmm2
push 0x21ec420
push 0x21ec428
push edx
call fcn.004489e0
add esp, 0x4c
fstp qword [ebx]
mov edi, dword [esp + 0x108]
mov esi, dword [esp + 0x104]
push ebx
push ebp
call fcn.004181e0
add esp, 8
mov edx, dword [esp + 0xf0]
mov ecx, 0x4fa760
mov dword [esp], ebx
mov dword [esp + 4], edx
lea edx, [esp + 0x80]
mov dword [esp + 8], 0x21ec438
mov dword [esp + 0xc], 0x4fa780
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec420
dec eax
mov dword [esp + 0x18], 0x21ec428
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d4
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb3f0
mov dword [esp + 0x44], 0x4fb3f8
mov dword [esp + 0x48], str.h
mov dword [esp + 0x4c], 0x21ec1e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec438]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4389c4
movsd xmm2, qword [ebx]
movaps xmm1, xmm2
movsd xmm0, qword [0x21ec428]
subsd xmm1, qword [0x4fa940]
comisd xmm0, xmm1
jbe 0x438c8c
push 0x21ec440
push ebp
addsd xmm2, qword [0x4fa940]
movsd qword [0x21ec440], xmm2
call fcn.004181e0
fstp qword [esp + 0xc4]
movsd xmm1, qword [esp + 0xc4]
add esp, 8
subsd xmm1, qword [0x21ec438]
divsd xmm1, qword [0x4fa940]
movsd qword [0x21ec448], xmm1
pxor xmm0, xmm0
ucomisd xmm1, xmm0
jp 0x438b15
je 0x438b42
movsd xmm0, qword [0x21ec400]
lea eax, [esp + 0x74]
divsd xmm0, xmm1
addsd xmm0, qword [ebx]
movsd qword [eax], xmm0
push 0x21ec420
push 0x21ec428
push eax
call fcn.004489e0
add esp, 0xc
fstp qword [ebx]
push ebx
push ebp
call fcn.00418610
add esp, 8
mov edx, dword [esp + 0x100]
mov ecx, 0x4fa760
mov dword [esp], ebp
mov dword [esp + 4], edx
lea edx, [esp + 0x7c]
mov dword [esp + 8], 0x21ec3f8
mov dword [esp + 0xc], 0x4fa768
mov dword [esp + 0x10], ecx
mov eax, dword [edi]
mov dword [esp + 0x14], 0x21ec3f0
dec eax
mov dword [esp + 0x18], 0x21ec3e0
mov dword [edx], eax
mov eax, 0x4fa788
mov dword [esp + 0x1c], 0x4fa78c
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], 0x5251d8
mov dword [esp + 0x38], 0x21ec400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0x4fb410
mov dword [esp + 0x44], str.state_idx48
mov dword [esp + 0x48], 0x4fb428
mov dword [esp + 0x4c], 0x21ec2e0
mov dword [esp + 0x50], 0xc
mov dword [esp + 0x54], 6
mov dword [esp + 0x58], 0xc
mov dword [esp + 0x5c], 6
fstp qword [0x21ec3f8]
mov dword [esp + 0x60], 0x50
call fcn.004415b0
cmp eax, 1
je 0x4389c4
movq xmm0, qword [0x4fa958]
movq xmm1, qword [0x4fa960]
mov dword [esp], 0x21ec2e0
movq qword [esp + 4], xmm0
mov dword [esp + 0xc], 0x4fb430
movq qword [esp + 0x10], xmm1
mov edi, dword [esp + 0x100]
movq qword [esp + 0x18], xmm1
call fcn.00449e00
test eax, eax
je 0x438099
movsd xmm1, qword [ebp]
movsd xmm0, qword [0x21ec3e0]
comisd xmm0, xmm1
ja 0x437909
comisd xmm1, xmmword [0x21ec3f0]
ja 0x437909
jmp 0x43808c
push 0x21ec440
push ebp
movsd qword [0x21ec440], xmm1
call fcn.004181e0
fstp qword [esp + 0xc4]
movsd xmm0, qword [esp + 0xc4]
add esp, 8
movsd xmm1, qword [0x21ec438]
subsd xmm1, xmm0
divsd xmm1, qword [0x4fa940]
movsd qword [0x21ec448], xmm1
jmp 0x438b09
push 0x21ec440
push ebp
movsd qword [0x21ec440], xmm1
call fcn.004181e0
fstp qword [esp + 0xc4]
movsd xmm0, qword [esp + 0xc4]
add esp, 8
movsd xmm1, qword [0x21ec438]
subsd xmm1, xmm0
divsd xmm1, qword [0x4fa940]
movsd qword [0x21ec448], xmm1
jmp 0x438638