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

Disassembly:
sub esp, 0x38
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
add eax, eax
mov dword [esp + 0x18], eax
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 4], eax
mov eax, ecx
push ebx
and eax, 1
push ebp
mov dword [esp + 0x24], eax
push esi
push edi
mov edi, dword [esp + 0x4c]
mov eax, edi
cdq
sub eax, edx
mov ebx, eax
mov eax, edi
and eax, 1
sar ebx, 1
mov dword [esp + 0x20], eax
mov eax, dword [0x5691f0]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], eax
cmp eax, 3
jne 0x4608b1
xor eax, eax
cmp ecx, 0x240
setg al
inc eax
mov dword [esp + 0x18], eax
lea esi, [eax + eax*4]
mov eax, dword [esp + 0x5c]
cmp eax, 0x32595559
ja 0x460917
je 0x461911
mov edx, eax
sub edx, 0x3132564e
je 0x4608dc
sub edx, 0xff0000
je 0x4608dc
sub edx, 0xb
jne 0x460934
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x3c]
push edx
lea edx, [esp + 0x44]
push edx
lea edx, [esp + 0x40]
push edx
push dword [esp + 0x78]
push dword [esp + 0x78]
push eax
push ecx
push edi
call fcn.004603c0
add esp, 0x28
test eax, eax
je 0x460950
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x38
ret
cmp eax, 0x55595659
je 0x461911
cmp eax, 0x56555949
je 0x4608dc
cmp eax, 0x59565955
je 0x461911
push eax
call fcn.0044c860
push eax
push str.Unsupported_YUV_destination_format:__s
call fcn.0041ad60
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov ecx, dword [esp + 0x1c]
mov ebp, ecx
mov eax, dword [esp + 0x50]
sub ecx, edi
mov edi, dword [esp + 0x54]
movss xmm5, dword [0x520f94]
imul ebp, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], edi
add ebp, dword [esp + 0x30]
mov dword [esp + 0x44], ebp
test eax, eax
jle 0x460a74
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x3c]
nop word [eax + eax]
xor edx, edx
test edi, edi
jle 0x460a55
nop word [eax + eax]
mov ecx, dword [ebp + edx*4]
mov eax, ecx
shr eax, 0x10
inc edx
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [esi*8 + 0x5691fc]
shr eax, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x520270]
movzx eax, cl
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x569200]
addss xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov byte [ebx], al
inc ebx
cmp edx, edi
jl 0x4609b0
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
add ebx, dword [esp + 0x40]
add ebp, ecx
sub eax, 1
mov dword [esp + 0x50], eax
jne 0x4609a0
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x5c]
cmp eax, 0x32315659
je 0x46140c
cmp eax, 0x56555949
je 0x46140c
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x24]
inc eax
cdq
sub eax, edx
and eax, 0xfffffffe
sub ecx, eax
cmp dword [esp + 0x5c], 0x3231564e
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
jne 0x460f52
test eax, eax
jle 0x460d77
nop dword [eax]
xor ecx, ecx
mov dword [esp + 0x50], ecx
test ebx, ebx
jle 0x460c58
mov eax, dword [esp + 0x58]
mov ebx, edi
add eax, edi
sub ebx, eax
mov dword [esp + 0x5c], ebx
lea edx, [eax + 4]
mov dword [esp + 0x4c], edx
mov eax, dword [edx + ebx]
mov ebx, dword [edx - 4]
mov edx, dword [edx]
mov ecx, edx
mov edi, dword [esp + 0x5c]
and ecx, 0xff00
mov dword [esp + 0x44], eax
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, dword [esp + 0x4c]
mov esi, dword [eax + edi]
mov eax, dword [esp + 0x1c]
and esi, 0xff00
add ecx, esi
mov esi, dword [esp + 0x50]
mov edi, dword [eax + esi*8]
mov eax, edi
and eax, 0xff00
mov esi, dword [esp + 0x44]
add ecx, eax
and esi, 0xff0000
shr ecx, 0xa
mov eax, ebx
and eax, 0xff0000
and edi, 0xff0000
movd xmm0, ecx
shr ecx, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
mov ebx, dword [esp + 0x5c]
add ecx, esi
add ecx, edi
mov edi, dword [esp + 0x1c]
shr ecx, 0x12
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm4
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
mov edx, dword [esp + 0x4c]
add ecx, eax
cvtpd2ps xmm3, xmm0
mov eax, dword [edx + ebx]
mov ebx, dword [esp + 0x50]
movzx eax, al
add ecx, eax
mov eax, dword [edi + ebx*8]
movzx eax, al
add ecx, eax
mov eax, dword [esp + 0x18]
shr ecx, 2
lea esi, [eax + eax*4]
mulss xmm1, dword [esi*8 + 0x56920c]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi*8 + 0x569208]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
mov ecx, ebx
add edx, 8
mov ebx, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
sub al, 0x80
mov byte [ebp + 1], al
add ebp, 2
cmp ecx, dword [esp + 0x10]
jl 0x460ae3
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x460d5a
mov ebx, dword [edi + ecx*8]
lea eax, [edi + ecx*8]
mov ecx, dword [esp + 0x58]
mov edx, dword [eax + ecx]
mov ecx, edx
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, ebx
shr ecx, 9
and eax, 0xff0000
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
shr ecx, 0x11
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
add ecx, eax
shr ecx, 1
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [ecx*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569208]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp + 1], al
add ebp, 2
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x28]
add ebp, dword [esp + 0x40]
sub eax, 1
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jne 0x460ac0
cmp dword [esp + 0x2c], 0
je 0x46250c
xor eax, eax
mov dword [esp + 0x58], eax
test ebx, ebx
jle 0x460e90
mov edx, dword [edi + eax*8 + 4]
mov ecx, edx
mov ebx, dword [edi + eax*8]
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, ebx
shr ecx, 9
and eax, 0xff0000
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
shr ecx, 0x11
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
add ecx, eax
shr ecx, 1
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [ecx*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569208]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp + 1], al
add ebp, 2
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x10]
jl 0x460d90
cmp dword [esp + 0x20], 0
je 0x46250c
mov ecx, dword [edi + eax*8]
mov eax, ecx
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
movzx eax, cl
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569208]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
jmp 0x4613ed
test eax, eax
jle 0x461217
nop word [eax + eax]
xor ecx, ecx
mov dword [esp + 0x50], ecx
test ebx, ebx
jle 0x4610f8
mov eax, dword [esp + 0x58]
mov ebx, edi
add eax, edi
sub ebx, eax
mov dword [esp + 0x5c], ebx
lea edx, [eax + 4]
mov dword [esp + 0x4c], edx
mov eax, dword [ebx + edx]
mov ebx, dword [edx - 4]
mov edx, dword [edx]
mov ecx, edx
mov edi, dword [esp + 0x5c]
and ecx, 0xff00
mov dword [esp + 0x44], eax
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, dword [esp + 0x4c]
mov esi, dword [edi + eax]
mov eax, dword [esp + 0x1c]
and esi, 0xff00
add ecx, esi
mov esi, dword [esp + 0x50]
mov edi, dword [eax + esi*8]
mov eax, edi
and eax, 0xff00
mov esi, dword [esp + 0x44]
add ecx, eax
and esi, 0xff0000
shr ecx, 0xa
mov eax, ebx
and eax, 0xff0000
and edi, 0xff0000
movd xmm0, ecx
shr ecx, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
mov ebx, dword [esp + 0x5c]
add ecx, esi
add ecx, edi
mov edi, dword [esp + 0x1c]
shr ecx, 0x12
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
mov edx, dword [esp + 0x4c]
add ecx, eax
cvtpd2ps xmm3, xmm0
mov eax, dword [ebx + edx]
mov ebx, dword [esp + 0x50]
movzx eax, al
add ecx, eax
mov eax, dword [edi + ebx*8]
movzx eax, al
movaps xmm1, xmm3
add ecx, eax
mov eax, dword [esp + 0x18]
shr ecx, 2
lea esi, [eax + eax*4]
mulss xmm1, dword [esi*8 + 0x569214]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569208]
mulss xmm4, dword [esi*8 + 0x56920c]
mulss xmm2, dword [esi*8 + 0x569210]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
mov ecx, ebx
add edx, 8
mov ebx, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], edx
sub al, 0x80
mov byte [ebp + 1], al
add ebp, 2
cmp ecx, dword [esp + 0x10]
jl 0x460f83
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x20], 0
je 0x4611fa
mov ebx, dword [edi + ecx*8]
lea eax, [edi + ecx*8]
mov ecx, dword [esp + 0x58]
mov edx, dword [eax + ecx]
mov ecx, edx
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, ebx
shr ecx, 9
and eax, 0xff0000
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
shr ecx, 0x11
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
add ecx, eax
shr ecx, 1
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [ecx*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569214]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569208]
mulss xmm4, dword [esi*8 + 0x56920c]
mulss xmm2, dword [esi*8 + 0x569210]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp + 1], al
add ebp, 2
mov eax, dword [esp + 0x14]
add edi, dword [esp + 0x28]
add ebp, dword [esp + 0x40]
sub eax, 1
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jne 0x460f60
cmp dword [esp + 0x2c], 0
je 0x46250c
xor eax, eax
mov dword [esp + 0x58], eax
test ebx, ebx
jle 0x461330
mov edx, dword [edi + eax*8 + 4]
mov ecx, edx
mov ebx, dword [edi + eax*8]
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, ebx
shr ecx, 9
and eax, 0xff0000
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
shr ecx, 0x11
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
add ecx, eax
shr ecx, 1
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [ecx*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569214]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569208]
mulss xmm4, dword [esi*8 + 0x56920c]
mulss xmm2, dword [esi*8 + 0x569210]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp + 1], al
add ebp, 2
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x10]
jl 0x461230
cmp dword [esp + 0x20], 0
je 0x46250c
mov ecx, dword [edi + eax*8]
mov eax, ecx
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
movzx eax, cl
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569214]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [ebp], al
mulss xmm3, dword [esi*8 + 0x569208]
mulss xmm4, dword [esi*8 + 0x56920c]
mulss xmm2, dword [esi*8 + 0x569210]
addss xmm3, xmm4
pop edi
pop esi
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp + 1], al
xor eax, eax
pop ebp
pop ebx
add esp, 0x38
ret
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x34]
inc eax
cdq
sub eax, edx
mov edx, dword [esp + 0x24]
sar eax, 1
sub edx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x50], edx
test eax, eax
jle 0x461710
nop dword [eax + eax]
mov dword [esp + 0x4c], 0
test ebx, ebx
jle 0x4615dd
lea eax, [edi + ecx]
mov esi, edi
lea ecx, [eax + 4]
sub esi, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30], esi
mov ebx, dword [ecx - 4]
mov edx, dword [ecx]
mov edi, dword [esp + 0x30]
mov eax, dword [edi + ecx]
mov ecx, edx
mov dword [esp + 0x44], eax
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, dword [esp + 0x5c]
mov esi, dword [edi + eax]
mov eax, dword [esp + 0x1c]
and esi, 0xff00
add ecx, esi
mov esi, dword [esp + 0x4c]
mov edi, dword [eax + esi*8]
mov eax, edi
and eax, 0xff00
mov esi, dword [esp + 0x44]
add ecx, eax
and esi, 0xff0000
shr ecx, 0xa
mov eax, ebx
and eax, 0xff0000
and edi, 0xff0000
movd xmm0, ecx
shr ecx, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
add ecx, esi
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x30]
add ecx, edi
mov edi, dword [esp + 0x1c]
shr ecx, 0x12
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
mov edx, dword [esp + 0x5c]
add ecx, eax
cvtpd2ps xmm3, xmm0
mov eax, dword [esi + edx]
movzx eax, al
add ecx, eax
mov edx, dword [esp + 0x50]
mov eax, dword [edi + ebx*8]
movzx eax, al
add ecx, eax
mov eax, dword [esp + 0x18]
shr ecx, 2
movaps xmm1, xmm3
lea esi, [eax + eax*4]
mulss xmm1, dword [esi*8 + 0x569208]
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [edx], al
inc edx
mulss xmm3, dword [esi*8 + 0x569214]
mov dword [esp + 0x50], edx
mulss xmm4, dword [esi*8 + 0x569218]
addss xmm3, xmm4
mulss xmm2, dword [esi*8 + 0x56921c]
inc ebx
mov ecx, dword [esp + 0x5c]
add ecx, 8
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x5c], ecx
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp], al
inc ebp
cmp ebx, dword [esp + 0x10]
jl 0x461462
mov eax, dword [esp + 0x14]
jmp 0x4615df
xor ebx, ebx
cmp dword [esp + 0x20], 0
je 0x4616e7
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
mov ebx, dword [edi + ebx*8]
lea eax, [edi + eax*8]
mov edx, dword [eax + ecx]
mov ecx, edx
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, ebx
shr ecx, 9
and eax, 0xff0000
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
shr ecx, 0x11
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
movzx ecx, dl
add ecx, eax
mov edx, dword [esp + 0x50]
shr ecx, 1
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [ecx*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569208]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [edx], al
inc edx
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp], al
inc ebp
mov eax, dword [esp + 0x14]
add edx, dword [esp + 0x40]
add edi, dword [esp + 0x28]
add ebp, dword [esp + 0x40]
sub eax, 1
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x50], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jne 0x461440
cmp dword [esp + 0x2c], 0
je 0x46250c
xor eax, eax
mov dword [esp + 0x58], eax
test ebx, ebx
jle 0x461836
nop dword [eax]
mov edx, dword [edi + eax*8 + 4]
mov ecx, edx
mov ebx, dword [edi + eax*8]
and ecx, 0xff00
mov eax, ebx
and eax, 0xff00
add ecx, eax
mov eax, ebx
shr ecx, 9
and eax, 0xff0000
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
mov ecx, edx
and ecx, 0xff0000
add ecx, eax
movzx eax, bl
shr ecx, 0x11
cvtpd2ps xmm4, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
movaps xmm1, xmm4
addsd xmm0, qword [ecx*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x56920c]
movzx ecx, dl
add ecx, eax
mov edx, dword [esp + 0x50]
shr ecx, 1
cvtpd2ps xmm3, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi*8 + 0x569208]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [edx], al
inc edx
mulss xmm3, dword [esi*8 + 0x569214]
mov dword [esp + 0x50], edx
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp], al
inc ebp
mov eax, dword [esp + 0x58]
inc eax
mov dword [esp + 0x58], eax
cmp eax, dword [esp + 0x10]
jl 0x461730
cmp dword [esp + 0x20], 0
je 0x46250c
mov ecx, dword [edi + eax*8]
mov eax, ecx
shr eax, 8
movzx eax, al
pop edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
movzx eax, cl
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569208]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [edx], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
pop esi
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [ebp], al
xor eax, eax
pop ebp
pop ebx
add esp, 0x38
ret
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x54]
inc eax
mov edi, dword [esp + 0x60]
cdq
sub eax, edx
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + 0x64]
sar eax, 1
shl eax, 2
mov dword [esp + 0x14], edi
cmp edx, eax
jge 0x46194c
push eax
push str.Destination_pitch_is_too_small__expected_at_least__d_n
call fcn.0041ad60
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
sub edx, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x2c], edx
cmp eax, 0x32595559
jne 0x461d46
test ecx, ecx
jle 0x46250c
movss xmm5, dword [0x520f94]
xor eax, eax
mov dword [esp + 0x4c], eax
test ebx, ebx
jle 0x461bcc
nop
mov ecx, dword [ebp + eax*8]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
movzx edx, al
movzx edi, cl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x5c], edx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov ecx, dword [ebp + ecx*8 + 4]
mov eax, ecx
shr eax, 0x10
movzx ebp, al
mov eax, ecx
shr eax, 8
movzx ebx, al
mov eax, edx
mov edx, dword [esp + 0x18]
shr eax, 0x1f
mov dword [esp + 0x44], esi
movzx ecx, cl
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [edx + edx*4]
cvtpd2ps xmm1, xmm0
movd xmm0, esi
mulss xmm1, dword [eax*8 + 0x569200]
mov eax, esi
shr eax, 0x1f
mov esi, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [esi + esi*4]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [eax*8 + 0x5691fc]
mov eax, edi
shr eax, 0x1f
addss xmm1, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [esi + esi*4]
lea esi, [edx + edx*4]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [eax*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov esi, dword [esp + 0x14]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], esi
lea eax, [ebx + eax]
shr eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, dword [esp + 0x44]
lea eax, [eax + ebp]
shr eax, 1
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [ecx + edi]
shr eax, 1
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, edx
cvtpd2ps xmm2, xmm0
lea esi, [eax + eax*4]
mulss xmm1, dword [esi*8 + 0x569208]
movaps xmm0, xmm4
mov edi, dword [esp + 0x14]
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
addss xmm1, xmm5
addsd xmm0, qword [ebx*8 + 0x520270]
mov ebx, dword [esp + 0x10]
cvttss2si eax, xmm1
cvtpd2ps xmm1, xmm0
sub al, 0x80
mov byte [edi], al
movd xmm0, ebp
mulss xmm1, dword [esi*8 + 0x569200]
shr ebp, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ebp*8 + 0x520270]
mov ebp, dword [esp + 0x1c]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x5691fc]
addss xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 1], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [edi + 2], al
add edi, 3
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], eax
cmp eax, ebx
jl 0x461980
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x20], 0
je 0x461d21
mov ecx, dword [ebp + eax*8]
mov eax, ecx
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm4
addsd xmm0, qword [eax*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569200]
movzx eax, cl
mov ecx, dword [esp + 0x50]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi*8 + 0x5691fc]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
movaps xmm0, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
movaps xmm1, xmm3
add al, byte [esi*8 + 0x5691f8]
mov byte [edi], al
mulss xmm1, dword [esi*8 + 0x569208]
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
movaps xmm0, xmm3
addss xmm1, xmm5
cvttss2si eax, xmm1
movaps xmm1, xmm4
sub al, 0x80
mov byte [edi + 1], al
mulss xmm1, dword [esi*8 + 0x569200]
mulss xmm0, dword [esi*8 + 0x5691fc]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 2], al
mulss xmm3, dword [esi*8 + 0x569214]
mulss xmm4, dword [esi*8 + 0x569218]
mulss xmm2, dword [esi*8 + 0x56921c]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [edi + 3], al
add edi, 4
add ebp, dword [esp + 0x58]
add edi, edx
sub ecx, 1
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x50], ecx
jne 0x461971
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
cmp eax, 0x59565955
jne 0x462121
test ecx, ecx
jle 0x46250c
movss xmm5, dword [0x520f94]
xor eax, eax
mov dword [esp + 0x4c], eax
test ebx, ebx
jle 0x461fa7
nop
mov ecx, dword [ebp + eax*8]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
movzx edx, al
movzx edi, cl
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ebp + ecx*8 + 4]
mov eax, ecx
shr eax, 0x10
movzx ebp, al
mov eax, ecx
shr eax, 8
movzx ebx, al
movzx ecx, cl
mov dword [esp + 0x5c], ebx
lea eax, [ebx + edx]
mov ebx, dword [esp + 0x18]
shr eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [esi + ebp]
shr eax, 1
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [ecx + edi]
shr eax, 1
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [ebx + ebx*4]
mov ebx, dword [esp + 0x14]
mulss xmm1, dword [eax*8 + 0x569208]
inc dword [esp + 0x14]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [eax*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [eax*8 + 0x569210]
addss xmm1, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
addss xmm1, xmm5
addsd xmm0, qword [edx*8 + 0x520270]
mov edx, dword [esp + 0x18]
cvttss2si eax, xmm1
cvtpd2ps xmm1, xmm0
sub al, 0x80
mov byte [ebx], al
lea eax, [edx + edx*4]
movd xmm0, esi
mulss xmm1, dword [eax*8 + 0x569200]
shr esi, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [esi*8 + 0x520270]
lea esi, [edx + edx*4]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x5691fc]
addss xmm1, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
shr edi, 0x1f
addsd xmm0, qword [edi*8 + 0x520270]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
mov byte [edi], al
shr ebx, 0x1f
mulss xmm4, dword [esi*8 + 0x569218]
addsd xmm0, qword [ebx*8 + 0x520270]
mulss xmm3, dword [esi*8 + 0x569214]
mov ebx, dword [esp + 0x10]
mulss xmm2, dword [esi*8 + 0x56921c]
cvtpd2ps xmm1, xmm0
addss xmm4, xmm3
movd xmm0, ebp
cvtdq2pd xmm0, xmm0
shr ebp, 0x1f
addss xmm4, xmm2
addsd xmm0, qword [ebp*8 + 0x520270]
mov ebp, dword [esp + 0x1c]
addss xmm4, xmm5
cvtpd2ps xmm0, xmm0
cvttss2si eax, xmm4
sub al, 0x80
mov byte [edi + 1], al
mulss xmm0, dword [esi*8 + 0x5691fc]
mulss xmm1, dword [esi*8 + 0x569200]
addss xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 2], al
add edi, 3
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], eax
cmp eax, ebx
jl 0x461d70
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x20], 0
je 0x4620fc
mov ecx, dword [ebp + eax*8]
mov eax, ecx
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
movzx eax, cl
mov ecx, dword [esp + 0x50]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x569208]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x56920c]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569210]
addss xmm1, xmm0
movaps xmm0, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
movaps xmm1, xmm3
sub al, 0x80
mov byte [edi], al
mulss xmm1, dword [esi*8 + 0x5691fc]
mulss xmm0, dword [esi*8 + 0x569200]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
movaps xmm0, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
movaps xmm1, xmm3
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 1], al
mulss xmm1, dword [esi*8 + 0x569214]
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
sub al, 0x80
mov byte [edi + 2], al
mulss xmm3, dword [esi*8 + 0x5691fc]
mulss xmm4, dword [esi*8 + 0x569200]
mulss xmm2, dword [esi*8 + 0x569204]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 3], al
add edi, 4
add ebp, dword [esp + 0x58]
add edi, edx
sub ecx, 1
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x50], ecx
jne 0x461d61
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
cmp eax, 0x55595659
jne 0x46250c
test ecx, ecx
jle 0x46250c
movss xmm5, dword [0x520f94]
nop dword [eax]
xor eax, eax
mov dword [esp + 0x4c], eax
test ebx, ebx
jle 0x46239c
nop
mov ecx, dword [ebp + eax*8]
mov eax, ecx
shr eax, 0x10
movzx esi, al
mov eax, ecx
shr eax, 8
movzx edx, al
movzx edi, cl
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x5c], edx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov ecx, dword [ebp + ecx*8 + 4]
mov eax, ecx
shr eax, 0x10
movzx ebp, al
mov eax, ecx
shr eax, 8
movzx ebx, al
mov eax, edx
mov edx, dword [esp + 0x18]
shr eax, 0x1f
mov dword [esp + 0x44], esi
movzx ecx, cl
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [edx + edx*4]
cvtpd2ps xmm1, xmm0
movd xmm0, esi
mulss xmm1, dword [eax*8 + 0x569200]
mov eax, esi
shr eax, 0x1f
mov esi, edx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [esi + esi*4]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [eax*8 + 0x5691fc]
mov eax, edi
shr eax, 0x1f
addss xmm1, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [esi + esi*4]
lea esi, [edx + edx*4]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [eax*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov esi, dword [esp + 0x14]
mov byte [esi], al
inc esi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x14], esi
lea eax, [ebx + eax]
shr eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, dword [esp + 0x44]
lea eax, [eax + ebp]
shr eax, 1
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
lea eax, [ecx + edi]
shr eax, 1
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, edx
cvtpd2ps xmm2, xmm0
lea esi, [eax + eax*4]
mulss xmm1, dword [esi*8 + 0x569214]
movaps xmm0, xmm4
mov edi, dword [esp + 0x14]
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
addss xmm1, xmm5
addsd xmm0, qword [ebx*8 + 0x520270]
mov ebx, dword [esp + 0x10]
cvttss2si eax, xmm1
cvtpd2ps xmm1, xmm0
sub al, 0x80
mov byte [edi], al
movd xmm0, ebp
mulss xmm1, dword [esi*8 + 0x569200]
shr ebp, 0x1f
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ebp*8 + 0x520270]
mov ebp, dword [esp + 0x1c]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x5691fc]
addss xmm1, xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x520270]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 1], al
mulss xmm4, dword [esi*8 + 0x56920c]
mulss xmm3, dword [esi*8 + 0x569208]
mulss xmm2, dword [esi*8 + 0x569210]
addss xmm4, xmm3
addss xmm4, xmm2
addss xmm4, xmm5
cvttss2si eax, xmm4
sub al, 0x80
mov byte [edi + 2], al
add edi, 3
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], eax
cmp eax, ebx
jl 0x462150
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
cmp dword [esp + 0x20], 0
je 0x4624f1
mov ecx, dword [ebp + eax*8]
mov eax, ecx
shr eax, 8
movzx eax, al
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
mov eax, ecx
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x520270]
movzx eax, cl
mov ecx, dword [esp + 0x50]
cvtpd2ps xmm3, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm1, xmm3
addsd xmm0, qword [eax*8 + 0x520270]
mulss xmm1, dword [esi*8 + 0x5691fc]
cvtpd2ps xmm2, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esi*8 + 0x569200]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
movaps xmm0, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
movaps xmm1, xmm3
add al, byte [esi*8 + 0x5691f8]
mov byte [edi], al
mulss xmm1, dword [esi*8 + 0x569214]
mulss xmm0, dword [esi*8 + 0x569218]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x56921c]
addss xmm1, xmm0
movaps xmm0, xmm4
addss xmm1, xmm5
cvttss2si eax, xmm1
movaps xmm1, xmm3
sub al, 0x80
mov byte [edi + 1], al
mulss xmm1, dword [esi*8 + 0x5691fc]
mulss xmm0, dword [esi*8 + 0x569200]
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esi*8 + 0x569204]
addss xmm1, xmm0
addss xmm1, xmm5
cvttss2si eax, xmm1
add al, byte [esi*8 + 0x5691f8]
mov byte [edi + 2], al
mulss xmm3, dword [esi*8 + 0x569208]
mulss xmm4, dword [esi*8 + 0x56920c]
mulss xmm2, dword [esi*8 + 0x569210]
addss xmm3, xmm4
addss xmm3, xmm2
addss xmm3, xmm5
cvttss2si eax, xmm3
sub al, 0x80
mov byte [edi + 3], al
add edi, 4
add ebp, dword [esp + 0x58]
add edi, edx
sub ecx, 1
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x50], ecx
jne 0x462140
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret