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

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
push edi
movss xmm0, dword [esp + 0x58]
movsd xmm2, qword [0x4c5bf0]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x4c5b80]
addsd xmm1, xmm0
cvttsd2si ecx, xmm1
movss xmm1, dword [esp + 0x5c]
movsd xmm5, qword [0x4c5bf8]
movd xmm4, dword [esp + 0x6c]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
movss xmm0, dword [esp + 0x60]
cvttsd2si eax, xmm1
movsd xmm1, qword [0x4c5be8]
cvttss2si edx, xmm0
cvtps2pd xmm0, xmm0
andpd xmm1, xmm0
movapd xmm3, xmm1
movapd xmm1, xmm0
xorpd xmm1, xmm3
cmpltsd xmm1, xmm2
andpd xmm2, xmm1
mov ebx, dword [esp + 0x68]
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 + 0x10], edx
cvtpd2ps xmm1, xmm1
cvtdq2pd xmm4, xmm4
cvtss2sd xmm1, xmm1
subsd xmm0, xmm1
mulsd xmm0, xmm4
cvttsd2si edx, xmm0
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
mov esi, ebx
mov edi, ebx
mov ebp, ebx
shr ebx, 0x18
push ebx
shr edi, 8
and ebp, 0xff
push ebp
mov dword [esp + 0x6c], eax
sub eax, dword [esp + 0x20]
shr esi, 0x10
and edi, 0xff
push edi
and esi, 0xff
push esi
mov dword [esp + 0x50], eax
push edx
dec eax
push eax
mov eax, dword [esp + 0x74]
push ecx
push eax
mov dword [esp + 0x80], ecx
movsd qword [esp + 0x68], xmm4
call fcn.004396b0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
add eax, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
push ecx
mov dword [esp + 0x4c], eax
push edx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
push ebx
push ebp
push edi
push esi
push ecx
inc eax
push eax
mov eax, dword [esp + 0x9c]
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xa8]
sub eax, dword [esp + 0x60]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x64]
push ebx
push ebp
push edi
push esi
push ecx
mov dword [esp + 0x50], eax
push edx
dec eax
push eax
mov eax, dword [esp + 0x78]
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x8c]
push ebx
push ebp
push edi
push esi
push ecx
mov dword [esp + 0x68], eax
push edx
inc eax
push eax
mov eax, dword [esp + 0xa0]
push eax
call fcn.004396b0
mov ecx, dword [esp + 0xc4]
add esp, 0x50
cmp byte [esp + 0x70], 0
push ecx
je 0x43f935
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x40]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x74]
dec ecx
push ecx
mov ecx, dword [esp + 0x74]
push edx
push eax
push ecx
call fcn.00439880
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x90]
push ebx
push ebp
push edi
push esi
push ecx
mov ecx, dword [esp + 0xa0]
push edx
mov edx, dword [esp + 0xa0]
inc eax
push eax
push ecx
push edx
call fcn.00439880
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xbc]
add esp, 0x58
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x3c]
push ebx
push ebp
push edi
push esi
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x74]
push ecx
push edx
push eax
call fcn.00439780
add esp, 0x2c
jmp 0x43fa04
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x5c]
push eax
push ebx
push ebp
push edi
push esi
push edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x54]
push eax
push ecx
push edx
call fcn.004396b0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x54]
push ebx
push ebp
push edi
push esi
push edx
mov edx, dword [esp + 0x98]
push eax
push ecx
push edx
call fcn.004396b0
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb4]
add esp, 0x50
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x60]
push ebx
push ebp
push edi
push esi
push edx
mov edx, dword [esp + 0x70]
push eax
push ecx
push edx
call fcn.004396b0
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
push eax
mov eax, dword [esp + 0x88]
push ecx
mov ecx, dword [esp + 0x64]
push ebx
push ebp
push edi
push esi
push edx
mov edx, dword [esp + 0x98]
push eax
push ecx
push edx
call fcn.004396b0
add esp, 0x50
movss xmm0, dword [esp + 0x60]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
movsd qword [esp + 0x48], xmm0
subsd xmm0, qword [0x4c5bf8]
sqrtsd xmm0, xmm0
movapd xmm1, xmm0
addsd xmm1, qword [0x4c5b80]
cvttsd2si eax, xmm1
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], 1
cmp eax, 1
jl 0x4400c6
mov edx, dword [esp + 0x5c]
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
mov dword [esp + 0x60], ecx
mov ecx, edx
sub ecx, eax
sub eax, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
jmp 0x43fa74
mov edx, dword [esp + 0x5c]
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
cvttsd2si eax, xmm0
movapd xmm1, xmm0
addsd xmm1, xmm2
subsd xmm1, xmm2
mov dword [esp + 0x10], eax
neg eax
movapd xmm2, xmm1
subsd xmm2, xmm0
mov dword [esp + 0x24], eax
add eax, edx
mov edx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x64]
cmpnlesd xmm2, xmm3
andpd xmm2, xmm4
subsd xmm1, xmm2
subsd xmm0, xmm1
mulsd xmm0, qword [esp + 0x44]
cvttsd2si ecx, xmm0
push ecx
push ebx
push ebp
push edi
push esi
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
push ecx
dec eax
push eax
mov eax, dword [esp + 0x74]
push edx
push eax
call fcn.004396b0
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x84]
push ebx
push ebp
push edi
inc eax
add eax, dword [esp + 0x4c]
push esi
push edx
push eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xa8]
push eax
push ecx
call fcn.004396b0
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0x8c]
add ecx, dword [esp + 0x64]
add esp, 0x50
push edx
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x30]
push ebx
push ebp
push edi
push esi
push edx
dec eax
mov dword [esp + 0x38], ecx
push eax
mov eax, dword [esp + 0x74]
push ecx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x4c]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x98]
push ecx
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x88]
add esp, 0x50
cmp dword [esp + 0x2c], ecx
je 0x43fcbe
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0x30]
lea ecx, [ecx + edx - 1]
mov edx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x6c]
push ebx
push ebp
push edi
push esi
push edx
push eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
push ecx
push eax
mov dword [esp + 0x5c], ecx
call fcn.004396b0
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x80]
lea eax, [ecx + edx + 1]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x48]
push ebx
push ebp
push edi
push esi
push ecx
push edx
push eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0xa0]
push eax
call fcn.004396b0
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x3c]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x50]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x98]
push ecx
push edx
push eax
call fcn.004396b0
add esp, 0x50
cmp byte [esp + 0x70], 0
je 0x43feb6
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x6c]
push ebx
push ebp
push edi
add ecx, eax
push esi
push edx
mov edx, dword [esp + 0x70]
mov dword [esp + 0x34], ecx
dec ecx
push ecx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x48]
push ecx
push eax
push edx
call fcn.00439880
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x9c]
push edx
mov edx, dword [esp + 0x98]
push ebx
push ebp
push edi
push esi
push edx
push eax
inc ecx
push ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xb0]
push eax
push ecx
call fcn.00439880
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb0]
add eax, dword [esp + 0x7c]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push ebx
push ebp
push edi
push esi
push ecx
mov ecx, dword [esp + 0x70]
push edx
push eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x3c]
push eax
push ecx
call fcn.00439780
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x94]
push edx
push ebx
push ebp
push edi
push esi
push ecx
mov dword [esp + 0x6c], eax
push eax
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xa0]
push edx
push eax
push ecx
call fcn.00439780
mov edx, dword [esp + 0xcc]
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xbc]
add esp, 0x58
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x3c]
push ebx
push ebp
push edi
push esi
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x74]
push eax
push ecx
push edx
call fcn.00439780
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x90]
push eax
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x50]
push ebx
push ebp
push edi
push esi
push edx
mov edx, dword [esp + 0x5c]
push eax
mov eax, dword [esp + 0xa0]
push ecx
push edx
push eax
call fcn.00439780
mov ecx, dword [esp + 0xcc]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xbc]
add esp, 0x58
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [esp + 0x30]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x74]
push edx
push eax
push ecx
call fcn.00439880
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x48]
push ebx
push ebp
push edi
push esi
push ecx
push edx
inc eax
push eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0xa4]
push eax
push ecx
call fcn.00439880
add esp, 0x58
jmp 0x440079
mov edx, dword [esp + 0x30]
add edx, dword [esp + 0x60]
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x24]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ebx
push ebp
push edi
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
push esi
push eax
mov eax, dword [esp + 0x70]
push edx
push ecx
push eax
mov dword [esp + 0x5c], ecx
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x48]
push ebx
push ebp
push edi
push esi
push ecx
push edx
push eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa0]
push eax
call fcn.004396b0
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0x60]
add eax, dword [esp + 0xac]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push ebx
push ebp
push edi
push esi
push ecx
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x74]
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x98]
push ecx
push edx
push eax
call fcn.004396b0
add esp, 0x50
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x38]
je 0x44007d
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x68]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x4c]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x98]
push ecx
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
add esp, 0x50
push ecx
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [esp + 0x3c]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
call fcn.004396b0
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x54]
push ebx
push ebp
push edi
push esi
push eax
mov eax, dword [esp + 0x98]
push ecx
push edx
push eax
call fcn.004396b0
add esp, 0x50
mov eax, dword [esp + 0x2c]
movsd xmm1, qword [esp + 0x48]
mov ecx, 1
sub dword [esp + 0x60], ecx
add dword [esp + 0x14], ecx
add eax, ecx
mov ecx, eax
imul ecx, eax
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 + 0x2c], eax
mov dword [esp + 0x38], ecx
cmp eax, ecx
jle 0x43fa70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret