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

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
movss xmm0, dword [esp + 0x5c]
movsd xmm2, qword [0x4c5bf0]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4c5b80]
addsd xmm1, xmm0
cvttsd2si edx, xmm1
movss xmm1, dword [esp + 0x60]
movsd xmm5, qword [0x4c5bf8]
movd xmm4, dword [esp + 0x70]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
movss xmm0, dword [esp + 0x64]
cvttsd2si ecx, xmm1
movsd xmm1, qword [0x4c5be8]
mov eax, dword [esp + 0x6c]
cvttss2si ebp, 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 + 0x60], ebp
cvtpd2ps xmm1, xmm1
cvtdq2pd xmm4, xmm4
cvtss2sd xmm1, xmm1
subsd xmm0, xmm1
mulsd xmm0, xmm4
cvttsd2si ebp, xmm0
mov dword [esp + 0x30], ebp
mov ebp, dword [esp + 0x78]
push ebp
mov ebp, dword [esp + 0x34]
push ebp
mov ebp, dword [esp + 0x60]
mov esi, eax
mov edi, eax
mov ebx, eax
shr eax, 0x18
push eax
and ebx, 0xff
push ebx
shr edi, 8
and edi, 0xff
push edi
mov dword [esp + 0x70], ecx
sub ecx, dword [esp + 0x74]
shr esi, 0x10
and esi, 0xff
push esi
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x80]
push eax
mov dword [esp + 0x3c], ecx
dec ecx
push ecx
push edx
push ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], edx
movsd qword [esp + 0x6c], xmm4
call fcn.00438e90
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x84]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x98]
push ecx
push ebx
push edi
push esi
push edx
inc eax
push eax
mov eax, dword [esp + 0x64]
push eax
push ebp
call fcn.00438e90
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0xb0]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x68]
push ebx
push edi
push esi
push edx
mov dword [esp + 0x50], eax
push ecx
dec eax
push eax
push ebp
call fcn.00438e90
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x44]
add eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x90]
push ebx
push edi
push esi
push edx
mov dword [esp + 0x7c], eax
push ecx
inc eax
push eax
push ebp
call fcn.00438e90
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc0]
add esp, 0x50
cmp byte [esp + 0x74], 0
push edx
je 0x43c542
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
push edi
push esi
push edx
mov edx, dword [esp + 0x38]
dec eax
push eax
push ecx
push edx
push ebp
call fcn.004390a0
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
push eax
mov eax, dword [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x94]
push ebx
push edi
push esi
push eax
mov eax, dword [esp + 0x64]
push ecx
inc edx
push edx
push eax
push ebp
call fcn.004390a0
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x40]
push eax
mov eax, dword [esp + 0x40]
push ebx
push edi
push esi
push ecx
mov ecx, dword [esp + 0x78]
push edx
push eax
push ecx
push ebp
call fcn.00438f10
add esp, 0x2c
jmp 0x43c60a
sub eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
push eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x28]
push ebx
push edi
push esi
push ecx
push edx
push eax
push ebp
call fcn.00438e90
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x6c]
push ebx
push edi
push esi
push ecx
push edx
push eax
push ebp
call fcn.00438e90
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xbc]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x28]
push ebx
push edi
push esi
push ecx
push edx
push eax
push ebp
call fcn.00438e90
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x88]
mov eax, dword [esp + 0x94]
push ecx
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x68]
push ebx
push edi
push esi
push ecx
push edx
push eax
push ebp
call fcn.00438e90
add esp, 0x50
movss xmm0, dword [esp + 0x64]
cvtps2pd xmm0, xmm0
movapd xmm1, xmm0
mulsd xmm1, xmm0
movsd qword [esp + 0x4c], xmm1
subsd xmm1, qword [0x4c5bf8]
sqrtsd xmm0, xmm1
movapd xmm1, xmm0
addsd xmm1, qword [0x4c5b80]
cvttsd2si eax, xmm1
mov dword [esp + 0x40], eax
mov dword [esp + 0x64], 1
cmp eax, 1
jl 0x43d6d7
mov edi, dword [esp + 0x68]
jmp 0x43c660
movsd xmm1, qword [0x4c5be8]
movsd xmm2, qword [0x4c5bf0]
mov eax, dword [esp + 0x5c]
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
cvttsd2si ecx, xmm0
sub eax, ecx
movapd xmm1, xmm0
addsd xmm1, xmm2
subsd xmm1, xmm2
movapd xmm2, xmm1
subsd xmm2, xmm0
mov dword [esp + 0x20], eax
lea edx, [eax - 1]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x64]
cmpnlesd xmm2, xmm3
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x78]
andpd xmm2, xmm4
subsd xmm1, xmm2
subsd xmm0, xmm1
mulsd xmm0, qword [esp + 0x44]
cvttsd2si ebx, xmm0
mov dword [esp + 0x24], eax
test cl, cl
je 0x43c710
cmp eax, dword [edi]
jl 0x43c826
cmp eax, dword [edi + 8]
jge 0x43c826
cmp edx, dword [edi + 4]
jl 0x43c826
cmp edx, dword [edi + 0xc]
jge 0x43c826
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov edx, dword [ebp]
mov esi, eax
mov eax, dword [esp + 0x20]
dec eax
imul esi, eax
add esi, dword [esp + 0x24]
mov eax, dword [edx + 4]
add esi, esi
mov ecx, ebp
add esi, esi
call eax
lea ecx, [esi + eax]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 3]
sar eax, 8
add eax, edx
mov dword [esp + 0x38], eax
mov eax, ebx
imul eax, dword [esp + 0x10]
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ecx]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 1]
sar eax, 8
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, ebx
imul eax, dword [esp + 0x18]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 2]
sar eax, 8
add eax, edx
test esi, 0xffffff00
je 0x43c7bd
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43c7bf
mov edx, esi
mov esi, dword [esp + 0x3c]
mov byte [ecx], dl
test esi, 0xffffff00
je 0x43c7dd
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43c7df
mov edx, esi
mov byte [ecx + 1], dl
test eax, 0xffffff00
je 0x43c7f9
xor edx, edx
test eax, eax
sets dl
dec edx
and edx, 0xff
jmp 0x43c7fb
mov edx, eax
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x38]
test edx, 0xffffff00
je 0x43c819
xor eax, eax
test edx, edx
sets al
dec eax
and eax, 0xff
jmp 0x43c81b
mov eax, edx
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
lea esi, [esi + edx + 1]
mov dword [esp + 0x3c], esi
test cl, cl
je 0x43c85d
cmp eax, dword [edi]
jl 0x43c970
cmp eax, dword [edi + 8]
jge 0x43c970
cmp esi, dword [edi + 4]
jl 0x43c970
cmp esi, dword [edi + 0xc]
jge 0x43c970
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov esi, eax
imul esi, dword [esp + 0x3c]
add esi, dword [esp + 0x24]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
add esi, esi
mov ecx, ebp
add esi, esi
call edx
lea ecx, [esi + eax]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 3]
sar eax, 8
add eax, edx
mov dword [esp + 0x34], eax
mov eax, ebx
imul eax, dword [esp + 0x10]
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ecx]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 1]
sar eax, 8
add eax, edx
mov dword [esp + 0x38], eax
mov eax, ebx
imul eax, dword [esp + 0x18]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 2]
sar eax, 8
add eax, edx
test esi, 0xffffff00
je 0x43c907
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43c909
mov edx, esi
mov esi, dword [esp + 0x38]
mov byte [ecx], dl
test esi, 0xffffff00
je 0x43c927
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43c929
mov edx, esi
mov byte [ecx + 1], dl
test eax, 0xffffff00
je 0x43c943
xor edx, edx
test eax, eax
sets dl
dec edx
and edx, 0xff
jmp 0x43c945
mov edx, eax
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x34]
test edx, 0xffffff00
je 0x43c963
xor eax, eax
test edx, edx
sets al
dec eax
and eax, 0xff
jmp 0x43c965
mov eax, edx
mov esi, dword [esp + 0x3c]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
test cl, cl
je 0x43c9a8
cmp eax, dword [edi]
jl 0x43cac2
cmp eax, dword [edi + 8]
jge 0x43cac2
mov edx, dword [esp + 0x20]
dec edx
cmp edx, dword [edi + 4]
jl 0x43cac2
cmp edx, dword [edi + 0xc]
jge 0x43cac2
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov esi, eax
mov eax, dword [esp + 0x20]
dec eax
imul esi, eax
add esi, dword [esp + 0x28]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
add esi, esi
mov ecx, ebp
add esi, esi
call edx
lea ecx, [esi + eax]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 3]
sar eax, 8
add eax, edx
mov dword [esp + 0x34], eax
mov eax, ebx
imul eax, dword [esp + 0x10]
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ecx]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 1]
sar eax, 8
add eax, edx
mov dword [esp + 0x38], eax
mov eax, ebx
imul eax, dword [esp + 0x18]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 2]
sar eax, 8
add eax, edx
test esi, 0xffffff00
je 0x43ca55
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43ca57
mov edx, esi
mov esi, dword [esp + 0x38]
mov byte [ecx], dl
test esi, 0xffffff00
je 0x43ca75
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43ca77
mov edx, esi
mov byte [ecx + 1], dl
test eax, 0xffffff00
je 0x43ca91
xor edx, edx
test eax, eax
sets dl
dec edx
and edx, 0xff
jmp 0x43ca93
mov edx, eax
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x34]
test edx, 0xffffff00
je 0x43cab1
xor eax, eax
test edx, edx
sets al
dec eax
and eax, 0xff
jmp 0x43cab3
mov eax, edx
mov esi, dword [esp + 0x3c]
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x28]
test cl, cl
je 0x43cae9
cmp eax, dword [edi]
jl 0x43cbf8
cmp eax, dword [edi + 8]
jge 0x43cbf8
cmp esi, dword [edi + 4]
jl 0x43cbf8
cmp esi, dword [edi + 0xc]
jge 0x43cbf8
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov esi, eax
imul esi, dword [esp + 0x3c]
add esi, dword [esp + 0x28]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
add esi, esi
mov ecx, ebp
add esi, esi
call edx
lea ecx, [esi + eax]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 3]
sar eax, 8
add eax, edx
mov dword [esp + 0x38], eax
mov eax, ebx
imul eax, dword [esp + 0x10]
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ecx]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 1]
sar eax, 8
add eax, edx
mov dword [esp + 0x3c], eax
mov eax, ebx
imul eax, dword [esp + 0x18]
cdq
and edx, 0xff
add eax, edx
movzx edx, byte [ecx + 2]
sar eax, 8
add eax, edx
test esi, 0xffffff00
je 0x43cb93
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43cb95
mov edx, esi
mov esi, dword [esp + 0x3c]
mov byte [ecx], dl
test esi, 0xffffff00
je 0x43cbb3
xor edx, edx
test esi, esi
sets dl
dec edx
and edx, 0xff
jmp 0x43cbb5
mov edx, esi
mov byte [ecx + 1], dl
test eax, 0xffffff00
je 0x43cbcf
xor edx, edx
test eax, eax
sets dl
dec edx
and edx, 0xff
jmp 0x43cbd1
mov edx, eax
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x38]
test edx, 0xffffff00
je 0x43cbef
xor eax, eax
test edx, edx
sets al
dec eax
and eax, 0xff
jmp 0x43cbf1
mov eax, edx
mov byte [ecx + 3], al
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x40]
je 0x43cf75
mov edx, dword [esp + 0x5c]
sub edx, eax
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x60]
mov dword [esp + 0x2c], edx
dec eax
mov dword [esp + 0x38], eax
test cl, cl
je 0x43cc44
cmp eax, dword [edi]
jl 0x43cceb
cmp eax, dword [edi + 8]
jge 0x43cceb
cmp edx, dword [edi + 4]
jl 0x43cceb
cmp edx, dword [edi + 0xc]
jge 0x43cceb
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
imul eax, dword [esp + 0x2c]
add eax, dword [esp + 0x38]
mov edx, dword [ebp]
add eax, eax
lea edi, [eax + eax]
mov eax, dword [edx + 4]
mov ecx, ebp
call eax
add edi, eax
movzx ecx, byte [edi + 3]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [edi]
mov eax, ebx
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [edi + 1]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x40], edi
and edx, 0xff
lea edi, [edx + eax]
mov edx, dword [esp + 0x40]
movzx eax, byte [edx + 2]
sar edi, 8
add edi, eax
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x60]
lea esi, [esi + eax + 1]
mov dword [esp + 0x3c], esi
test cl, cl
je 0x43cd22
cmp esi, dword [edi]
jl 0x43cdc9
cmp esi, dword [edi + 8]
jge 0x43cdc9
cmp edx, dword [edi + 4]
jl 0x43cdc9
cmp edx, dword [edi + 0xc]
jge 0x43cdc9
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
imul eax, dword [esp + 0x2c]
add eax, dword [esp + 0x3c]
mov edx, dword [ebp]
add eax, eax
lea edi, [eax + eax]
mov eax, dword [edx + 4]
mov ecx, ebp
call eax
add edi, eax
movzx ecx, byte [edi + 3]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [edi]
mov eax, ebx
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [edi + 1]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x38], edi
and edx, 0xff
lea edi, [edx + eax]
mov edx, dword [esp + 0x38]
movzx eax, byte [edx + 2]
sar edi, 8
add edi, eax
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x40]
add esp, 4
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x64]
mov dword [esp + 0x2c], eax
test cl, cl
je 0x43ce00
mov edx, dword [esp + 0x38]
cmp edx, dword [edi]
jl 0x43ceab
cmp edx, dword [edi + 8]
jge 0x43ceab
cmp eax, dword [edi + 4]
jl 0x43ceab
cmp eax, dword [edi + 0xc]
jge 0x43ceab
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
imul eax, dword [esp + 0x2c]
add eax, dword [esp + 0x38]
mov edx, dword [ebp]
add eax, eax
lea edi, [eax + eax]
mov eax, dword [edx + 4]
mov ecx, ebp
call eax
add edi, eax
movzx ecx, byte [edi + 3]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [edi]
mov eax, ebx
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [edi + 1]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x3c], edi
and edx, 0xff
lea edi, [edx + eax]
mov edx, dword [esp + 0x3c]
movzx eax, byte [edx + 2]
sar edi, 8
add edi, eax
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
add esp, 4
test cl, cl
je 0x43ced2
cmp esi, dword [edi]
jl 0x43cf75
cmp esi, dword [edi + 8]
jge 0x43cf75
cmp eax, dword [edi + 4]
jl 0x43cf75
cmp eax, dword [edi + 0xc]
jge 0x43cf75
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
imul eax, dword [esp + 0x2c]
add eax, dword [esp + 0x3c]
mov edx, dword [ebp]
add eax, eax
lea edi, [eax + eax]
mov eax, dword [edx + 4]
mov ecx, ebp
call eax
add edi, eax
movzx ecx, byte [edi + 3]
mov eax, ebx
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, ebx
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [edi]
mov eax, ebx
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [edi + 1]
sar esi, 8
add esi, eax
mov eax, ebx
imul eax, dword [esp + 0x1c]
cdq
mov dword [esp + 0x40], edi
and edx, 0xff
lea edi, [edx + eax]
mov edx, dword [esp + 0x40]
movzx eax, byte [edx + 2]
sar edi, 8
add edi, eax
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0x7c]
add esp, 4
cmp byte [esp + 0x74], 0
je 0x43d173
mov edx, dword [esp + 0x6c]
mov esi, dword [esp + 0x5c]
mov ebx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov eax, esi
sub eax, dword [esp + 0x78]
push ebx
mov dword [esp + 0x44], eax
dec eax
push edi
push eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
push eax
push ecx
push ebp
call fcn.004390a0
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
add eax, esi
lea ecx, [esi + ecx + 1]
mov esi, dword [esp + 0xa4]
push esi
push edx
mov edx, dword [esp + 0xa0]
push edx
mov edx, dword [esp + 0x48]
push edx
mov edx, dword [esp + 0x50]
push edx
push ebx
push edi
push eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x70]
push ecx
push eax
push ebp
mov dword [esp + 0x88], ecx
call fcn.004390a0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0xb8]
add esp, 0x58
push esi
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x40]
push ebx
push edi
push ecx
push eax
push edx
push ebp
mov dword [esp + 0x60], eax
call fcn.00438f10
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x98]
add eax, dword [esp + 0x48]
push esi
push edx
mov edx, dword [esp + 0x44]
push ecx
mov dword [esp + 0x70], eax
push edx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
push ecx
push ebx
push edi
push eax
mov eax, dword [esp + 0x78]
push edx
push eax
push ebp
call fcn.00438f10
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xbc]
add eax, dword [esp + 0xb4]
add esp, 0x58
push esi
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x48]
push ebx
push edi
push ecx
push edx
push eax
push ebp
mov dword [esp + 0x58], eax
call fcn.00438f10
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x3c]
push esi
push eax
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x6c]
push ebx
push edi
push ecx
push edx
push eax
push ebp
call fcn.00438f10
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0x68]
add esp, 0x58
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x3c]
push ebx
push edi
push edx
push eax
push ecx
push ebp
call fcn.004390a0
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x3c]
push esi
push edx
mov edx, dword [esp + 0x48]
push eax
push ecx
push edx
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x68]
push ebx
push edi
push eax
push ecx
push edx
push ebp
call fcn.004390a0
add esp, 0x58
jmp 0x43d698
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x60]
sub esi, ebx
mov ebx, dword [esp + 0x5c]
sub ebx, dword [esp + 0x64]
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], eax
test cl, cl
je 0x43d1bc
cmp eax, dword [edi]
jl 0x43d263
cmp eax, dword [edi + 8]
jge 0x43d263
cmp ebx, dword [edi + 4]
jl 0x43d263
cmp ebx, dword [edi + 0xc]
jge 0x43d263
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
imul eax, ebx
add eax, dword [esp + 0x34]
mov ecx, ebp
add eax, eax
lea ebx, [eax + eax]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
call edx
mov edi, dword [esp + 0x30]
add ebx, eax
movzx ecx, byte [ebx + 3]
mov eax, edi
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, edi
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [ebx]
mov eax, edi
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ebx + 1]
sar esi, 8
add esi, eax
mov eax, edi
imul eax, dword [esp + 0x1c]
cdq
and edx, 0xff
lea edi, [edx + eax]
movzx edx, byte [ebx + 2]
sar edi, 8
add edi, edx
mov edx, ebx
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x60]
mov dword [esp + 0x38], eax
test cl, cl
je 0x43d296
cmp eax, dword [edi]
jl 0x43d339
cmp eax, dword [edi + 8]
jge 0x43d339
cmp ebx, dword [edi + 4]
jl 0x43d339
cmp ebx, dword [edi + 0xc]
jge 0x43d339
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
imul eax, ebx
add eax, dword [esp + 0x38]
mov ecx, ebp
add eax, eax
lea ebx, [eax + eax]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
call edx
mov edi, dword [esp + 0x30]
add ebx, eax
movzx ecx, byte [ebx + 3]
mov eax, edi
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, edi
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [ebx]
mov eax, edi
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ebx + 1]
sar esi, 8
add esi, eax
mov eax, edi
imul eax, dword [esp + 0x1c]
cdq
and edx, 0xff
lea edi, [edx + eax]
movzx edx, byte [ebx + 2]
sar edi, 8
add edi, edx
mov edx, ebx
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
add esp, 4
mov ebx, dword [esp + 0x60]
add ebx, dword [esp + 0x5c]
mov dword [esp + 0x3c], ebx
test cl, cl
je 0x43d370
mov eax, dword [esp + 0x24]
cmp eax, dword [edi]
jl 0x43d417
cmp eax, dword [edi + 8]
jge 0x43d417
cmp ebx, dword [edi + 4]
jl 0x43d417
cmp ebx, dword [edi + 0xc]
jge 0x43d417
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
imul eax, ebx
add eax, dword [esp + 0x24]
mov ecx, ebp
add eax, eax
lea ebx, [eax + eax]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
call edx
mov edi, dword [esp + 0x30]
add ebx, eax
movzx ecx, byte [ebx + 3]
mov eax, edi
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, edi
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [ebx]
mov eax, edi
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ebx + 1]
sar esi, 8
add esi, eax
mov eax, edi
imul eax, dword [esp + 0x1c]
cdq
and edx, 0xff
lea edi, [edx + eax]
movzx edx, byte [ebx + 2]
sar edi, 8
add edi, edx
mov edx, ebx
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x40]
add esp, 4
test cl, cl
je 0x43d442
mov eax, dword [esp + 0x28]
cmp eax, dword [edi]
jl 0x43d4e5
cmp eax, dword [edi + 8]
jge 0x43d4e5
cmp ebx, dword [edi + 4]
jl 0x43d4e5
cmp ebx, dword [edi + 0xc]
jge 0x43d4e5
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
imul eax, ebx
add eax, dword [esp + 0x28]
mov ecx, ebp
add eax, eax
lea ebx, [eax + eax]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
call edx
mov edi, dword [esp + 0x30]
add ebx, eax
movzx ecx, byte [ebx + 3]
mov eax, edi
imul eax, dword [esp + 0x6c]
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add eax, ecx
push eax
mov eax, edi
imul eax, dword [esp + 0x14]
cdq
and edx, 0xff
lea ecx, [edx + eax]
movzx edx, byte [ebx]
mov eax, edi
imul eax, dword [esp + 0x18]
sar ecx, 8
add ecx, edx
cdq
and edx, 0xff
lea esi, [edx + eax]
movzx eax, byte [ebx + 1]
sar esi, 8
add esi, eax
mov eax, edi
imul eax, dword [esp + 0x1c]
cdq
and edx, 0xff
lea edi, [edx + eax]
movzx edx, byte [ebx + 2]
sar edi, 8
add edi, edx
mov edx, ebx
call fcn.004384b0
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x7c]
add esp, 4
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x40]
je 0x43d698
test cl, cl
je 0x43d512
mov eax, dword [esp + 0x24]
cmp eax, dword [edi]
jl 0x43d55c
cmp eax, dword [edi + 8]
jge 0x43d55c
mov eax, dword [esp + 0x20]
cmp eax, dword [edi + 4]
jl 0x43d55c
cmp eax, dword [edi + 0xc]
jge 0x43d55c
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov edx, dword [ebp]
mov ebx, eax
imul ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x24]
mov eax, dword [edx + 4]
add ebx, ebx
mov ecx, ebp
add ebx, ebx
call eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push ecx
add eax, ebx
push edx
push eax
call fcn.0042c530
mov ecx, dword [esp + 0x90]
add esp, 0x18
test cl, cl
je 0x43d57b
mov eax, dword [esp + 0x28]
cmp eax, dword [edi]
jl 0x43d5c5
cmp eax, dword [edi + 8]
jge 0x43d5c5
mov eax, dword [esp + 0x20]
cmp eax, dword [edi + 4]
jl 0x43d5c5
cmp eax, dword [edi + 0xc]
jge 0x43d5c5
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov ebx, eax
imul ebx, dword [esp + 0x20]
add ebx, dword [esp + 0x28]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
add ebx, ebx
mov ecx, ebp
add ebx, ebx
call edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push ecx
add eax, ebx
push edx
push eax
call fcn.0042c530
mov ecx, dword [esp + 0x90]
add esp, 0x18
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
test cl, cl
je 0x43d5ec
mov edx, dword [esp + 0x34]
cmp edx, dword [edi]
jl 0x43d63a
cmp edx, dword [edi + 8]
jge 0x43d63a
cmp eax, dword [edi + 4]
jl 0x43d63a
cmp eax, dword [edi + 0xc]
jge 0x43d63a
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov ebx, eax
imul ebx, dword [esp + 0x2c]
add ebx, dword [esp + 0x34]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
add ebx, ebx
mov ecx, ebp
add ebx, ebx
call edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push ecx
add eax, ebx
push edx
push eax
call fcn.0042c530
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x44]
add esp, 0x18
test cl, cl
je 0x43d655
mov ecx, dword [esp + 0x38]
cmp ecx, dword [edi]
jl 0x43d698
cmp ecx, dword [edi + 8]
jge 0x43d698
cmp eax, dword [edi + 4]
jl 0x43d698
cmp eax, dword [edi + 0xc]
jge 0x43d698
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov ebx, eax
imul ebx, dword [esp + 0x2c]
add ebx, dword [esp + 0x38]
mov eax, dword [ebp]
mov edx, dword [eax + 4]
add ebx, ebx
mov ecx, ebp
add ebx, ebx
call edx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
push esi
push ecx
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x24]
push ecx
add eax, ebx
push edx
push eax
call fcn.0042c530
add esp, 0x18
mov ecx, dword [esp + 0x64]
movsd xmm1, qword [esp + 0x4c]
inc ecx
mov eax, ecx
imul eax, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
subsd xmm1, xmm0
sqrtsd xmm0, xmm1
movapd xmm1, xmm0
addsd xmm1, qword [0x4c5b80]
cvttsd2si eax, xmm1
mov dword [esp + 0x64], ecx
mov dword [esp + 0x40], eax
cmp ecx, eax
jle 0x43c660
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret