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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1a0
mov eax, dword [0x4c9180]
xor eax, esp
mov dword [esp + 0x19c], eax
push esi
mov esi, ecx
xor eax, eax
push edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x60], eax
cmp dword [esi + 0x58], eax
jge 0x4297ae
test byte [esi + 4], 2
jne 0x42979f
push 0x1b
push 0xd9
jmp 0x4297a3
push 2
push 2
push ecx
call fcn.00429613
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
movups xmmword [esi + 0x24], xmm0
call fcn.004291a2
mov edi, dword [esi + 0x4c]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], edi
push 8
pop edx
test edi, edi
jle 0x4297fa
cmp edi, edx
mov eax, edi
cmovl eax, edx
test eax, eax
jle 0x4297fa
imul ecx, eax, 0xc4
call fcn.004163c9
push 8
mov dword [esp + 0x2c], eax
pop edx
mov ecx, dword [esi + 0x34]
mov dword [esp + 0x1c], ecx
test ecx, ecx
jle 0x42981c
cmp ecx, edx
mov eax, ecx
cmovl eax, edx
test eax, eax
jle 0x42981c
imul ecx, eax, 0x18
call fcn.004163c9
mov dword [esp + 0x40], eax
imul eax, edi, 0xc4
xor edi, edi
push eax
push edi
push dword [esp + 0x30]
call fcn.0045e6a0
imul eax, dword [esp + 0x28], 0x18
add esp, 0xc
push eax
push edi
push dword [esp + 0x48]
call fcn.0045e6a0
xor ecx, ecx
add esp, 0xc
mov dword [esp + 0x14], ecx
cmp dword [esi + 0x4c], ecx
jle 0x429958
mov edi, dword [esp + 0x28]
mov edx, ecx
mov dword [esp + 0x10], edx
add edi, 0xa4
mov eax, dword [esi + 0x54]
or dword [edi - 4], 0xffffffff
add eax, edx
mov edx, ecx
mov dword [esp + 0x18], eax
cmp dword [esi + 0x34], ecx
jle 0x42a585
or ecx, 0xffffffff
mov dword [esp + 8], ecx
cmp ecx, 0xffffffff
jne 0x4298b0
or dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x3c]
mov eax, dword [eax + 0x74]
cmp eax, dword [ecx + edx*4]
jne 0x42989e
mov dword [edi - 4], edx
mov ecx, edx
jmp 0x4298a2
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x18]
inc edx
mov dword [esp + 8], ecx
cmp edx, dword [esi + 0x34]
jl 0x42987f
cmp dword [esp + 8], 0xffffffff
je 0x42a585
mov edx, dword [eax + 0xc]
mov ecx, dword [eax]
call fcn.00422522
mov edx, dword [esp + 0x18]
lea ecx, [edi - 0xa4]
push eax
mov edx, dword [edx]
call fcn.0042267f
pop ecx
test eax, eax
je 0x42a585
imul eax, dword [edi - 4], 0x18
mov edx, 0x4b3c80
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x40]
cmp dword [ecx + 0x30], 0
mov dword [esp + 8], eax
cmovne edx, dword [ecx + 0x30]
xor ecx, ecx
mov dword [edi - 8], edx
cmp word [edx], cx
je 0x429923
movzx eax, word [edx + 2]
test ax, ax
je 0x42991f
cmp dword [edi], eax
cmovge eax, dword [edi]
add edx, 4
mov dword [edi], eax
cmp word [edx], cx
jne 0x429907
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
inc dword [eax]
mov eax, dword [edi]
cmp dword [edx + 4], eax
cmovge eax, dword [edx + 4]
add edi, 0xc4
mov dword [edx + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
inc eax
add edx, 0x78
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
cmp eax, dword [esi + 0x4c]
jl 0x429864
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x54], 1
test eax, eax
jle 0x429b93
mov esi, dword [esp + 0x28]
add esi, 0xa8
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
xor edi, edi
imul eax, dword [esi - 8], 0x18
lea ecx, [esi + 4]
add eax, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax - 4]
add eax, 0x20
sar eax, 5
push eax
call fcn.00420fd2
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x18]
shl eax, 2
push eax
push edi
push dword [esi + 0xc]
call fcn.0045e6a0
mov edx, dword [esp + 0x40]
add esp, 0xc
lea ecx, [edx + 0xc]
mov dword [esp + 0x20], ecx
cmp dword [ecx], edi
jne 0x4299f5
mov eax, dword [edx + 4]
add eax, 0x20
sar eax, 5
push eax
call fcn.00420fd2
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
shl eax, 2
push eax
push edi
push dword [ecx + 8]
call fcn.0045e6a0
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esi - 0xc]
jmp 0x429ab6
movzx ecx, word [eax + 2]
mov dword [esp + 0x20], ecx
test cx, cx
je 0x429ac3
movzx ecx, word [eax]
mov eax, dword [esp + 0x20]
movzx eax, ax
jmp 0x429aa3
mov edx, dword [edx + 0x14]
mov eax, ecx
sar eax, 5
and ecx, 0x1f
mov dword [esp + 0x30], eax
xor eax, eax
inc eax
mov dword [esp + 8], ecx
shl eax, cl
mov ecx, dword [esp + 0x30]
test dword [edx + ecx*4], eax
jne 0x429a92
mov edx, dword [esp + 0x2c]
lea ecx, [esi - 0xa8]
call fcn.00422a5f
mov edx, dword [esp + 0x34]
test eax, eax
je 0x429a96
inc dword [esi]
inc dword [edx + 8]
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 8]
mov eax, dword [ecx + eax*4]
bts eax, esi
mov esi, dword [esp + 0x30]
mov dword [ecx + esi*4], eax
mov eax, esi
mov ecx, dword [edx + 0x14]
mov esi, dword [esp + 8]
mov eax, dword [ecx + eax*4]
bts eax, esi
mov esi, dword [esp + 0x30]
inc dword [esp + 0xc]
mov dword [ecx + esi*4], eax
mov esi, dword [esp + 0x18]
jmp 0x429a96
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
inc ecx
movzx eax, word [eax + 2]
mov dword [esp + 0x2c], ecx
cmp ecx, eax
jbe 0x429a1d
mov eax, dword [esp + 0x10]
add eax, 4
mov dword [esp + 0x10], eax
cmp word [eax], di
jne 0x4299fd
add esi, 0xc4
sub dword [esp + 0x14], 1
mov dword [esp + 0x18], esi
jne 0x429984
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x38]
add esi, 0xb8
mov dword [esp + 0x10], eax
push dword [esi - 0x10]
mov ecx, esi
call fcn.00420f4e
mov edi, dword [esi - 4]
mov eax, dword [esi - 0xc]
mov dword [esp + 8], edi
lea eax, [edi + eax*4]
mov dword [esp + 0x44], eax
cmp edi, eax
jae 0x429b5f
xor edx, edx
mov dword [esp + 0x14], edx
mov eax, dword [edi]
mov dword [esp + 0x20], eax
test eax, eax
je 0x429b4b
xor edi, edi
xor eax, eax
mov ecx, edi
inc eax
shl eax, cl
test dword [esp + 0x20], eax
je 0x429b41
and edx, 0xffffffe0
lea eax, [esp + 0x48]
add edx, edi
mov ecx, esi
push eax
mov dword [esp + 0x4c], edx
call fcn.00420cf5
mov edx, dword [esp + 0x14]
inc edi
cmp edi, 0x20
jb 0x429b1b
mov edi, dword [esp + 8]
add edi, 4
add edx, 0x20
mov dword [esp + 8], edi
mov dword [esp + 0x14], edx
cmp edi, dword [esp + 0x44]
jb 0x429b0f
mov ecx, dword [esi - 4]
test ecx, ecx
je 0x429b7a
xor eax, eax
mov dword [esi - 8], eax
mov dword [esi - 0xc], eax
call fcn.004163e0
xor ecx, ecx
mov dword [esi - 4], ecx
jmp 0x429b7c
xor ecx, ecx
add esi, 0xc4
sub dword [esp + 0x10], 1
jne 0x429aea
mov esi, dword [esp + 0x3c]
jmp 0x429b97
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x429bcc
mov edi, dword [esp + 0x40]
add edi, 0x14
cmp dword [edi], 0
je 0x429bc0
mov dword [edi - 4], ecx
mov dword [edi - 8], ecx
mov ecx, dword [edi]
call fcn.004163e0
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov dword [edi], ecx
add edi, 0x18
sub eax, 1
mov dword [esp + 0x1c], eax
jne 0x429ba6
mov eax, dword [esp + 0x40]
test eax, eax
je 0x429be1
mov ecx, eax
call fcn.004163e0
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov edi, dword [esp + 0xc]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x68]
push edi
call fcn.0042bd89
test edi, edi
jle 0x429c1d
push 8
pop ecx
cmp edi, ecx
mov eax, edi
cmovl eax, ecx
test eax, eax
jle 0x429c1d
imul ecx, eax, 0x1c
call fcn.004163c9
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x68]
xor edi, edi
shl eax, 4
push eax
mov eax, dword [esp + 0x74]
push edi
push eax
mov dword [esp + 0x3c], eax
call fcn.0045e6a0
imul eax, dword [esp + 0x18], 0x1c
add esp, 0xc
push eax
push edi
push dword [esp + 0x3c]
call fcn.0045e6a0
mov edi, dword [esp + 0x44]
xor edx, edx
add esp, 0xc
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], edx
mov ecx, edx
mov dword [esp + 8], ecx
test edi, edi
jle 0x429e72
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
add edi, 0x98
mov dword [esp + 0x14], eax
mov eax, edx
mov dword [esp + 0x1c], edx
cmp dword [edi + 0x10], 0
je 0x429e50
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
shl eax, 4
add eax, dword [esp + 0x30]
mov dword [edi - 4], eax
imul eax, dword [esp + 0x2c], 0x1c
add ecx, eax
mov eax, dword [esp + 0x10]
add eax, dword [edi + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
add eax, dword [edi + 0x10]
mov dword [esp + 0x2c], eax
mov dword [edi], ecx
mov eax, dword [esi + 0x54]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x44], 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 + 0x44]
mov dword [edi - 0x14], eax
mov eax, dword [edi + 0x20]
mov dword [edi - 0x10], eax
mov dword [edi - 0x18], edx
mov al, byte [ecx + 0x14]
mov byte [edi - 8], al
mov al, byte [ecx + 0x18]
mov byte [edi - 7], al
lea eax, [edi - 0x98]
movss xmm1, dword [ecx + 0x10]
comiss xmm1, dword [0x4b60d4]
mov dword [esp + 0xc], eax
jbe 0x429d20
mov ecx, eax
call fcn.0042467e
mov ecx, dword [esp + 0xc]
movaps xmm1, xmm0
movss dword [esp + 0x20], xmm0
jmp 0x429d5b
mov edx, dword [edi - 0x94]
mov eax, dword [edi - 0x84]
xorps xmm1, xmmword [0x4b6920]
movzx ecx, byte [edx + eax + 0x12]
movzx eax, byte [edx + eax + 0x13]
shl ecx, 8
add ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xc], ecx
divss xmm1, xmm0
movss dword [esp + 0x20], xmm1
mov eax, dword [esi + 0x10]
xor edx, edx
mov dword [esp + 0x18], edx
cmp dword [edi + 0x20], edx
jle 0x429e48
mov esi, dword [esp + 0x44]
movzx eax, ax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x24], eax
mov eax, edx
mov dword [esp + 0x48], edx
mov edx, dword [edi + 0x28]
mov edx, dword [edx + eax*4]
call fcn.00422a5f
movd xmm3, dword [esi + 0x18]
lea ecx, [esp + 0x50]
movd xmm2, dword [esi + 0x14]
mov edx, eax
push ecx
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esp + 0x64]
cvtdq2ps xmm3, xmm3
push ecx
push ecx
push ecx
and dword [esp + 4], 0
mov ecx, dword [esp + 0x24]
and dword [esp], 0
cvtdq2ps xmm2, xmm2
mulss xmm3, xmm1
mulss xmm2, xmm1
call fcn.004246b3
mov ecx, dword [esp + 0x7c]
add esp, 0x18
sub ecx, dword [esp + 0x58]
add ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
dec cx
add cx, word [esi + 0x14]
mov eax, dword [edi - 4]
movss xmm1, dword [esp + 0x20]
mov word [edx + eax + 4], cx
mov ecx, dword [esp + 0x50]
sub ecx, dword [esp + 0x4c]
mov eax, dword [edi - 4]
dec cx
add cx, word [esi + 0x18]
add cx, word [esp + 0x24]
mov word [edx + eax + 6], cx
mov eax, dword [edi - 4]
movzx ecx, word [edx + eax + 6]
movzx eax, word [edx + eax + 4]
add edx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], edx
add dword [esp + 8], ecx
inc eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x18], eax
cmp eax, dword [edi + 0x20]
jl 0x429d82
mov esi, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
add eax, 0x78
add edi, 0xc4
sub ecx, 1
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jne 0x429c84
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 8]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x20], edx
test eax, eax
jg 0x429ecf
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
call fcn.004808d0
cvtsd2ss xmm0, xmm0
mov ecx, 0x400
cvttss2si eax, xmm0
inc eax
movd xmm0, eax
mov eax, 0x200
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x4b6220]
cmovae eax, ecx
mov ecx, 0x800
comiss xmm0, dword [0x4b622c]
cmovae eax, ecx
mov ecx, 0x1000
comiss xmm0, dword [0x4b6230]
cmovae eax, ecx
xor edx, edx
push 0x2c
mov dword [esi + 0x1c], eax
lea eax, [esp + 0x78]
push edx
push eax
call fcn.0045e6a0
pop ecx
pop ecx
push dword [esi + 0x10]
push ecx
push ecx
push dword [esi + 0x1c]
lea ecx, [esp + 0x88]
call fcn.00425fa7
mov edx, dword [esp + 0x8c]
add esp, 0x14
mov ecx, esi
call fcn.0042a5dd
test edi, edi
jle 0x429f92
mov eax, dword [esp + 0x28]
add eax, 0xa8
mov dword [esp + 0x24], eax
mov eax, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 8], eax
cmp dword [edi], 0
je 0x429f83
push dword [edi]
mov edx, dword [edi - 0x14]
mov ecx, dword [esp + 0x7c]
call fcn.00421ff0
xor eax, eax
pop ecx
mov ecx, eax
mov dword [esp + 0x20], ecx
cmp dword [edi], eax
jle 0x429f7f
mov edx, eax
mov esi, dword [edi - 0x14]
cmp dword [esi + edx + 0xc], eax
mov esi, dword [esp + 0x3c]
je 0x429f73
mov eax, dword [edi - 0x14]
movzx ecx, word [eax + edx + 0xa]
movzx eax, word [eax + edx + 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 + 0x20]
inc ecx
add edx, 0x10
mov dword [esp + 0x20], ecx
cmp ecx, dword [edi]
jl 0x429f47
mov eax, dword [esp + 8]
add edi, 0xc4
sub eax, 1
mov dword [esp + 8], eax
jne 0x429f25
test byte [esi + 4], 1
mov eax, dword [esi + 0x20]
jne 0x429fc0
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 [0x4b614c]
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.004163c9
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.0045e6a0
mov eax, dword [esi + 0x14]
add esp, 0xc
mov edi, dword [esp + 0x38]
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x80], eax
test edi, edi
jle 0x42a1c5
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov eax, ecx
mov dword [esp + 0xc], 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 0x42a1a5
push dword [edx + 0x94]
lea eax, [edx + 0x7c]
push ecx
push eax
lea ecx, [esp + 0x80]
call fcn.004264c8
movss xmm1, dword [edi + 0x44]
add esp, 0xc
ucomiss xmm1, dword [0x4b614c]
movss dword [esp + 0x24], xmm1
lahf
test ah, 0x44
jnp 0x42a195
xor edi, edi
mov esi, 0xff
movd xmm0, edi
mov eax, edi
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4b6800]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
call fcn.0045cd20
movss xmm1, dword [esp + 0x24]
cmp eax, esi
movzx ecx, al
cmova ecx, esi
mov byte [esp + edi + 0xa0], cl
inc edi
cmp edi, 0x100
jb 0x42a096
mov edx, dword [esp + 0xc]
xor ecx, ecx
mov esi, dword [esp + 0x3c]
mov edi, ecx
mov dword [esp + 0x14], edi
mov eax, dword [edx + 0x94]
cmp dword [edx + 0xa8], ecx
jle 0x42a19b
add eax, 4
mov dword [esp + 0x10], eax
cmp dword [eax + 8], ecx
je 0x42a17b
mov edx, dword [esi + 0x1c]
movzx edi, word [eax + 6]
mov dword [esp + 0x20], edx
imul edi, dword [esp + 0x20]
movzx edx, word [eax]
movzx eax, word [eax + 4]
mov dword [esp + 0x24], edx
add edi, eax
mov eax, dword [esp + 0x10]
add edi, dword [esi + 0x14]
movzx edx, word [eax + 2]
mov dword [esp + 8], edx
test edx, edx
mov edx, dword [esp + 0xc]
je 0x42a177
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov esi, ecx
test edx, edx
je 0x42a15e
movzx eax, byte [esi + edi]
mov al, byte [esp + eax + 0xa0]
mov byte [esi + edi], al
inc esi
cmp esi, edx
jl 0x42a147
mov eax, dword [esp + 8]
add edi, dword [esp + 0x20]
dec eax
mov dword [esp + 8], eax
test eax, eax
jg 0x42a141
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
inc edi
add eax, 0x10
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
cmp edi, dword [edx + 0xa8]
jl 0x42a100
jmp 0x42a19b
mov edx, dword [esp + 0xc]
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 + 0xc], edx
jne 0x42a048
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
call fcn.004163e0
mov ecx, dword [esp + 0x78]
call fcn.004163e0
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x42a1ef
call fcn.004163e0
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x42a1f1
xor eax, eax
test edi, edi
jle 0x42a559
mov ecx, dword [esp + 0x28]
mov edx, eax
add ecx, 4
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edi
cmp dword [ecx + 0xa4], eax
je 0x42a51d
mov eax, dword [esi + 0x54]
add ecx, 0xfffffffc
add eax, edx
mov dword [esp + 0x24], eax
mov edx, dword [eax + 0x74]
movss xmm1, dword [eax + 0x10]
mov dword [esp + 0x1c], edx
call fcn.0042467e
mov esi, dword [esp + 0x18]
movss dword [esp + 0x5c], xmm0
mov edi, dword [esi + 0x18]
mov esi, dword [esi]
lea ecx, [esi + 4]
add ecx, edi
call fcn.00422407
cwde
lea ecx, [edi + 6]
add ecx, esi
mov dword [esp + 0x50], eax
call fcn.00422407
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
cwde
mov dword [esp + 0x4c], eax
lea eax, [edx + 0x4c]
cmp byte [edi + 0x3c], 0
mov dword [esp + 0x58], eax
jne 0x42a343
mov ecx, edx
call fcn.0042a9aa
mov edx, dword [esp + 0x1c]
xor ecx, ecx
mov eax, dword [edi + 0x10]
xorps xmm5, xmm5
and dword [esp + 0x24], 0
mov esi, dword [esp + 0x3c]
mov dword [edx + 0x10], eax
xor eax, eax
movd xmm0, ecx
mov ecx, dword [esp + 0x4c]
and dword [esp + 0x4c], 0
movd xmm3, eax
mov eax, dword [esp + 0x50]
movd xmm1, ecx
punpckldq xmm1, xmm3
movd xmm3, dword [esp + 0x24]
movd xmm2, eax
punpckldq xmm2, xmm0
movd xmm0, ecx
or ecx, 0xffffffff
cvtdq2ps xmm0, xmm0
mov dword [edx + 0x3c], edi
mov dword [edx + 0x38], esi
punpckldq xmm2, xmm1
comiss xmm0, xmm5
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cmova ecx, dword [esp + 0x54]
or eax, 0xffffffff
cvtdq2ps xmm4, xmm2
movss xmm2, dword [esp + 0x5c]
comiss xmm0, xmm5
movd xmm0, dword [esp + 0x4c]
movaps xmm1, xmm2
unpcklps xmm2, xmm1
cmova eax, dword [esp + 0x54]
mulps xmm4, xmm2
movd xmm1, ecx
movd xmm2, eax
mov eax, dword [esp + 0x58]
punpckldq xmm2, xmm0
punpckldq xmm1, xmm3
punpckldq xmm2, xmm1
cvtdq2ps xmm0, xmm2
addps xmm4, xmm0
cvttps2dq xmm0, xmm4
cvtdq2ps xmm0, xmm0
movss dword [eax], xmm0
shufps xmm0, xmm0, 0x55
movss dword [edx + 0x50], xmm0
jmp 0x42a347
mov esi, dword [esp + 0x3c]
movss xmm0, dword [eax]
addss xmm0, dword [0x4b611c]
inc word [edx + 0x40]
mov ecx, dword [esp + 0x18]
movss xmm1, dword [edi + 0x28]
movss dword [esp + 0x50], xmm1
cvttss2si eax, xmm0
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
mov dword [esp + 8], eax
addss xmm0, dword [edi + 0x2c]
movss dword [esp + 0x24], xmm0
cmp dword [ecx + 0xa4], eax
jle 0x42a515
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0xbc]
mov edx, dword [esp + 8]
movss xmm7, dword [edi + 0x34]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x94]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xc], eax
movss xmm0, dword [eax + ecx + 0x10]
comiss xmm7, xmm0
ja 0x42a3ca
movss xmm7, dword [edi + 0x38]
minss xmm7, xmm0
mov edx, dword [esp + 0x1c]
movaps xmm6, xmm1
ucomiss xmm0, xmm7
lahf
test ah, 0x44
jnp 0x42a3fe
cmp byte [edi + 0x1c], 0
movaps xmm6, xmm7
subss xmm6, xmm0
mulss xmm6, dword [0x4b611c]
je 0x42a3fa
cvttss2si eax, xmm6
movd xmm6, eax
cvtdq2ps xmm6, xmm6
addss xmm6, xmm1
movd xmm0, dword [esi + 0x1c]
sub esp, 0x1c
mov eax, dword [esp + 0x28]
movss xmm3, dword [0x4b614c]
movss xmm2, dword [0x4b614c]
cvtdq2ps xmm0, xmm0
movzx eax, word [eax + ecx]
movd xmm5, eax
mov eax, dword [esp + 0x28]
divss xmm3, xmm0
movzx eax, word [eax + ecx + 2]
movd xmm0, dword [esi + 0x20]
cvtdq2ps xmm0, xmm0
movd xmm4, eax
mov eax, dword [esp + 0x28]
divss xmm2, xmm0
movzx eax, word [eax + ecx + 4]
movd xmm1, eax
mov eax, dword [esp + 0x28]
cvtdq2ps xmm4, xmm4
movzx eax, word [eax + ecx + 6]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [esp + 0x28]
cvtdq2ps xmm0, xmm0
mulss xmm4, xmm2
mulss xmm0, xmm2
movss xmm2, dword [eax + ecx + 8]
mulss xmm1, xmm3
movss dword [esp + 0x18], xmm7
movss dword [esp + 0x14], xmm0
movss xmm0, dword [eax + ecx + 0x18]
movss dword [esp + 0x10], xmm1
movss dword [esp + 0xc], xmm4
xorps xmm4, xmm4
addss xmm0, xmm4
cvtdq2ps xmm5, xmm5
addss xmm0, dword [esp + 0x40]
mulss xmm5, xmm3
addss xmm2, xmm4
movss xmm3, dword [eax + ecx + 0xc]
addss xmm3, xmm4
movss dword [esp + 8], xmm5
movss dword [esp + 4], xmm0
addss xmm2, xmm6
movss xmm0, dword [eax + ecx + 0x14]
mov ecx, edx
addss xmm0, xmm4
addss xmm3, dword [esp + 0x40]
addss xmm0, xmm6
movss dword [esp], xmm0
push dword [esp + 0x68]
call fcn.0042ac3c
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x18]
inc edx
add dword [esp + 0x14], 0x1c
movss xmm1, dword [esp + 0x50]
mov dword [esp + 8], edx
cmp edx, dword [ecx + 0xa4]
jl 0x42a392
xor eax, eax
mov edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x10]
add ecx, 0xc4
add edx, 0x78
sub edi, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x2c], edi
jne 0x42a20e
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x38]
mov ecx, edi
call fcn.0042a5bb
add edi, 0xc4
sub esi, 1
jne 0x42a543
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0042a7b0
xor eax, eax
inc eax
mov byte [esp + 0x60], al
mov eax, dword [esp + 0x34]
test eax, eax
je 0x42a576
mov ecx, eax
call fcn.004163e0
mov eax, dword [esp + 0x30]
test eax, eax
je 0x42a585
mov ecx, eax
call fcn.004163e0
mov eax, dword [esp + 0x40]
test eax, eax
je 0x42a594
mov ecx, eax
call fcn.004163e0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x42a5a3
mov ecx, eax
call fcn.004163e0
mov ecx, dword [esp + 0x1a4]
mov al, byte [esp + 0x60]
pop edi
pop esi
xor ecx, esp
call fcn.0045c1f5
mov esp, ebp
pop ebp
ret