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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
movss xmm0, dword [esp + 0x50]
movsd xmm2, qword [0x4c5bf0]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4c5b80]
addsd xmm1, xmm0
cvttsd2si edx, xmm1
movss xmm1, dword [esp + 0x54]
movsd xmm5, qword [0x4c5bf8]
movd xmm4, dword [esp + 0x64]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
movss xmm0, dword [esp + 0x58]
cvttsd2si ecx, xmm1
movsd xmm1, qword [0x4c5be8]
mov eax, dword [esp + 0x60]
cvttss2si esi, xmm0
cvtps2pd xmm0, xmm0
andpd xmm1, xmm0
movapd xmm3, xmm1
movapd xmm1, xmm0
xorpd xmm1, xmm3
cmpltsd xmm1, xmm2
andpd xmm2, xmm1
orpd xmm2, xmm3
movapd xmm1, xmm0
addsd xmm1, xmm2
subsd xmm1, xmm2
movapd xmm2, xmm1
subsd xmm2, xmm0
cmpnlesd xmm2, xmm3
andpd xmm2, xmm5
subsd xmm1, xmm2
mov dword [esp + 0x14], esi
cvtpd2ps xmm1, xmm1
cvtdq2pd xmm4, xmm4
cvtss2sd xmm1, xmm1
subsd xmm0, xmm1
mulsd xmm0, xmm4
cvttsd2si esi, xmm0
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x6c]
push esi
mov esi, dword [esp + 0x58]
push esi
mov esi, dword [esp + 0x54]
mov edi, eax
mov ebp, eax
mov ebx, eax
shr eax, 0x18
push eax
shr ebp, 8
and ebx, 0xff
push ebx
mov dword [esp + 0x60], ecx
sub ecx, dword [esp + 0x24]
shr edi, 0x10
and ebp, 0xff
push ebp
and edi, 0xff
push edi
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
push eax
mov dword [esp + 0x34], ecx
dec ecx
push ecx
push edx
push esi
mov dword [esp + 0x38], edx
movsd qword [esp + 0x60], xmm4
call fcn.00439990
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
push ecx
mov ecx, dword [esp + 0x8c]
push edx
mov edx, dword [esp + 0x8c]
push ecx
push ebx
push ebp
push edi
push edx
inc eax
push eax
mov eax, dword [esp + 0x58]
push eax
push esi
call fcn.00439990
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x64]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x5c]
push ebx
push ebp
push edi
push edx
mov dword [esp + 0x48], eax
push ecx
dec eax
push eax
push esi
call fcn.00439990
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x8c]
push edx
mov edx, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x84]
push ebx
push ebp
push edi
push edx
mov dword [esp + 0x74], eax
push ecx
inc eax
push eax
push esi
call fcn.00439990
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
add esp, 0x50
cmp byte [esp + 0x68], 0
push edx
je 0x440994
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x24]
push ebx
push ebp
push edi
push edx
mov edx, dword [esp + 0x2c]
dec eax
push eax
push ecx
push edx
push esi
call fcn.00439c20
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x88]
push ebx
push ebp
push edi
push eax
mov eax, dword [esp + 0x58]
push ecx
inc edx
push edx
push eax
push esi
call fcn.00439c20
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x38]
push ebx
push ebp
push edi
push ecx
mov ecx, dword [esp + 0x6c]
push edx
push eax
push ecx
push esi
call fcn.00439a10
add esp, 0x2c
jmp 0x440a56
sub eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x1c]
push eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x1c]
push ebx
push ebp
push edi
push ecx
push edx
push eax
push esi
call fcn.00439990
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x88]
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x64]
push ebx
push ebp
push edi
push ecx
push edx
push eax
push esi
call fcn.00439990
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xb0]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x1c]
push ebx
push ebp
push edi
push ecx
push edx
push eax
push esi
call fcn.00439990
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x88]
push edx
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x60]
push ebx
push ebp
push edi
push ecx
push edx
push eax
push esi
call fcn.00439990
add esp, 0x50
movss xmm0, dword [esp + 0x58]
cvtps2pd xmm0, xmm0
movapd xmm1, xmm0
mulsd xmm1, xmm0
movsd qword [esp + 0x40], xmm1
subsd xmm1, qword [0x4c5bf8]
sqrtsd xmm0, xmm1
movapd xmm1, xmm0
addsd xmm1, qword [0x4c5b80]
cvttsd2si eax, xmm1
mov dword [esp + 0x34], eax
mov dword [esp + 0x58], 1
cmp eax, 1
jl 0x44144d
mov eax, dword [esp + 0x5c]
jmp 0x440ab0
movsd xmm1, qword [0x4c5be8]
movsd xmm2, qword [0x4c5bf0]
movsd xmm4, qword [0x4c5bf8]
andpd xmm1, xmm0
movapd xmm3, xmm1
movapd xmm1, xmm0
xorpd xmm1, xmm3
cmpltsd xmm1, xmm2
andpd xmm2, xmm1
orpd xmm2, xmm3
movapd xmm1, xmm0
addsd xmm1, xmm2
subsd xmm1, xmm2
movapd xmm2, xmm1
subsd xmm2, xmm0
cvttsd2si edx, xmm0
cmpnlesd xmm2, xmm3
andpd xmm2, xmm4
subsd xmm1, xmm2
subsd xmm0, xmm1
mulsd xmm0, qword [esp + 0x38]
cvttsd2si ecx, xmm0
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x50]
sub ecx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea edx, [ecx - 1]
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x58]
cmp byte [esp + 0x6c], 0
mov dword [esp + 0x24], ecx
je 0x440b53
cmp ecx, dword [eax]
jl 0x440b97
cmp ecx, dword [eax + 8]
jge 0x440b97
cmp edx, dword [eax + 4]
jl 0x440b97
cmp edx, dword [eax + 0xc]
jge 0x440b97
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x18]
mov edx, dword [esi]
dec ecx
imul eax, ecx
add eax, dword [esp + 0x24]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x30]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
cmp byte [esp + 0x6c], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x50]
lea ecx, [edx + ecx + 1]
mov dword [esp + 0x30], ecx
je 0x440bc5
mov edx, dword [esp + 0x24]
cmp edx, dword [eax]
jl 0x440c06
cmp edx, dword [eax + 8]
jge 0x440c06
cmp ecx, dword [eax + 4]
jl 0x440c06
cmp ecx, dword [eax + 0xc]
jge 0x440c06
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x30]
add eax, dword [esp + 0x24]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x2c]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
test dl, dl
je 0x440c32
cmp ecx, dword [eax]
jl 0x440c81
cmp ecx, dword [eax + 8]
jge 0x440c81
mov ecx, dword [esp + 0x18]
dec ecx
cmp ecx, dword [eax + 4]
jl 0x440c7d
cmp ecx, dword [eax + 0xc]
jge 0x440c7d
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
mov ecx, dword [esp + 0x18]
dec ecx
imul eax, ecx
add eax, dword [esp + 0x20]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x2c]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x20]
test dl, dl
je 0x440c9c
cmp ecx, dword [eax]
jl 0x440ce4
cmp ecx, dword [eax + 8]
jge 0x440ce4
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 4]
jl 0x440ce4
cmp ecx, dword [eax + 0xc]
jge 0x440ce4
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x30]
add eax, dword [esp + 0x20]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x30]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x34]
je 0x440eb4
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x30], ecx
test dl, dl
je 0x440d26
cmp ecx, dword [eax]
jl 0x440d67
cmp ecx, dword [eax + 8]
jge 0x440d67
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x440d67
cmp ecx, dword [eax + 0xc]
jge 0x440d67
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
mov ecx, esi
call eax
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x30]
mov edx, dword [esi]
add eax, eax
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [edx + 4]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x2c]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
cmp byte [esp + 0x6c], 0
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + edx + 1]
mov dword [esp + 0x2c], ecx
je 0x440d95
cmp ecx, dword [eax]
jl 0x440dd6
cmp ecx, dword [eax + 8]
jge 0x440dd6
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x440dd6
cmp ecx, dword [eax + 0xc]
jge 0x440dd6
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x2c]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x28]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x1c], ecx
test dl, dl
je 0x440e05
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax]
jl 0x440e4d
cmp ecx, dword [eax + 8]
jge 0x440e4d
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x440e4d
cmp ecx, dword [eax + 0xc]
jge 0x440e4d
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x30]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x30]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
test dl, dl
je 0x440e6c
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax]
jl 0x440eb4
cmp ecx, dword [eax + 8]
jge 0x440eb4
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x440eb4
cmp ecx, dword [eax + 0xc]
jge 0x440eb4
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x2c]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x30]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
cmp byte [esp + 0x68], 0
mov ecx, dword [esp + 0x64]
je 0x4410b7
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x58]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x24]
push ebx
push ebp
push edi
push ecx
mov dword [esp + 0x38], eax
dec eax
push eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
push edx
push eax
push esi
call fcn.00439c20
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x84]
add eax, ecx
lea ecx, [ecx + edx + 1]
mov edx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x94]
push ebx
push ebp
push edi
push edx
push eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x70]
push ecx
push eax
push esi
mov dword [esp + 0x8c], ecx
call fcn.00439c20
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x6c]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x30]
push ebx
push ebp
push edi
push edx
mov edx, dword [esp + 0x38]
push ecx
push eax
push edx
push esi
mov dword [esp + 0x58], eax
call fcn.00439a10
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x90]
push edx
push ebx
push ebp
push edi
mov dword [esp + 0x74], eax
push ecx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x68]
push edx
push eax
push esi
call fcn.00439a10
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0xa8]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x30]
push ebx
push ebp
push edi
push edx
mov edx, dword [esp + 0x48]
push ecx
push edx
push eax
push esi
mov dword [esp + 0x48], eax
call fcn.00439a10
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x58]
push ebx
push ebp
push edi
push eax
mov eax, dword [esp + 0x64]
push ecx
push edx
push eax
push esi
call fcn.00439a10
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb8]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0x24]
push ebx
push ebp
push edi
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
push ecx
push esi
call fcn.00439c20
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
push edx
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
push ebx
push ebp
push edi
push edx
push eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x6c]
push ecx
push edx
push esi
call fcn.00439c20
add esp, 0x58
jmp 0x44140a
sub ecx, dword [esp + 0x54]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
test dl, dl
je 0x4410f2
cmp ecx, dword [eax]
jl 0x441133
cmp ecx, dword [eax + 8]
jge 0x441133
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x441133
cmp ecx, dword [eax + 0xc]
jge 0x441133
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x2c]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x30]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x10]
add ecx, dword [esp + 0x14]
cmp byte [esp + 0x6c], 0
mov dword [esp + 0x30], ecx
je 0x44115d
cmp ecx, dword [eax]
jl 0x44119e
cmp ecx, dword [eax + 8]
jge 0x44119e
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x44119e
cmp ecx, dword [eax + 0xc]
jge 0x44119e
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x30]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x28]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x14]
cmp byte [esp + 0x6c], 0
mov dword [esp + 0x28], ecx
je 0x4411c8
mov edx, dword [esp + 0x24]
cmp edx, dword [eax]
jl 0x44120d
cmp edx, dword [eax + 8]
jge 0x44120d
cmp ecx, dword [eax + 4]
jl 0x44120d
cmp ecx, dword [eax + 0xc]
jge 0x44120d
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x28]
add eax, dword [esp + 0x24]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x1c]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x74]
add esp, 0x18
cmp byte [esp + 0x6c], 0
je 0x44122b
mov edx, dword [esp + 0x20]
cmp edx, dword [eax]
jl 0x44126c
cmp edx, dword [eax + 8]
jge 0x44126c
cmp ecx, dword [eax + 4]
jl 0x44126c
cmp ecx, dword [eax + 0xc]
jge 0x44126c
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x28]
add eax, dword [esp + 0x20]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x28]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x34]
je 0x44140e
cmp byte [esp + 0x6c], 0
je 0x44129c
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax]
jl 0x4412dd
cmp ecx, dword [eax + 8]
jge 0x4412dd
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 4]
jl 0x4412e1
cmp ecx, dword [eax + 0xc]
jge 0x4412e1
mov edx, dword [esi]
mov eax, dword [edx + 0x10]
mov ecx, esi
call eax
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x24]
mov edx, dword [esi]
add eax, eax
add eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [edx + 4]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x34]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x18]
cmp byte [esp + 0x6c], 0
je 0x4412ff
mov edx, dword [esp + 0x20]
cmp edx, dword [eax]
jl 0x441340
cmp edx, dword [eax + 8]
jge 0x441340
cmp ecx, dword [eax + 4]
jl 0x441340
cmp ecx, dword [eax + 0xc]
jge 0x441340
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x18]
add eax, dword [esp + 0x20]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x34]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x50]
add ecx, dword [esp + 0x58]
cmp byte [esp + 0x6c], 0
mov dword [esp + 0x1c], ecx
je 0x44136a
mov edx, dword [esp + 0x2c]
cmp edx, dword [eax]
jl 0x4413af
cmp edx, dword [eax + 8]
jge 0x4413af
cmp ecx, dword [eax + 4]
jl 0x4413af
cmp ecx, dword [eax + 0xc]
jge 0x4413af
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x2c]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x34]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
add esp, 0x18
cmp byte [esp + 0x6c], 0
je 0x4413cd
mov edx, dword [esp + 0x30]
cmp edx, dword [eax]
jl 0x44140e
cmp edx, dword [eax + 8]
jge 0x44140e
cmp ecx, dword [eax + 4]
jl 0x44140e
cmp ecx, dword [eax + 0xc]
jge 0x44140e
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x30]
mov ecx, esi
add eax, eax
add eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
call edx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x60]
add eax, dword [esp + 0x34]
push ecx
push edx
push ebx
push ebp
push edi
push eax
call fcn.0042c8c0
add esp, 0x18
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
movsd xmm1, qword [esp + 0x40]
inc edx
mov ecx, edx
imul ecx, edx
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
subsd xmm1, xmm0
sqrtsd xmm0, xmm1
movapd xmm1, xmm0
addsd xmm1, qword [0x4c5b80]
cvttsd2si ecx, xmm1
mov dword [esp + 0x58], edx
mov dword [esp + 0x34], ecx
cmp edx, ecx
jle 0x440ab0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret