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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x198
mov eax, dword [0x4d706c]
xor eax, esp
mov dword [esp + 0x194], eax
push esi
mov esi, ecx
xor eax, eax
push edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x5c], eax
cmp dword [esi + 0x58], eax
jge 0x4190ca
test byte [esi + 4], 2
jne 0x4190bb
push 0x1b
push 0xd9
jmp 0x4190bf
push 2
push 2
push ecx
call fcn.00418f24
mov dword [esi + 0x58], eax
xor eax, eax
xorps xmm0, xmm0
mov dword [esi + 8], eax
mov ecx, esi
mov dword [esi + 0x20], eax
mov dword [esi + 0x1c], eax
movss dword [esp + 0x58], xmm0
movups xmmword [esi + 0x24], xmm0
call fcn.00418aee
mov edi, dword [esi + 0x4c]
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edi
push 8
pop edx
test edi, edi
jle 0x41911d
cmp edi, edx
mov ecx, edi
cmovl ecx, edx
test ecx, ecx
jle 0x41911d
imul ecx, ecx, 0xc4
call fcn.00405b96
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov edx, dword [esi + 0x34]
mov dword [esp + 0x40], edx
test edx, edx
jle 0x419143
cmp edx, 8
mov ecx, edx
push 8
pop edx
cmovl ecx, edx
test ecx, ecx
jle 0x419143
imul ecx, ecx, 0x18
call fcn.00405b96
mov dword [esp + 0x3c], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
imul eax, edi, 0xc4
xor edi, edi
push eax
push edi
push dword [esp + 0x34]
call fcn.00434480
imul eax, dword [esp + 0x4c], 0x18
push eax
push edi
mov edi, dword [esp + 0x50]
push edi
call fcn.00434480
xor ecx, ecx
add esp, 0x18
mov dword [esp + 0x10], ecx
cmp dword [esi + 0x4c], ecx
jle 0x4192a2
mov edx, dword [esp + 0x2c]
add edx, 0xa4
mov dword [esp + 0x18], ecx
mov dword [esp + 0x28], edx
mov eax, dword [esi + 0x54]
add eax, dword [esp + 0x18]
or dword [edx - 4], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x34], ecx
jle 0x419e5b
or ecx, 0xffffffff
cmp ecx, 0xffffffff
jne 0x4191ed
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + 0x3c]
mov eax, dword [eax + 0x74]
cmp eax, dword [ecx + edi*4]
mov eax, edi
jne 0x4191cf
mov dword [edx - 4], eax
mov ecx, eax
jmp 0x4191d2
mov ecx, dword [edx - 4]
mov edi, dword [esp + 0x3c]
inc eax
cmp eax, dword [esi + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
jl 0x4191b2
cmp ecx, 0xffffffff
je 0x419e5b
mov edx, dword [eax + 0xc]
mov ecx, dword [eax]
call fcn.00411d93
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x28]
add ecx, 0xffffff5c
push eax
mov edx, dword [edx]
mov dword [esp + 0x28], ecx
call fcn.00411f19
pop ecx
test eax, eax
je 0x419e5b
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x28]
imul eax, dword [eax + 0xa0], 0x18
add eax, edi
cmp dword [ecx + 0x30], 0
mov dword [esp + 0xc], eax
mov eax, 0x4cc418
cmovne eax, dword [ecx + 0x30]
xor ecx, ecx
mov dword [edx - 8], eax
jmp 0x41925e
movzx eax, word [eax + 2]
test ax, ax
je 0x419267
cmp dword [edx], eax
cmovge eax, dword [edx]
mov dword [edx], eax
mov eax, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x20], eax
cmp word [eax], cx
jne 0x419247
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
inc dword [eax]
mov eax, dword [edx]
cmp dword [esi + 4], eax
cmovge eax, dword [esi + 4]
add edx, 0xc4
add dword [esp + 0x18], 0x78
mov dword [esi + 4], eax
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edx
cmp eax, dword [esi + 0x4c]
jl 0x419193
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], ecx
test eax, eax
jle 0x4194b0
mov esi, dword [esp + 0x2c]
add esi, 0xa8
mov dword [esp + 0x10], eax
mov dword [esp + 8], esi
xor edi, edi
imul eax, dword [esi - 8], 0x18
lea ecx, [esi + 4]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
mov eax, dword [eax - 4]
add eax, 0x20
sar eax, 5
push eax
call fcn.00410c7c
mov eax, dword [esi + 4]
mov esi, dword [esp + 8]
shl eax, 2
push eax
push edi
push dword [esi + 0xc]
call fcn.00434480
mov edx, dword [esp + 0x20]
add esp, 0xc
lea ecx, [edx + 0xc]
mov dword [esp + 0x24], ecx
cmp dword [ecx], edi
jne 0x419337
mov eax, dword [edx + 4]
add eax, 0x20
sar eax, 5
push eax
call fcn.00410c7c
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
shl eax, 2
push eax
push edi
push dword [ecx + 8]
call fcn.00434480
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [esi - 0xc]
jmp 0x4193ce
movzx eax, word [eax + 2]
test ax, ax
je 0x4193de
movzx ecx, cx
jmp 0x4193bf
mov eax, ecx
and ecx, 0x1f
sar eax, 5
mov dword [esp + 0x20], eax
xor eax, eax
inc eax
shl eax, cl
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [edx + 0x14]
mov esi, dword [esp + 0xc]
test dword [eax + ecx*4], esi
mov esi, dword [esp + 8]
jne 0x4193b2
mov edx, dword [esp + 0x28]
lea ecx, [esi - 0xa8]
call fcn.00412348
mov edx, dword [esp + 0x14]
test eax, eax
je 0x4193b2
inc dword [esi]
inc dword [edx + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0xc]
or dword [eax + ecx*4], esi
mov eax, dword [edx + 0x14]
or dword [eax + ecx*4], esi
inc dword [esp + 0x18]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
inc ecx
movzx eax, word [eax + 2]
mov dword [esp + 0x28], ecx
cmp ecx, eax
jbe 0x419351
mov eax, dword [esp + 0x1c]
add eax, 4
movzx ecx, word [eax]
mov dword [esp + 0x1c], eax
test cx, cx
jne 0x41933f
add esi, 0xc4
sub dword [esp + 0x10], 1
mov dword [esp + 8], esi
jne 0x4192c6
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
add esi, 0xb8
mov dword [esp + 0x10], eax
push dword [esi - 0x10]
mov ecx, esi
call fcn.00410bf8
mov edi, dword [esi - 4]
mov eax, dword [esi - 0xc]
mov dword [esp + 0x20], edi
lea eax, [edi + eax*4]
mov dword [esp + 0x44], eax
cmp edi, eax
jae 0x41947a
xor edx, edx
mov dword [esp + 0xc], edx
mov eax, dword [edi]
mov dword [esp + 0x24], eax
test eax, eax
je 0x419466
xor edi, edi
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
test dword [esp + 0x24], eax
je 0x41945c
and edx, 0xffffffe0
lea eax, [esp + 0x48]
add edx, edi
mov ecx, esi
push eax
mov dword [esp + 0x4c], edx
call fcn.00410cc7
mov edx, dword [esp + 0xc]
inc edi
cmp edi, 0x20
jl 0x419436
mov edi, dword [esp + 0x20]
add edi, 4
add edx, 0x20
mov dword [esp + 0x20], edi
mov dword [esp + 0xc], edx
cmp edi, dword [esp + 0x44]
jb 0x41942a
mov ecx, dword [esi - 4]
test ecx, ecx
je 0x419495
xor eax, eax
mov dword [esi - 8], eax
mov dword [esi - 0xc], eax
call fcn.00405bad
xor ecx, ecx
mov dword [esi - 4], ecx
jmp 0x419497
xor ecx, ecx
add esi, 0xc4
sub dword [esp + 0x10], 1
jne 0x419405
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x4194e5
lea esi, [edi + 0x14]
cmp dword [esi], 0
je 0x4194d5
mov dword [esi - 4], ecx
mov dword [esi - 8], ecx
mov ecx, dword [esi]
call fcn.00405bad
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esi], ecx
add esi, 0x18
sub eax, 1
mov dword [esp + 0x40], eax
jne 0x4194bb
mov esi, dword [esp + 0x34]
test edi, edi
je 0x4194f0
mov ecx, edi
call fcn.00405bad
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x60]
xor eax, eax
cmp dword [esp + 0x50], eax
push edi
cmove eax, dword [esp + 0x50]
mov dword [esp + 0x40], eax
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x44], eax
call fcn.0041b4a1
test edi, edi
jle 0x41953d
push 8
pop ecx
cmp edi, ecx
mov eax, edi
cmovl eax, ecx
test eax, eax
jle 0x41953d
imul ecx, eax, 0x1c
call fcn.00405b96
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x60]
xor edi, edi
shl eax, 4
push eax
mov eax, dword [esp + 0x6c]
push edi
push eax
mov dword [esp + 0x34], eax
call fcn.00434480
imul eax, dword [esp + 0x24], 0x1c
push eax
push edi
push dword [esp + 0x54]
call fcn.00434480
mov edi, dword [esp + 0x50]
xor edx, edx
add esp, 0x18
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], edx
mov ecx, edx
mov dword [esp + 0xc], ecx
test edi, edi
jle 0x419773
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
add edi, 0x98
mov dword [esp + 0x10], eax
mov eax, edx
mov dword [esp + 0x18], edx
cmp dword [edi + 0x10], 0
je 0x41974d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
shl eax, 4
add eax, dword [esp + 0x28]
mov dword [edi - 4], eax
imul eax, dword [esp + 0x14], 0x1c
add ecx, eax
mov eax, dword [esp + 0x1c]
add eax, dword [edi + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
add eax, dword [edi + 0x10]
mov dword [esp + 0x14], eax
mov dword [edi], ecx
mov eax, dword [esi + 0x54]
add eax, dword [esp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [eax + 0x10]
mov dword [edi - 0x1c], eax
mov eax, dword [edi + 0x28]
mov dword [edi - 0xc], ecx
mov ecx, dword [esp + 8]
mov dword [edi - 0x14], eax
mov eax, dword [edi + 0x20]
mov dword [edi - 0x18], edx
mov dword [edi - 0x10], eax
mov al, byte [ecx + 0x14]
mov byte [edi - 8], al
mov al, byte [ecx + 0x18]
mov byte [edi - 7], al
movss xmm1, dword [ecx + 0x10]
comiss xmm1, dword [esp + 0x58]
jbe 0x41962b
lea ecx, [edi - 0x98]
call fcn.00413edb
movaps xmm1, xmm0
jmp 0x419658
mov edx, dword [edi - 0x94]
mov eax, dword [edi - 0x84]
movzx ecx, byte [edx + eax + 0x12]
movzx eax, byte [edx + eax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
xorps xmm1, xmmword [0x4cf050]
mov eax, dword [esi + 0x10]
xor edx, edx
mov dword [esp + 0x20], eax
mov eax, edx
movss dword [esp + 0x24], xmm1
mov dword [esp + 0x44], eax
cmp dword [edi + 0x20], eax
jle 0x419745
mov dword [esp + 0x48], edx
mov edx, dword [edi + 0x28]
lea esi, [edi - 0x98]
mov ecx, esi
mov edx, dword [edx + eax*4]
call fcn.00412348
lea ecx, [esp + 0x30]
mov edx, eax
push ecx
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x58]
push ecx
push ecx
push ecx
mov ecx, dword [esp + 0x20]
and dword [esp + 4], 0
and dword [esp], 0
movd xmm3, dword [ecx + 0x18]
movd xmm2, dword [ecx + 0x14]
mov ecx, esi
cvtdq2ps xmm3, xmm3
cvtdq2ps xmm2, xmm2
mulss xmm3, xmm1
mulss xmm2, xmm1
call fcn.00413f10
mov ecx, dword [esp + 0x38]
add esp, 0x18
sub ecx, dword [esp + 0x4c]
add ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
dec cx
mov edx, dword [esp + 8]
mov eax, dword [edi - 4]
movss xmm1, dword [esp + 0x24]
add cx, word [edx + 0x14]
mov word [eax + esi + 4], cx
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x54]
add ecx, dword [esp + 0x30]
mov eax, dword [edi - 4]
dec cx
add cx, word [edx + 0x18]
mov word [eax + esi + 6], cx
mov eax, dword [edi - 4]
movzx ecx, word [eax + esi + 6]
movzx eax, word [eax + esi + 4]
add esi, 0x10
imul ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x48], esi
add dword [esp + 0xc], ecx
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [edi + 0x20]
jl 0x41967a
xor edx, edx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
add eax, 0x78
add edi, 0xc4
mov dword [esp + 0x18], eax
sub ecx, 1
mov dword [esp + 0x10], ecx
jne 0x4195a1
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x20], edx
test eax, eax
jg 0x4197d4
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
call fcn.00456b00
cvtsd2ss xmm0, xmm0
mov ecx, 0x400
cvttss2si eax, xmm0
inc eax
movd xmm0, eax
mov eax, 0x200
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x4ce864]
cmovae eax, ecx
mov ecx, 0x800
comiss xmm0, dword [0x4ce870]
cmovae eax, ecx
mov ecx, 0x1000
comiss xmm0, dword [0x4ce874]
cmovae eax, ecx
xor edx, edx
push 0x2c
mov dword [esi + 0x1c], eax
lea eax, [esp + 0x70]
push edx
push eax
call fcn.00434480
pop ecx
pop ecx
push dword [esi + 0x10]
push ecx
push ecx
push dword [esi + 0x1c]
lea ecx, [esp + 0x80]
call fcn.00415881
mov edx, dword [esp + 0x84]
add esp, 0x14
mov ecx, esi
call fcn.00419e8d
test edi, edi
jle 0x419897
mov eax, dword [esp + 0x2c]
add eax, 0xa8
mov dword [esp + 0x30], eax
mov eax, edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0xc], eax
cmp dword [edi], 0
je 0x419888
push dword [edi]
mov edx, dword [edi - 0x14]
mov ecx, dword [esp + 0x74]
call fcn.0041180e
xor eax, eax
pop ecx
mov ecx, eax
mov dword [esp + 0x24], ecx
cmp dword [edi], eax
jle 0x419884
mov edx, eax
mov esi, dword [edi - 0x14]
cmp dword [edx + esi + 0xc], eax
mov esi, dword [esp + 0x34]
je 0x419878
mov eax, dword [edi - 0x14]
movzx ecx, word [edx + eax + 0xa]
movzx eax, word [edx + eax + 6]
add ecx, eax
cmp dword [esi + 0x20], ecx
cmovge ecx, dword [esi + 0x20]
xor eax, eax
mov dword [esi + 0x20], ecx
mov ecx, dword [esp + 0x24]
inc ecx
add edx, 0x10
mov dword [esp + 0x24], ecx
cmp ecx, dword [edi]
jl 0x41984c
mov eax, dword [esp + 0xc]
add edi, 0xc4
sub eax, 1
mov dword [esp + 0xc], eax
jne 0x41982a
test byte [esi + 4], 1
mov eax, dword [esi + 0x20]
jne 0x4198c5
lea ecx, [eax - 1]
mov eax, ecx
sar eax, 1
or ecx, eax
mov eax, ecx
sar eax, 2
or ecx, eax
mov eax, ecx
sar eax, 4
or ecx, eax
mov eax, ecx
sar eax, 8
or ecx, eax
mov eax, ecx
sar eax, 0x10
or eax, ecx
movd xmm0, dword [esi + 0x1c]
lea ecx, [eax + 1]
movss xmm1, dword [0x4ce7bc]
cvtdq2ps xmm0, xmm0
mov dword [esi + 0x20], ecx
movaps xmm2, xmm1
divss xmm2, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
imul ecx, dword [esi + 0x1c]
divss xmm1, xmm0
movss dword [esi + 0x24], xmm2
movss dword [esi + 0x28], xmm1
call fcn.00405b96
mov ecx, eax
xor edi, edi
mov eax, dword [esi + 0x20]
imul eax, dword [esi + 0x1c]
mov dword [esi + 0x14], ecx
push eax
push edi
push ecx
call fcn.00434480
mov eax, dword [esi + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x38]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x78], eax
test edi, edi
jle 0x419ac4
mov edx, dword [esp + 0x2c]
xor ecx, ecx
mov eax, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edi
mov edi, dword [esi + 0x54]
add edi, eax
cmp dword [edx + 0xa8], ecx
je 0x419aa4
push dword [edx + 0x94]
lea eax, [edx + 0x7c]
push ecx
push eax
lea ecx, [esp + 0x78]
call fcn.00415da9
movss xmm1, dword [edi + 0x44]
add esp, 0xc
ucomiss xmm1, dword [0x4ce7bc]
movss dword [esp + 0x30], xmm1
lahf
test ah, 0x44
jnp 0x419a94
xor edi, edi
mov esi, 0xff
movd xmm0, edi
mov eax, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4cee80]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.00455360
movss xmm1, dword [esp + 0x30]
cmp eax, esi
movzx ecx, al
cmova ecx, esi
mov byte [esp + edi + 0x98], cl
inc edi
cmp edi, 0x100
jb 0x419995
mov edx, dword [esp + 8]
xor ecx, ecx
mov esi, dword [esp + 0x34]
mov edi, ecx
mov dword [esp + 0x10], edi
mov eax, dword [edx + 0x94]
cmp dword [edx + 0xa8], ecx
jle 0x419a9a
add eax, 4
mov dword [esp + 0x1c], eax
cmp dword [eax + 8], ecx
je 0x419a7a
mov edx, dword [esi + 0x1c]
movzx edi, word [eax + 6]
mov dword [esp + 0x24], edx
imul edi, dword [esp + 0x24]
movzx edx, word [eax]
movzx eax, word [eax + 4]
mov dword [esp + 0x30], edx
add edi, eax
mov eax, dword [esp + 0x1c]
add edi, dword [esi + 0x14]
movzx edx, word [eax + 2]
mov dword [esp + 0xc], edx
test edx, edx
mov edx, dword [esp + 8]
je 0x419a76
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov esi, ecx
test edx, edx
je 0x419a5d
movzx eax, byte [esi + edi]
mov al, byte [esp + eax + 0x98]
mov byte [esi + edi], al
inc esi
cmp esi, edx
jl 0x419a46
mov eax, dword [esp + 0xc]
add edi, dword [esp + 0x24]
dec eax
mov dword [esp + 0xc], eax
test eax, eax
jg 0x419a40
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
inc edi
add eax, 0x10
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
cmp edi, dword [edx + 0xa8]
jl 0x4199ff
jmp 0x419a9a
mov edx, dword [esp + 8]
xor ecx, ecx
mov eax, dword [esp + 0x48]
mov dword [edx + 0x94], ecx
add eax, 0x78
add edx, 0xc4
sub dword [esp + 0x44], 1
mov dword [esp + 0x48], eax
mov dword [esp + 8], edx
jne 0x41994a
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x94]
call fcn.00405bad
mov ecx, dword [esp + 0x70]
call fcn.00405bad
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x419aee
call fcn.00405bad
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x419af0
xor eax, eax
test edi, edi
jle 0x419e2b
mov ecx, dword [esp + 0x2c]
mov edx, eax
add ecx, 4
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edi
cmp dword [ecx + 0xa4], eax
je 0x419ddf
mov eax, dword [esi + 0x54]
add ecx, 0xfffffffc
add eax, edx
mov dword [esp + 0x30], eax
mov edx, dword [eax + 0x74]
movss xmm1, dword [eax + 0x10]
mov dword [esp + 0x14], edx
call fcn.00413edb
mov esi, dword [esp + 0x18]
movss dword [esp + 0x4c], xmm0
mov edi, dword [esi + 0x18]
mov esi, dword [esi]
lea ecx, [esi + 4]
add ecx, edi
call fcn.00411c5f
cwde
lea ecx, [edi + 6]
add ecx, esi
mov dword [esp + 0x54], eax
call fcn.00411c5f
mov edi, dword [esp + 0x30]
cwde
mov dword [esp + 0x50], eax
cmp byte [edi + 0x3c], 0
jne 0x419bfd
mov ecx, dword [esp + 0x14]
call fcn.0041a2c5
mov edx, dword [esp + 0x14]
movd xmm1, dword [esp + 0x54]
mov eax, dword [edi + 0x10]
cvtdq2ps xmm1, xmm1
mov dword [edx + 0x10], eax
or eax, 0xffffffff
push 1
pop ecx
mov esi, dword [esp + 0x34]
mov dword [edx + 0x3c], edi
comiss xmm1, dword [esp + 0x58]
mov dword [edx + 0x38], esi
mulss xmm1, dword [esp + 0x4c]
cmova eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, xmm1
movd xmm1, dword [esp + 0x50]
cvtdq2ps xmm1, xmm1
cvttss2si eax, xmm0
movd xmm2, eax
or eax, 0xffffffff
comiss xmm1, dword [esp + 0x58]
mulss xmm1, dword [esp + 0x4c]
cmova eax, ecx
cvtdq2ps xmm2, xmm2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x4c], xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx + 0x50], xmm0
jmp 0x419c0a
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
movss xmm2, dword [edx + 0x4c]
addss xmm2, dword [0x4ce78c]
inc word [edx + 0x40]
mov ecx, dword [esp + 0x18]
movss xmm1, dword [edi + 0x28]
movss dword [esp + 0x4c], xmm1
cvttss2si eax, xmm2
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
mov dword [esp + 0xc], eax
addss xmm0, dword [edi + 0x2c]
movss dword [esp + 0x30], xmm0
cmp dword [ecx + 0xa4], eax
jle 0x419dd7
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0xbc]
mov edx, dword [esp + 0xc]
movss xmm7, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x94]
mov ecx, dword [esp + 0x10]
mov dword [esp + 8], eax
movss xmm0, dword [ecx + eax + 0x10]
comiss xmm7, xmm0
ja 0x419c89
movss xmm7, dword [edi + 0x38]
minss xmm7, xmm0
mov edx, dword [esp + 0x14]
movaps xmm6, xmm1
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jnp 0x419cbd
cmp byte [edi + 0x1c], 0
movaps xmm6, xmm7
subss xmm6, xmm0
mulss xmm6, dword [0x4ce78c]
je 0x419cb9
cvttss2si eax, xmm6
movd xmm6, eax
cvtdq2ps xmm6, xmm6
addss xmm6, xmm1
movd xmm0, dword [esi + 0x1c]
sub esp, 0x1c
mov eax, dword [esp + 0x24]
movss xmm3, dword [0x4ce7bc]
movss xmm2, dword [0x4ce7bc]
cvtdq2ps xmm0, xmm0
movzx eax, word [ecx + eax]
movd xmm5, eax
mov eax, dword [esp + 0x24]
divss xmm3, xmm0
movzx eax, word [ecx + eax + 2]
movd xmm0, dword [esi + 0x20]
cvtdq2ps xmm0, xmm0
movd xmm4, eax
mov eax, dword [esp + 0x24]
divss xmm2, xmm0
movzx eax, word [ecx + eax + 4]
movd xmm1, eax
mov eax, dword [esp + 0x24]
cvtdq2ps xmm4, xmm4
movzx eax, word [ecx + eax + 6]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esp + 0x24]
cvtdq2ps xmm0, xmm0
mulss xmm4, xmm2
mulss xmm0, xmm2
movss xmm2, dword [ecx + eax + 8]
mulss xmm1, xmm3
movss dword [esp + 0x18], xmm7
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ecx + eax + 0x18]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0xc], xmm4
movss xmm4, dword [esp + 0x74]
addss xmm0, xmm4
cvtdq2ps xmm5, xmm5
addss xmm0, dword [esp + 0x4c]
mulss xmm5, xmm3
addss xmm2, xmm4
movss xmm3, dword [ecx + eax + 0xc]
addss xmm3, xmm4
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm0
addss xmm2, xmm6
movss xmm0, dword [ecx + eax + 0x14]
mov ecx, edx
addss xmm0, xmm4
addss xmm3, dword [esp + 0x4c]
addss xmm0, xmm6
movss dword [esp], xmm0
push dword [esp + 0x70]
call fcn.0041a4d1
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
inc edx
add dword [esp + 0x10], 0x1c
movss xmm1, dword [esp + 0x4c]
mov dword [esp + 0xc], edx
cmp edx, dword [ecx + 0xa4]
jl 0x419c51
xor eax, eax
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
add ecx, 0xc4
add edx, 0x78
sub edi, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edi
jne 0x419b0d
mov edi, dword [esp + 0x2c]
add edi, 0xb4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x419e13
call fcn.00405bad
mov ecx, dword [edi]
test ecx, ecx
je 0x419e1e
call fcn.00405bad
add edi, 0xc4
sub dword [esp + 0x38], 1
jne 0x419e07
mov ecx, esi
call fcn.0041a060
xor eax, eax
inc eax
mov byte [esp + 0x5c], al
mov eax, dword [esp + 0x40]
test eax, eax
je 0x419e48
mov ecx, eax
call fcn.00405bad
mov eax, dword [esp + 0x28]
test eax, eax
je 0x419e57
mov ecx, eax
call fcn.00405bad
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x419e66
mov ecx, edi
call fcn.00405bad
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x419e75
mov ecx, eax
call fcn.00405bad
mov ecx, dword [esp + 0x19c]
mov al, byte [esp + 0x5c]
pop edi
pop esi
xor ecx, esp
call fcn.00431cb0
mov esp, ebp
pop ebp
ret