Function at 0x43e120
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.00439240
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.00439240
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.00439240
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.00439240
mov edx, dword [esp + 0xbc]
mov eax, dword [esp + 0xb4]
add esp, 0x50
cmp byte [esp + 0x68], 0
push edx
je 0x43e3a4
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.004394b0
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.004394b0
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.004392c0
add esp, 0x2c
jmp 0x43e466
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.00439240
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.00439240
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.00439240
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.00439240
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 0x43ee5d
mov eax, dword [esp + 0x5c]
jmp 0x43e4c0
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 0x43e563
cmp ecx, dword [eax]
jl 0x43e5a7
cmp ecx, dword [eax + 8]
jge 0x43e5a7
cmp edx, dword [eax + 4]
jl 0x43e5a7
cmp edx, dword [eax + 0xc]
jge 0x43e5a7
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.0042c650
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 0x43e5d5
mov edx, dword [esp + 0x24]
cmp edx, dword [eax]
jl 0x43e616
cmp edx, dword [eax + 8]
jge 0x43e616
cmp ecx, dword [eax + 4]
jl 0x43e616
cmp ecx, dword [eax + 0xc]
jge 0x43e616
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.0042c650
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 0x43e642
cmp ecx, dword [eax]
jl 0x43e691
cmp ecx, dword [eax + 8]
jge 0x43e691
mov ecx, dword [esp + 0x18]
dec ecx
cmp ecx, dword [eax + 4]
jl 0x43e68d
cmp ecx, dword [eax + 0xc]
jge 0x43e68d
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.0042c650
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x20]
test dl, dl
je 0x43e6ac
cmp ecx, dword [eax]
jl 0x43e6f4
cmp ecx, dword [eax + 8]
jge 0x43e6f4
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 4]
jl 0x43e6f4
cmp ecx, dword [eax + 0xc]
jge 0x43e6f4
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.0042c650
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x34]
je 0x43e8c4
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 0x43e736
cmp ecx, dword [eax]
jl 0x43e777
cmp ecx, dword [eax + 8]
jge 0x43e777
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x43e777
cmp ecx, dword [eax + 0xc]
jge 0x43e777
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.0042c650
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 0x43e7a5
cmp ecx, dword [eax]
jl 0x43e7e6
cmp ecx, dword [eax + 8]
jge 0x43e7e6
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x43e7e6
cmp ecx, dword [eax + 0xc]
jge 0x43e7e6
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.0042c650
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 0x43e815
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax]
jl 0x43e85d
cmp ecx, dword [eax + 8]
jge 0x43e85d
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x43e85d
cmp ecx, dword [eax + 0xc]
jge 0x43e85d
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.0042c650
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
test dl, dl
je 0x43e87c
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [eax]
jl 0x43e8c4
cmp ecx, dword [eax + 8]
jge 0x43e8c4
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x43e8c4
cmp ecx, dword [eax + 0xc]
jge 0x43e8c4
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.0042c650
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
add esp, 0x18
cmp byte [esp + 0x68], 0
mov ecx, dword [esp + 0x64]
je 0x43eac7
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.004394b0
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.004394b0
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.004392c0
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.004392c0
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.004392c0
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.004392c0
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.004394b0
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.004394b0
add esp, 0x58
jmp 0x43ee1a
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 0x43eb02
cmp ecx, dword [eax]
jl 0x43eb43
cmp ecx, dword [eax + 8]
jge 0x43eb43
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x43eb43
cmp ecx, dword [eax + 0xc]
jge 0x43eb43
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.0042c650
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 0x43eb6d
cmp ecx, dword [eax]
jl 0x43ebae
cmp ecx, dword [eax + 8]
jge 0x43ebae
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 4]
jl 0x43ebae
cmp ecx, dword [eax + 0xc]
jge 0x43ebae
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.0042c650
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 0x43ebd8
mov edx, dword [esp + 0x24]
cmp edx, dword [eax]
jl 0x43ec1d
cmp edx, dword [eax + 8]
jge 0x43ec1d
cmp ecx, dword [eax + 4]
jl 0x43ec1d
cmp ecx, dword [eax + 0xc]
jge 0x43ec1d
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.0042c650
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x74]
add esp, 0x18
cmp byte [esp + 0x6c], 0
je 0x43ec3b
mov edx, dword [esp + 0x20]
cmp edx, dword [eax]
jl 0x43ec7c
cmp edx, dword [eax + 8]
jge 0x43ec7c
cmp ecx, dword [eax + 4]
jl 0x43ec7c
cmp ecx, dword [eax + 0xc]
jge 0x43ec7c
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.0042c650
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x58]
cmp ecx, dword [esp + 0x34]
je 0x43ee1e
cmp byte [esp + 0x6c], 0
je 0x43ecac
mov ecx, dword [esp + 0x24]
cmp ecx, dword [eax]
jl 0x43eced
cmp ecx, dword [eax + 8]
jge 0x43eced
mov ecx, dword [esp + 0x18]
cmp ecx, dword [eax + 4]
jl 0x43ecf1
cmp ecx, dword [eax + 0xc]
jge 0x43ecf1
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.0042c650
mov eax, dword [esp + 0x74]
add esp, 0x18
mov ecx, dword [esp + 0x18]
cmp byte [esp + 0x6c], 0
je 0x43ed0f
mov edx, dword [esp + 0x20]
cmp edx, dword [eax]
jl 0x43ed50
cmp edx, dword [eax + 8]
jge 0x43ed50
cmp ecx, dword [eax + 4]
jl 0x43ed50
cmp ecx, dword [eax + 0xc]
jge 0x43ed50
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.0042c650
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 0x43ed7a
mov edx, dword [esp + 0x2c]
cmp edx, dword [eax]
jl 0x43edbf
cmp edx, dword [eax + 8]
jge 0x43edbf
cmp ecx, dword [eax + 4]
jl 0x43edbf
cmp ecx, dword [eax + 0xc]
jge 0x43edbf
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.0042c650
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x34]
add esp, 0x18
cmp byte [esp + 0x6c], 0
je 0x43eddd
mov edx, dword [esp + 0x30]
cmp edx, dword [eax]
jl 0x43ee1e
cmp edx, dword [eax + 8]
jge 0x43ee1e
cmp ecx, dword [eax + 4]
jl 0x43ee1e
cmp ecx, dword [eax + 0xc]
jge 0x43ee1e
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.0042c650
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 0x43e4c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret