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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], eax
push ebx
lea edx, [eax + 0xd68]
push esi
push edi
test eax, eax
je 0x43d4f0
mov eax, dword [ecx + 4]
dec eax
cmp eax, 0xfe
ja 0x43d4f0
movsd xmm1, qword [edx + 0x68]
movsd xmm0, qword [0x4fde40]
comisd xmm1, xmm0
mov eax, dword [edx + 0x40]
mov dword [ebp - 0x2c], eax
ja 0x43c286
movsd xmm0, qword [0x4fde48]
comisd xmm0, xmm1
jbe 0x43c28b
movsd qword [edx + 0x68], xmm0
movsd xmm1, qword [edx + 0x78]
xorps xmm0, xmm0
comisd xmm1, xmm0
ja 0x43c2a7
movsd xmm0, qword [0x4fde58]
comisd xmm0, xmm1
jbe 0x43c2ac
movsd qword [edx + 0x78], xmm0
mov ebx, dword [edx + 4]
mov dword [ebp - 8], ebx
test ebx, ebx
je 0x43d4f0
mov dword [edx], 1
cvttsd2si edx, qword [edx + 8]
mov eax, dword [ebx + 0x20]
mov esi, dword [ecx + 0x1c]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + edx*4]
mov edx, dword [ebp - 4]
mov dword [esi + 4], ecx
xor ecx, ecx
mov dword [esi], eax
mov dword [ebp - 0x34], ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx]
mov dword [ebp - 0x10], eax
cmp dword [ebx + 0x94], ecx
jle 0x43c47c
nop dword [eax + eax]
cvttsd2si esi, qword [edx + 0xd70]
mov eax, dword [ebx + 0x98]
mov edx, 0x460
mov edi, dword [ebx + 0x90]
mov eax, dword [eax + ecx*4]
mov ecx, 1
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x8c]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], esi
call fcn.0042f2c0
mov edx, eax
mov ecx, 0x118
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x28], edx
mov ebx, dword [eax + 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], ebx
imul esi, dword [eax + esi*4], 0x460
add esi, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [edx]
or ecx, 0xffffffff
or edx, ecx
test edi, edi
jle 0x43c41b
mov esi, dword [ebp - 0x28]
add esi, 4
nop dword [eax]
mov eax, dword [esi]
lea esi, [esi + 4]
cmp eax, ecx
cmovle eax, ecx
mov ecx, eax
sub edi, 1
jne 0x43c370
test ecx, ecx
js 0x43c418
mov eax, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x30], ecx
lea edi, [eax + 0x140]
lea esi, [eax + 0xc0]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
mov ecx, dword [esi + 0x40]
cmp ecx, edx
mov eax, ecx
cmovle eax, edx
mov edx, eax
mov eax, dword [ebx + 0x18]
add eax, ecx
xor ebx, ebx
mov ecx, dword [esi]
mov dword [esi + 0x40], eax
mov eax, 1
shl eax, cl
test eax, eax
jle 0x43c403
mov esi, dword [ebp - 0x20]
mov edi, edx
nop word [eax + eax]
mov ecx, dword [esi]
cmp ecx, edi
mov edx, ecx
cmovle edx, edi
test ecx, ecx
js 0x43c3e7
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x18]
add eax, ecx
mov dword [esi], eax
mov ecx, dword [ebp - 0x1c]
mov eax, 1
inc ebx
add esi, 4
mov edi, edx
mov ecx, dword [ecx]
shl eax, cl
cmp ebx, eax
jl 0x43c3d0
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x24]
add esi, 4
add edi, 0x20
mov dword [ebp - 0x1c], esi
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x20], edi
jne 0x43c3a2
mov eax, dword [ebp - 0x18]
xor esi, esi
test edx, edx
js 0x43c445
mov edi, dword [ebp - 0x38]
mov eax, dword [eax + edi*4]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx + eax*4]
mov ecx, dword [ebx + 0x18]
mov eax, dword [eax + esi*4]
inc esi
mov dword [ebx + ecx*4 + 0x720], eax
inc dword [ebx + 0x18]
mov eax, dword [ebp - 0x18]
cmp esi, edx
jle 0x43c424
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 4]
mov dword [ebx + eax*4 + 0x320], 1
mov eax, dword [ebx + 0x10]
mov dword [ebx + eax*4 + 0x420], ecx
inc dword [ebx + 0x10]
mov ecx, dword [ebp - 0x34]
mov ebx, dword [ebp - 8]
inc ecx
mov dword [ebp - 0x34], ecx
cmp ecx, dword [ebx + 0x94]
jl 0x43c300
movsd xmm1, qword [edx + 0xde8]
mov eax, dword [ebp - 8]
mov ebx, dword [ebx + 0x84]
movsd xmm2, qword [0x4fdb50]
cvttsd2si edx, xmm1
mov ecx, dword [eax + 0x80]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x3c], ecx
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x38], eax
lea edi, [eax + 0xb34]
cvttsd2si eax, qword [ebx + edx*8]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
imul esi, eax, 0x214
subsd xmm1, xmm0
movaps xmm0, xmm2
add esi, ecx
mov ecx, 0x85
subsd xmm0, xmm1
movaps xmm3, xmm1
rep movsd dword es:[edi], dword [esi]
mulsd xmm0, qword [ebx + edx*8]
mulsd xmm3, qword [ebx + edx*8 + 8]
addsd xmm3, xmm0
cvttsd2si ecx, xmm3
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
subsd xmm3, xmm0
ucomisd xmm3, qword [0x4fd4e8]
lahf
test ah, 0x44
jp 0x43c510
test ecx, ecx
jle 0x43c510
dec ecx
movaps xmm3, xmm2
imul eax, ecx, 0x214
subsd xmm2, xmm3
mov ecx, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x38]
lea edx, [esi + 0xb34]
movss xmm1, dword [eax + ecx + 0x218]
movss xmm0, dword [eax + ecx + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 4], xmm0
movss xmm1, dword [eax + ecx + 0x248]
movss xmm0, dword [eax + ecx + 0x34]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x34], xmm0
movss xmm1, dword [eax + ecx + 0x21c]
movss xmm0, dword [eax + ecx + 8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 8], xmm0
movss xmm1, dword [eax + ecx + 0x24c]
movss xmm0, dword [eax + ecx + 0x38]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x38], xmm0
movss xmm1, dword [eax + ecx + 0x220]
movss xmm0, dword [eax + ecx + 0xc]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0xc], xmm0
movss xmm1, dword [eax + ecx + 0x250]
movss xmm0, dword [eax + ecx + 0x3c]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x3c], xmm0
movss xmm1, dword [eax + ecx + 0x224]
movss xmm0, dword [eax + ecx + 0x10]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x10], xmm0
movss xmm1, dword [eax + ecx + 0x254]
movss xmm0, dword [eax + ecx + 0x40]
cvtps2pd xmm0, xmm0
mov eax, dword [ebp - 8]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x40], xmm0
movsd xmm0, qword [esi + 0xde0]
cvtpd2ps xmm0, xmm0
movss dword [edx + 0x6c], xmm0
mov esi, dword [ebp - 4]
push dword [eax + 0x88]
mov ebx, dword [ebp - 0xc]
mov ecx, ebx
lea edx, [esi + 0xd68]
call fcn.0043b540
mov edx, dword [ebp - 8]
add esp, 4
cvttsd2si ecx, qword [esi + 0xd70]
mov edi, dword [ebx + 0x1c]
mov dword [ebp - 0x3c], edi
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x24], eax
cmp dword [edi + 0x1c], 0
mov eax, dword [edx + 0x68]
mov dword [ebp - 0x28], eax
mov eax, dword [edx + 0x60]
mov dword [ebp - 0x30], eax
mov eax, dword [edi + 0xb24]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], ecx
jg 0x43c6e2
mov dword [edi + 0x1c], 1
test eax, eax
jne 0x43c6ff
mov edx, 0x2b0
lea ecx, [eax + 1]
call fcn.0042f2c0
mov edx, dword [ebp - 8]
mov dword [ebp - 0x34], eax
mov dword [edi + 0xb24], eax
mov ecx, 0xac
mov esi, 0x4ef9c8
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], 0
cmp dword [ecx + 0xdac], 0
je 0x43c757
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
mov dword [eax + 0x298], 1
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x29c], eax
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x2a0], eax
mov eax, dword [ebp - 0x24]
movsd xmm0, qword [eax + esi*8]
movsd qword [ecx + 0x2a8], xmm0
mov esi, dword [ebx + 0x1c]
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 0x68]
cmp dword [esi + 0x1c], 1
mov ecx, dword [esi + 0xb28]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x30], eax
mov eax, dword [edx + 0x60]
mov dword [ebp - 0x34], eax
cvttsd2si eax, qword [ecx + 0xd70]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], eax
jg 0x43c793
mov dword [esi + 0x1c], 2
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x43c7b3
mov edx, 0x2b0
lea ecx, [eax + 1]
call fcn.0042f2c0
mov edx, dword [ebp - 8]
mov dword [ebp - 0x28], eax
mov dword [esi + 0xb28], eax
mov ecx, 0xac
mov esi, 0x4ef9c8
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], 0
cmp dword [ecx + 0xdac], 0
je 0x43c80b
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x298], 1
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x29c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x2a0], eax
mov eax, dword [ebp - 0x24]
movsd xmm0, qword [eax + esi*8]
movsd qword [ecx + 0x2a8], xmm0
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x43c975
mov esi, dword [ebx + 0x1c]
mov eax, dword [edx + 0x70]
mov dword [ebp - 0x24], eax
mov eax, dword [edx + 0x6c]
cmp dword [esi + 0x1c], 2
mov ecx, dword [esi + 0xb2c]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x30], eax
mov eax, dword [edx + 0x64]
mov dword [ebp - 0x34], eax
cvttsd2si eax, qword [ecx + 0xd70]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], eax
jg 0x43c853
mov dword [esi + 0x1c], 3
mov eax, dword [ebp - 0x28]
test eax, eax
jne 0x43c873
mov edx, 0x2b0
lea ecx, [eax + 1]
call fcn.0042f2c0
mov edx, dword [ebp - 8]
mov dword [ebp - 0x28], eax
mov dword [esi + 0xb2c], eax
mov ecx, 0xac
mov esi, 0x4ef9c8
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], 1
cmp dword [ecx + 0xdac], 0
je 0x43c8cb
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x298], 1
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x29c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + esi*4]
mov dword [ecx + 0x2a0], eax
mov eax, dword [ebp - 0x24]
movsd xmm0, qword [eax + esi*8]
movsd qword [ecx + 0x2a8], xmm0
mov eax, dword [edx + 0x70]
mov ecx, dword [ebp - 4]
mov esi, dword [ebx + 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [edx + 0x6c]
mov dword [ebp - 0x30], eax
cmp dword [esi + 0x1c], 3
mov eax, dword [edx + 0x64]
mov ebx, dword [esi + 0xb30]
mov dword [ebp - 0x34], eax
cvttsd2si eax, qword [ecx + 0xd70]
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], eax
jg 0x43c904
mov dword [esi + 0x1c], 4
test ebx, ebx
jne 0x43c920
mov edx, 0x2b0
lea ecx, [ebx + 1]
call fcn.0042f2c0
mov edx, dword [ebp - 8]
mov ebx, eax
mov dword [esi + 0xb30], ebx
mov eax, dword [ebp - 0x3c]
mov ecx, 0xac
mov esi, 0x4ef9c8
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov dword [ebx], 1
cmp dword [eax + 0xdac], 0
je 0x43c975
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov dword [ebx + 0x298], 1
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0x29c], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4]
mov dword [ebx + 0x2a0], eax
mov eax, dword [ebp - 0x28]
movsd xmm0, qword [eax + ecx*8]
movsd qword [ebx + 0x2a8], xmm0
cmp dword [ebp - 0x2c], 0
xorps xmm0, xmm0
mov esi, dword [edx + 0x28]
mov ecx, 0xb0
mov ebx, dword [edx + 0x30]
mov eax, 0x90
cmove eax, ecx
movsd xmm6, qword [0x4fdb50]
mov ecx, dword [ebp - 4]
xorps xmm1, xmm1
movaps xmm3, xmm6
movsd xmm2, qword [eax + ecx + 0xd68]
mov ecx, dword [edx + 0x24]
mov eax, dword [ebp - 0xc]
cvttsd2si edi, xmm2
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0xb24]
cvtsi2sd xmm0, edi
lea eax, [edi + edi*4]
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x14]
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ecx + eax*4]
mulsd xmm1, xmm2
subsd xmm3, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0xc], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x18]
cvtsi2sd xmm0, dword [ecx + eax*4 + 4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x10], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x1c]
cvtsi2sd xmm0, dword [ecx + eax*4 + 8]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x14], xmm0
movss xmm1, dword [ecx + eax*4 + 0x20]
movss xmm0, dword [ecx + eax*4 + 0xc]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x18], xmm0
movss xmm1, dword [ecx + eax*4 + 0x24]
movss xmm0, dword [ecx + eax*4 + 0x10]
mov eax, edi
cvtps2pd xmm1, xmm1
shl eax, 4
mov ecx, 0x11
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x1c], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [esi + edi*4 + 4]
cvtsi2sd xmm0, dword [esi + edi*4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x294], xmm0
add edx, 0x24
add eax, edi
lea eax, [ebx + eax*4]
nop word [eax + eax]
movd xmm1, dword [eax + 0x44]
movd xmm0, dword [eax]
add eax, 4
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
add edx, 4
sub ecx, 1
jne 0x43cad0
mov ecx, dword [ebp - 4]
xorps xmm0, xmm0
mov eax, dword [ebp - 8]
xorps xmm1, xmm1
movaps xmm3, xmm6
movsd xmm2, qword [ecx + 0xe18]
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
mov ebx, dword [eax + 0x38]
mov eax, dword [ebp - 0xc]
cvttsd2si edi, xmm2
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0xb28]
cvtsi2sd xmm0, edi
lea eax, [edi + edi*4]
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x14]
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ecx + eax*4]
mulsd xmm1, xmm2
subsd xmm3, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0xc], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x18]
cvtsi2sd xmm0, dword [ecx + eax*4 + 4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x10], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x1c]
cvtsi2sd xmm0, dword [ecx + eax*4 + 8]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x14], xmm0
movss xmm1, dword [ecx + eax*4 + 0x20]
movss xmm0, dword [ecx + eax*4 + 0xc]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x18], xmm0
movss xmm1, dword [ecx + eax*4 + 0x24]
movss xmm0, dword [ecx + eax*4 + 0x10]
mov eax, edi
cvtps2pd xmm1, xmm1
shl eax, 4
mov ecx, 0x11
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x1c], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [esi + edi*4 + 4]
cvtsi2sd xmm0, dword [esi + edi*4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x294], xmm0
add edx, 0x24
add eax, edi
lea eax, [ebx + eax*4]
nop dword [eax]
movd xmm1, dword [eax + 0x44]
movd xmm0, dword [eax]
add eax, 4
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
add edx, 4
sub ecx, 1
jne 0x43cc40
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x43cf60
mov ecx, dword [ebp - 4]
xorps xmm0, xmm0
mov eax, dword [ebp - 8]
xorps xmm1, xmm1
movaps xmm3, xmm6
movsd xmm2, qword [ecx + 0xe38]
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
mov ebx, dword [eax + 0x38]
mov eax, dword [ebp - 0xc]
cvttsd2si edi, xmm2
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0xb2c]
cvtsi2sd xmm0, edi
lea eax, [edi + edi*4]
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x14]
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ecx + eax*4]
mulsd xmm1, xmm2
subsd xmm3, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0xc], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 4]
cvtsi2sd xmm0, dword [ecx + eax*4 + 0x18]
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x10], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 8]
cvtsi2sd xmm0, dword [ecx + eax*4 + 0x1c]
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x14], xmm0
movss xmm1, dword [ecx + eax*4 + 0xc]
movss xmm0, dword [ecx + eax*4 + 0x20]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x18], xmm0
movss xmm1, dword [ecx + eax*4 + 0x10]
movss xmm0, dword [ecx + eax*4 + 0x24]
mov eax, edi
cvtps2pd xmm1, xmm1
shl eax, 4
mov ecx, 0x11
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm3
mulsd xmm0, xmm2
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x1c], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [esi + edi*4 + 4]
cvtsi2sd xmm0, dword [esi + edi*4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x294], xmm0
add edx, 0x24
add eax, edi
lea eax, [ebx + eax*4]
nop word [eax + eax]
movd xmm1, dword [eax + 0x44]
movd xmm0, dword [eax]
add eax, 4
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
add edx, 4
sub ecx, 1
jne 0x43cdc0
mov ecx, dword [ebp - 4]
xorps xmm0, xmm0
mov eax, dword [ebp - 8]
xorps xmm1, xmm1
movaps xmm3, xmm6
movsd xmm2, qword [ecx + 0xe58]
mov ecx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
mov ebx, dword [eax + 0x34]
mov eax, dword [ebp - 0xc]
cvttsd2si edi, xmm2
mov eax, dword [eax + 0x1c]
mov edx, dword [eax + 0xb30]
cvtsi2sd xmm0, edi
lea eax, [edi + edi*4]
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x14]
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ecx + eax*4]
mulsd xmm1, xmm2
subsd xmm3, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0xc], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x18]
cvtsi2sd xmm0, dword [ecx + eax*4 + 4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x10], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [ecx + eax*4 + 0x1c]
cvtsi2sd xmm0, dword [ecx + eax*4 + 8]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x14], xmm0
movss xmm1, dword [ecx + eax*4 + 0x20]
movss xmm0, dword [ecx + eax*4 + 0xc]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x18], xmm0
movss xmm1, dword [ecx + eax*4 + 0x24]
movss xmm0, dword [ecx + eax*4 + 0x10]
mov eax, edi
cvtps2pd xmm1, xmm1
shl eax, 4
mov ecx, 0x11
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
xorps xmm1, xmm1
movss dword [edx + 0x1c], xmm0
xorps xmm0, xmm0
cvtsi2sd xmm1, dword [esi + edi*4 + 4]
cvtsi2sd xmm0, dword [esi + edi*4]
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx + 0x294], xmm0
add edx, 0x24
add eax, edi
lea eax, [ebx + eax*4]
nop dword [eax]
movd xmm1, dword [eax + 0x44]
movd xmm0, dword [eax]
add eax, 4
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
mulsd xmm0, xmm3
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edx], xmm0
add edx, 4
sub ecx, 1
jne 0x43cf30
cmp dword [ebp - 0x2c], 0
mov ecx, 0xc8
mov edi, dword [ebp - 4]
mov eax, 0xa8
mov ebx, dword [ebp - 8]
cmove eax, ecx
mov esi, dword [ebp - 0xc]
sub esp, 8
add edi, 0xd68
xor edx, edx
mov ecx, esi
movsd xmm0, qword [eax + edi]
movsd qword [esp], xmm0
push dword [ebx]
push dword [ebx + 0x58]
push dword [ebx + 0x54]
call fcn.0043b880
movsd xmm0, qword [edi + 0xc8]
add esp, 0xc
mov edx, 1
mov ecx, esi
movsd qword [esp], xmm0
push dword [ebx]
push dword [ebx + 0x58]
push dword [ebx + 0x54]
call fcn.0043b880
mov eax, dword [ebp - 0x10]
add esp, 0x14
cmp eax, dword [ebp - 0x14]
je 0x43d018
movsd xmm0, qword [edi + 0xe8]
sub esp, 8
mov edx, 2
mov ecx, esi
movsd qword [esp], xmm0
push dword [ebx]
push dword [ebx + 0x5c]
push dword [ebx + 0x54]
call fcn.0043b880
movsd xmm0, qword [edi + 0x108]
add esp, 0xc
mov edx, 3
mov ecx, esi
movsd qword [esp], xmm0
push dword [ebx]
push dword [ebx + 0x5c]
push dword [ebx + 0x54]
call fcn.0043b880
add esp, 0x14
mov edx, dword [ebp - 0x2c]
mov ecx, 0xb8
test edx, edx
mov eax, 0x98
movaps xmm1, xmm6
cmove eax, ecx
mov ecx, dword [ebx + 0x2c]
movsd xmm3, qword [eax + edi]
cvttsd2si eax, xmm3
movd xmm2, dword [ecx + eax*4 + 4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm2, xmm2
subsd xmm3, xmm0
movd xmm0, dword [ecx + eax*4]
mov eax, dword [esi + 0x1c]
cvtdq2pd xmm0, xmm0
mov eax, dword [eax + 0xb24]
subsd xmm1, xmm3
mulsd xmm2, xmm3
mulsd xmm1, xmm0
addsd xmm2, xmm1
movaps xmm1, xmm6
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x20], xmm0
movsd xmm3, qword [edi + 0xb8]
mov ecx, dword [ebx + 0x2c]
cvttsd2si eax, xmm3
movd xmm2, dword [ecx + eax*4 + 4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm2, xmm2
subsd xmm3, xmm0
movd xmm0, dword [ecx + eax*4]
mov eax, dword [esi + 0x1c]
cvtdq2pd xmm0, xmm0
mov eax, dword [eax + 0xb28]
subsd xmm1, xmm3
mulsd xmm2, xmm3
mulsd xmm1, xmm0
addsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x20], xmm0
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x14]
je 0x43d179
movsd xmm3, qword [edi + 0xd8]
xorps xmm0, xmm0
mov ecx, dword [ebx + 0x2c]
xorps xmm2, xmm2
cvttsd2si eax, xmm3
movaps xmm1, xmm6
cvtsi2sd xmm2, dword [ecx + eax*4 + 4]
cvtsi2sd xmm0, eax
subsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ecx + eax*4]
mov eax, dword [esi + 0x1c]
subsd xmm1, xmm3
mulsd xmm2, xmm3
mov eax, dword [eax + 0xb2c]
mulsd xmm1, xmm0
addsd xmm2, xmm1
movaps xmm1, xmm6
cvtpd2ps xmm0, xmm2
xorps xmm2, xmm2
movss dword [eax + 0x20], xmm0
xorps xmm0, xmm0
movsd xmm3, qword [edi + 0xf8]
mov ecx, dword [ebx + 0x2c]
cvttsd2si eax, xmm3
cvtsi2sd xmm2, dword [ecx + eax*4 + 4]
cvtsi2sd xmm0, eax
subsd xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ecx + eax*4]
mov eax, dword [esi + 0x1c]
subsd xmm1, xmm3
mulsd xmm2, xmm3
mov eax, dword [eax + 0xb30]
mulsd xmm1, xmm0
addsd xmm2, xmm1
cvtpd2ps xmm0, xmm2
movss dword [eax + 0x20], xmm0
xorps xmm4, xmm4
test edx, edx
je 0x43d187
movsd xmm0, qword [edi + 0x10]
jmp 0x43d18a
xorps xmm0, xmm0
sub esp, 0x10
mov ecx, 0xc0
test edx, edx
mov eax, 0xa0
cmove eax, ecx
xor edx, edx
movsd qword [esp + 8], xmm0
mov ecx, esi
movsd xmm0, qword [eax + edi]
movsd qword [esp], xmm0
push dword [ebx + 0x3c]
push dword [ebx + 0x40]
push dword [ebx + 0x50]
call fcn.0043ba30
movsd xmm0, qword [edi + 0xc0]
add esp, 0xc
mov edx, 1
mov ecx, esi
movsd qword [esp + 8], xmm4
movsd qword [esp], xmm0
push dword [ebx + 0x3c]
push dword [ebx + 0x44]
push dword [ebx + 0x50]
call fcn.0043ba30
mov eax, dword [ebp - 0x10]
add esp, 0x1c
cmp eax, dword [ebp - 0x14]
je 0x43d24d
movsd xmm0, qword [edi + 0xe0]
sub esp, 0x10
mov edx, 2
mov ecx, esi
movsd qword [esp + 8], xmm4
movsd qword [esp], xmm0
push dword [ebx + 0x3c]
push dword [ebx + 0x48]
push dword [ebx + 0x50]
call fcn.0043ba30
movsd xmm0, qword [edi + 0x100]
add esp, 0xc
mov edx, 3
mov ecx, esi
movsd qword [esp + 8], xmm4
movsd qword [esp], xmm0
push dword [ebx + 0x3c]
push dword [ebx + 0x4c]
push dword [ebx + 0x50]
call fcn.0043ba30
add esp, 0x1c
mov eax, dword [esi + 0x1c]
movsd xmm0, qword [eax + 0xdd0]
mov ecx, dword [eax + 0xb24]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
movsd xmm0, qword [eax + 0xdd8]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 8], xmm0
mov eax, dword [esi + 0x1c]
movsd xmm0, qword [eax + 0xdd0]
mov ecx, dword [eax + 0xb28]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
movsd xmm0, qword [eax + 0xdd8]
mov eax, dword [ebp - 0x10]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 8], xmm0
cmp eax, dword [ebp - 0x14]
je 0x43d301
mov eax, dword [esi + 0x1c]
movsd xmm0, qword [eax + 0xdd0]
mov ecx, dword [eax + 0xb2c]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
movsd xmm0, qword [eax + 0xdd8]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 8], xmm0
mov eax, dword [esi + 0x1c]
movsd xmm0, qword [eax + 0xdd0]
mov ecx, dword [eax + 0xb30]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
movsd xmm0, qword [eax + 0xdd8]
cvtpd2ps xmm0, xmm0
movss dword [ecx + 8], xmm0
mov edx, dword [ebp - 4]
mov ecx, dword [ebx + 0x9c]
mov edi, dword [esi + 0x1c]
mov dword [ebp - 0x3c], edi
cvttsd2si eax, qword [edx + 0xd70]
mov dword [ebp - 0x2c], 0x4f7e58
mov esi, dword [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 4]
xor ecx, ecx
mov dword [ebp - 0x38], eax
mov eax, dword [edi]
cmp eax, dword [edi + 4]
mov dword [ebp - 0x18], esi
setne cl
xor ebx, ebx
inc ecx
add edi, 0x220
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], edi
nop word [eax + eax]
mov edx, 0xc88
mov ecx, 1
call fcn.0042f2c0
mov edx, 0x10
mov dword [edi], eax
lea ecx, [edx - 0xf]
call fcn.0042f2c0
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x3c]
mov dword [edi - 0x200], eax
movups xmm0, xmmword [ecx]
movups xmmword [eax], xmm0
lea eax, [ebx + 1]
cmp ebx, dword [edx + 8]
jl 0x43d38b
mov dword [edx + 8], eax
mov dword [edi - 0x100], 0
mov ecx, 0x322
mov edi, dword [edi]
rep movsd dword es:[edi], dword [esi]
cmp ebx, dword [edx + 0xc]
jl 0x43d3a6
mov dword [edx + 0xc], eax
mov esi, dword [ebp - 0x18]
xor edi, edi
cmp dword [esi], edi
jle 0x43d3d9
add esi, 0x444
mov edx, dword [esi]
mov eax, edx
mov ecx, dword [ebp - 0xc]
shl eax, 5
add eax, dword [ebp - 0x38]
push eax
push ebx
call fcn.0043bb60
mov eax, dword [ebp - 0x18]
lea esi, [esi + 4]
inc edi
add esp, 8
cmp edi, dword [eax]
jl 0x43d3b5
mov esi, eax
mov edi, dword [ebp - 0x34]
inc ebx
add dword [ebp - 0x2c], 0x10
add edi, 4
add esi, 0xc88
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x18], esi
cmp ebx, dword [ebp - 0x30]
jl 0x43d350
mov ebx, dword [ebp - 4]
mov eax, dword [ebx + 0xd8c]
lea edx, [ebx + 0xd68]
mov ecx, dword [ebp - 0xc]
test eax, eax
jg 0x43d46d
mov eax, dword [ecx + 0x1c]
movsd xmm2, qword [eax + 0xd70]
mov eax, dword [eax + 0xd6c]
cvttsd2si esi, xmm2
mov eax, dword [eax + 4]
movd xmm0, esi
cvtdq2pd xmm0, xmm0
subsd xmm2, xmm0
test eax, eax
jne 0x43d441
movsd xmm1, qword [0x4fddf0]
jmp 0x43d469
movsd xmm1, qword [0x4fdb50]
movd xmm0, dword [ecx + 4]
subsd xmm1, xmm2
mulsd xmm2, qword [eax + esi*8 + 8]
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [eax + esi*8]
addsd xmm1, xmm2
mulsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x20]
mov dword [ecx + 0x14], eax
mov eax, dword [edx + 0x30]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x24]
test eax, eax
je 0x43d49e
movd xmm1, dword [edx + 0x34]
movd xmm0, eax
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
cvttsd2si eax, xmm1
jmp 0x43d4a0
xor eax, eax
mov dword [ecx + 0x18], eax
cmp dword [edx + 0x1c], 0
je 0x43d4e7
mov eax, dword [edx + 0x24]
mov dword [ebx + 0xd48], eax
mov eax, dword [edx + 0x20]
mov dword [ebx + 0xd4c], eax
mov eax, dword [edx + 0x30]
mov dword [ebx + 0xd50], eax
mov eax, dword [edx + 0x34]
mov dword [ebx + 0xd54], eax
movsd xmm0, qword [edx + 0x38]
movsd qword [ebx + 0xd58], xmm0
movsd xmm0, qword [edx + 0x28]
movsd qword [ebx + 0xd60], xmm0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffff7d
pop ebx
mov esp, ebp
pop ebp
ret