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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
movsd xmm1, qword [0x4f3ea0]
movsd xmm2, qword [0x4f3d40]
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov dword [esp + 0x30], ebx
push edi
mov ecx, dword [ebx + 0x2bc]
mov eax, dword [ebx + 0x184]
test ecx, ecx
je 0x464ed2
sub esp, 8
test eax, eax
je 0x464e72
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm1, ecx
cvtsi2sd xmm0, eax
mulsd xmm1, xmm0
divsd xmm1, qword [0x4f3e48]
addsd xmm1, xmm2
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x464e68
comisd xmm1, xmmword [0x4f40e8]
jb 0x464e68
cvttsd2si eax, xmm1
add eax, 0xfffe8ce8
cmp eax, 0x2710
jbe 0x464f4a
mov esi, 1
jmp 0x464f4a
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
addsd xmm1, xmm2
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x464ec8
comisd xmm1, xmmword [0x4f40e8]
jb 0x464ec8
cvttsd2si eax, xmm1
mov dword [ebx + 0x184], eax
jmp 0x464f4a
xor eax, eax
mov dword [ebx + 0x184], eax
jmp 0x464f4a
test eax, eax
je 0x464f36
movd xmm0, eax
sub esp, 8
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
addsd xmm1, xmm2
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x464f2c
comisd xmm1, xmmword [0x4f40e8]
jb 0x464f2c
cvttsd2si eax, xmm1
mov dword [ebx + 0x2bc], eax
jmp 0x464f4a
xor eax, eax
mov dword [ebx + 0x2bc], eax
jmp 0x464f4a
mov dword [ebx + 0x2bc], 0x186a0
mov dword [ebx + 0x184], 0x186a0
mov ecx, dword [ebx + 0x7c]
mov eax, ecx
or word [ebx + 0x306], 1
and eax, 0xffffdfff
or ecx, 0x2000
test esi, esi
cmove ecx, eax
mov eax, ecx
mov dword [ebx + 0x7c], ecx
and eax, 0x40080
cmp eax, 0x40000
jne 0x464f91
and dword [ebx + 0x78], 0xffffdfff
and ecx, 0xfd7ffeff
xor eax, eax
mov dword [ebx + 0x7c], ecx
mov word [ebx + 0x148], ax
mov eax, dword [ebx + 0x184]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x464fb3
and ecx, 0xff7fffff
and dword [ebx + 0x78], 0xffffdfff
mov dword [ebx + 0x7c], ecx
test ecx, 0x600000
je 0x464fc5
mov ecx, ebx
call fcn.00459f80
mov ecx, dword [ebx + 0x7c]
test ecx, 0x100
je 0x464fd8
test byte [ebx + 0x14f], 2
jne 0x46500d
jmp 0x465006
mov eax, ecx
and eax, 0x4080
cmp eax, 0x4080
jne 0x46500d
movzx eax, word [ebx + 0x162]
cmp ax, word [ebx + 0x164]
jne 0x46500d
cmp ax, word [ebx + 0x166]
jne 0x46500d
mov word [ebx + 0x168], ax
or dword [ebx + 0x74], 0x800
mov al, byte [ebx + 0x14f]
mov byte [esp + 0xd], al
cmp al, 3
jne 0x46502a
mov ecx, ebx
call fcn.00464c80
mov edx, dword [ebx + 0x7c]
jmp 0x4650f2
test al, 4
jne 0x465051
and dword [ebx + 0x78], 0xffffdfff
and ecx, 0xff7fffff
cmp word [ebx + 0x148], 0
mov dword [ebx + 0x7c], ecx
ja 0x465051
and ecx, 0xfffffe7f
mov dword [ebx + 0x7c], ecx
mov eax, ecx
mov edx, ecx
and eax, 0x1100
cmp eax, 0x1100
jne 0x4650f2
test byte [esp + 0xd], 2
jne 0x4650f2
movzx eax, byte [ebx + 0x150]
movzx edx, word [ebx + 0x168]
movzx esi, word [ebx + 0x1b8]
sub eax, 1
je 0x4650ac
sub eax, 1
je 0x4650a4
sub eax, 2
jne 0x4650b8
mov eax, edx
shl edx, 4
add edx, eax
mov eax, esi
shl esi, 4
add esi, eax
jmp 0x4650b8
imul edx, edx, 0x55
imul esi, esi, 0x55
jmp 0x4650b8
imul edx, edx, 0xff
imul esi, esi, 0xff
movzx eax, dx
mov edx, ecx
mov word [ebx + 0x166], ax
mov word [ebx + 0x164], ax
mov word [ebx + 0x162], ax
test ecx, 0x2000000
jne 0x4650f2
movzx eax, si
mov word [ebx + 0x1b6], ax
mov word [ebx + 0x1b4], ax
mov word [ebx + 0x1b2], ax
mov eax, edx
and eax, 0x380
cmp eax, 0x280
jne 0x465179
cmp byte [ebx + 0x150], 0x10
je 0x465179
movzx eax, word [ebx + 0x162]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x162], ax
movzx eax, word [ebx + 0x164]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x164], ax
movzx eax, word [ebx + 0x166]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x166], ax
movzx eax, word [ebx + 0x168]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x168], ax
test edx, 0x4000400
setne cl
test dl, 0x80
setne al
test al, cl
je 0x4651e8
test edx, 0x100
jne 0x4651e8
cmp byte [ebx + 0x150], 0x10
jne 0x4651e8
movzx ecx, word [ebx + 0x162]
mov esi, 0x101
mov eax, esi
imul ecx, eax
mov word [ebx + 0x162], cx
movzx ecx, word [ebx + 0x164]
imul ecx, eax
mov word [ebx + 0x164], cx
movzx ecx, word [ebx + 0x166]
imul ecx, eax
mov word [ebx + 0x166], cx
movzx ecx, word [ebx + 0x168]
imul ecx, eax
mov word [ebx + 0x168], cx
movq xmm0, qword [ebx + 0x160]
mov ax, word [ebx + 0x168]
movq qword [ebx + 0x16a], xmm0
mov word [ebx + 0x172], ax
test edx, 0x2000
jne 0x46541f
test edx, 0x600000
je 0x465246
mov eax, dword [ebx + 0x2bc]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x46541f
mov eax, dword [ebx + 0x184]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x46541f
test dl, dl
jns 0x465295
mov eax, dword [ebx + 0x2bc]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x46541f
mov eax, dword [ebx + 0x184]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x46541f
cmp byte [ebx + 0x15a], 3
jne 0x465295
mov eax, dword [ebx + 0x15c]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x46541f
mov ecx, dword [ebx + 0x7c]
mov dword [esp + 0x24], ecx
test ecx, 0x800000
je 0x4652ba
mov eax, dword [ebx + 0x184]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x46541f
mov edx, ecx
test cl, cl
jns 0x465ed8
cmp byte [ebx + 0x14f], 3
jne 0x465ed8
mov al, byte [ebx + 0x162]
movzx esi, word [ebx + 0x148]
mov dl, byte [ebx + 0x166]
mov edi, dword [ebx + 0x13c]
mov byte [esp + 0xe], al
mov byte [esp + 0x10], al
mov al, byte [ebx + 0x164]
mov byte [esp + 0xf], al
mov byte [esp + 0x11], al
xor eax, eax
mov dword [esp + 0x28], esi
mov byte [esp + 0xd], dl
mov dword [esp + 0x18], eax
test esi, esi
je 0x465412
mov ecx, dword [ebx + 0x1ac]
add edi, 2
mov ebx, ecx
mov cl, byte [ebx + eax]
test cl, cl
jne 0x465338
mov cx, word [esp + 0x10]
mov word [edi - 2], cx
mov byte [edi], dl
jmp 0x4653fa
cmp cl, 0xff
je 0x4653fa
movzx eax, byte [esp + 0xe]
movzx edx, cl
mov ecx, 0xff
sub ecx, edx
movzx esi, cx
imul esi, eax
movzx eax, byte [edi - 2]
imul eax, edx
add si, ax
mov eax, 0x80
add si, ax
movzx eax, si
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x18]
shr ecx, 8
mov byte [edi - 2], cl
mov ecx, 0xff
movzx edx, byte [ebx + eax]
movzx eax, byte [esp + 0xf]
sub ecx, edx
movzx esi, cx
imul esi, eax
movzx eax, byte [edi - 1]
imul eax, edx
add si, ax
mov eax, 0x80
add si, ax
movzx eax, si
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x18]
shr ecx, 8
mov byte [edi - 1], cl
mov ecx, 0xff
movzx edx, byte [ebx + eax]
movzx eax, byte [esp + 0xd]
sub ecx, edx
movzx esi, cx
imul esi, eax
movzx eax, byte [edi]
imul eax, edx
mov dl, byte [esp + 0xd]
add si, ax
mov eax, 0x80
add si, ax
movzx eax, si
mov esi, dword [esp + 0x28]
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x18]
shr ecx, 8
mov byte [edi], cl
inc eax
add edi, 3
mov dword [esp + 0x18], eax
cmp eax, esi
jl 0x465321
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov edx, ecx
and edx, 0xffffff7f
jmp 0x465ed5
movzx edx, byte [ebx + 0x150]
mov ecx, ebx
call fcn.0045ae50
mov eax, dword [ebx + 0x7c]
test al, al
jns 0x465e6b
test eax, 0x600000
je 0x46544b
mov edx, str.libpng_does_not_support_gammabackgroundrgb_to_gray
mov ecx, ebx
call fcn.00454fe0
cmp byte [ebx + 0x14f], 3
mov al, byte [ebx + 0x15a]
jne 0x465b35
cmp al, 2
jne 0x4654b4
mov edx, dword [ebx + 0x188]
movzx edi, word [ebx + 0x162]
movzx esi, word [ebx + 0x164]
movzx ecx, word [ebx + 0x166]
movzx eax, byte [edx + edi]
mov byte [esp + 0x10], al
movzx eax, byte [edx + esi]
mov byte [esp + 0x11], al
mov al, byte [edx + ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x194]
mov dl, byte [eax + edi]
mov dword [esp + 0x20], edx
mov dl, byte [eax + esi]
mov al, byte [eax + ecx]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
jmp 0x465980
movzx eax, al
sub eax, 1
je 0x4657dc
sub eax, 1
je 0x465587
sub eax, 1
je 0x4654d8
mov esi, 0x186a0
jmp 0x4657e2
mov edi, dword [ebx + 0x15c]
sub esp, 8
movsd xmm0, qword [0x4f3ea0]
movd xmm1, edi
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x46553a
comisd xmm1, xmmword [0x4f40e8]
jb 0x46553a
cvttsd2si esi, xmm1
jmp 0x46553c
xor esi, esi
test edi, edi
je 0x46565f
mov eax, dword [ebx + 0x184]
test eax, eax
je 0x46565f
movsd xmm1, qword [0x4f3f40]
xorps xmm0, xmm0
cvtsi2sd xmm0, edi
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x4f3d40]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
jmp 0x465629
mov edi, dword [ebx + 0x2bc]
sub esp, 8
movsd xmm0, qword [0x4f3ea0]
movd xmm1, edi
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x4655e9
comisd xmm1, xmmword [0x4f40e8]
jb 0x4655e9
cvttsd2si esi, xmm1
jmp 0x4655eb
xor esi, esi
test edi, edi
je 0x46565f
mov eax, dword [ebx + 0x184]
test eax, eax
je 0x46565f
movsd xmm1, qword [0x4f3f40]
xorps xmm0, xmm0
cvtsi2sd xmm0, edi
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x4f3d40]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
sub esp, 8
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x46565f
comisd xmm1, xmmword [0x4f40e8]
jb 0x46565f
cvttsd2si ecx, xmm1
jmp 0x465661
xor ecx, ecx
lea eax, [ecx - 0x17318]
cmp eax, 0x2710
jbe 0x4657e2
movzx eax, word [ebx + 0x162]
test eax, eax
je 0x4656e7
cmp eax, 0xff
jae 0x4656e7
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, eax
cvtsi2sd xmm1, ecx
divsd xmm0, qword [0x4f3df0]
movsd qword [esp + 0x38], xmm1
mulsd xmm1, qword [0x4f3c80]
call fcn.004c19f0
mulsd xmm0, qword [0x4f3df0]
sub esp, 8
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.004c6120
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
jmp 0x4656ef
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov byte [esp + 0x10], al
movzx eax, word [ebx + 0x164]
mov ecx, eax
mov dword [esp + 0x14], ecx
test eax, eax
je 0x465767
cmp eax, 0xff
jae 0x465767
xorps xmm0, xmm0
mulsd xmm1, qword [0x4f3c80]
cvtsi2sd xmm0, eax
movsd qword [esp + 0x38], xmm1
divsd xmm0, qword [0x4f3df0]
call fcn.004c19f0
mulsd xmm0, qword [0x4f3df0]
sub esp, 8
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.004c6120
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
jmp 0x465773
mulsd xmm1, qword [0x4f3c80]
mov dword [esp + 0x14], ecx
movzx edx, word [ebx + 0x166]
mov byte [esp + 0x11], al
movzx eax, dx
mov dword [esp + 0x18], edx
test eax, eax
je 0x465805
cmp eax, 0xff
jae 0x465805
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm0, qword [0x4f3df0]
call fcn.004c19f0
mulsd xmm0, qword [0x4f3df0]
sub esp, 8
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
fstp qword [esp + 0x40]
cvttsd2si edx, qword [esp + 0x40]
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x465809
mov esi, dword [ebx + 0x184]
movzx eax, byte [ebx + 0x162]
mov cl, byte [ebx + 0x164]
mov byte [esp + 0x10], al
mov al, byte [ebx + 0x166]
mov byte [esp + 0x11], cl
mov byte [esp + 0x18], al
mov byte [esp + 0x14], cl
mov byte [esp + 0x1c], al
lea eax, [esi - 0x17318]
cmp eax, 0x2710
ja 0x465825
mov al, byte [ebx + 0x162]
mov dword [esp + 0x20], eax
jmp 0x465980
movzx eax, word [ebx + 0x162]
test eax, eax
je 0x46589e
cmp eax, 0xff
jae 0x46589e
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, eax
cvtsi2sd xmm1, esi
divsd xmm0, qword [0x4f3df0]
movsd qword [esp + 0x38], xmm1
mulsd xmm1, qword [0x4f3c80]
call fcn.004c19f0
mulsd xmm0, qword [0x4f3df0]
sub esp, 8
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.004c6120
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si ecx, qword [esp + 0x28]
mov dword [esp + 0x20], ecx
jmp 0x4658aa
movd xmm1, esi
mov byte [esp + 0x20], al
cvtdq2pd xmm1, xmm1
movzx eax, word [ebx + 0x164]
test eax, eax
je 0x465918
cmp eax, 0xff
jae 0x465918
xorps xmm0, xmm0
mulsd xmm1, qword [0x4f3c80]
cvtsi2sd xmm0, eax
movsd qword [esp + 0x38], xmm1
divsd xmm0, qword [0x4f3df0]
call fcn.004c19f0
mulsd xmm0, qword [0x4f3df0]
sub esp, 8
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.004c6120
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
jmp 0x465920
mulsd xmm1, qword [0x4f3c80]
mov byte [esp + 0x14], al
movzx eax, word [ebx + 0x166]
test eax, eax
je 0x46597c
cmp eax, 0xff
jae 0x46597c
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm0, qword [0x4f3df0]
call fcn.004c19f0
mulsd xmm0, qword [0x4f3df0]
sub esp, 8
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
fstp qword [esp + 0x40]
cvttsd2si eax, qword [esp + 0x40]
add esp, 8
mov byte [esp + 0x18], al
movzx eax, word [ebx + 0x140]
xor edx, edx
mov dword [esp + 0x24], edx
test eax, eax
je 0x465b26
mov esi, dword [ebx + 0x13c]
movzx eax, word [ebx + 0x148]
add esi, 2
mov dword [esp + 0x28], esi
nop dword [eax]
cmp edx, eax
jae 0x465adf
mov eax, dword [ebx + 0x1ac]
mov dword [esp + 0x38], eax
mov al, byte [eax + edx]
cmp al, 0xff
je 0x465adf
test al, al
jne 0x4659e3
mov ax, word [esp + 0x10]
mov word [esi - 2], ax
mov eax, dword [esp + 0x1c]
jmp 0x465b02
mov edi, dword [ebx + 0x194]
mov ecx, 0xff
movzx edx, al
movzx eax, byte [esi - 2]
sub ecx, edx
movzx ecx, cx
mov ebx, dword [ebx + 0x190]
movzx esi, byte [eax + edi]
mov eax, dword [esp + 0x20]
movzx eax, al
imul ecx, eax
mov eax, 0x80
imul esi, edx
mov edx, dword [esp + 0x38]
add si, cx
add si, ax
movzx eax, si
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
movzx eax, cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [eax + ebx]
mov byte [ecx - 2], al
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
movzx eax, byte [ecx - 1]
mov ecx, 0xff
sub ecx, edx
movzx ecx, cx
movzx esi, byte [eax + edi]
mov eax, dword [esp + 0x14]
movzx eax, al
imul ecx, eax
mov eax, 0x80
imul esi, edx
mov edx, dword [esp + 0x38]
add si, cx
add si, ax
movzx eax, si
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
movzx eax, cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [eax + ebx]
mov byte [ecx - 1], al
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
movzx eax, byte [ecx]
mov ecx, 0xff
sub ecx, edx
movzx ecx, cx
movzx esi, byte [eax + edi]
mov eax, dword [esp + 0x18]
movzx eax, al
imul ecx, eax
mov eax, 0x80
imul esi, edx
mov edx, dword [esp + 0x24]
add si, cx
add si, ax
movzx eax, si
mov esi, dword [esp + 0x28]
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
movzx eax, cl
movzx eax, byte [eax + ebx]
mov ebx, dword [esp + 0x34]
jmp 0x465b02
mov ecx, dword [ebx + 0x188]
movzx eax, byte [esi - 2]
movzx eax, byte [eax + ecx]
mov byte [esi - 2], al
movzx eax, byte [esi - 1]
movzx eax, byte [eax + ecx]
mov byte [esi - 1], al
movzx eax, byte [esi]
movzx eax, byte [eax + ecx]
mov byte [esi], al
inc edx
movzx eax, word [ebx + 0x140]
add esi, 3
cmp edx, eax
mov dword [esp + 0x24], edx
movzx eax, word [ebx + 0x148]
mov dword [esp + 0x28], esi
jl 0x4659b0
and dword [ebx + 0x7c], 0xffffdf7f
mov edx, dword [ebx + 0x7c]
jmp 0x465ed8
movzx eax, al
mov esi, 0x186a0
sub eax, 1
je 0x465cee
sub eax, 1
je 0x465c43
sub eax, 1
jne 0x465fb5
mov esi, dword [ebx + 0x15c]
sub esp, 8
movsd xmm0, qword [0x4f3ea0]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x465bba
comisd xmm1, xmmword [0x4f40e8]
jb 0x465bba
cvttsd2si edi, xmm1
jmp 0x465bbc
xor edi, edi
test esi, esi
je 0x465cea
mov eax, dword [ebx + 0x184]
test eax, eax
je 0x465cea
movsd xmm1, qword [0x4f3f40]
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x4f3d40]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
sub esp, 8
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x465cea
comisd xmm1, xmmword [0x4f40e8]
jb 0x465cea
cvttsd2si esi, xmm1
jmp 0x465cf4
mov esi, dword [ebx + 0x2bc]
sub esp, 8
movsd xmm0, qword [0x4f3ea0]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x4f3d40]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.004c6120
movsd xmm0, qword [0x4f3e88]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x465ca5
comisd xmm1, xmmword [0x4f40e8]
jb 0x465ca5
cvttsd2si edi, xmm1
jmp 0x465ca7
xor edi, edi
test esi, esi
je 0x465cea
mov eax, dword [ebx + 0x184]
test eax, eax
je 0x465cea
movsd xmm1, qword [0x4f3f40]
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x4f3d40]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
jmp 0x465c02
xor esi, esi
jmp 0x465cf4
mov edi, dword [ebx + 0x184]
lea eax, [edi - 0x17318]
lea ecx, [esi - 0x17318]
cmp eax, 0x2710
jbe 0x465d26
movzx edx, word [ebx + 0x168]
mov ecx, ebx
push edi
call fcn.0045a620
add esp, 4
mov word [ebx + 0x172], ax
lea ecx, [esi - 0x17318]
cmp ecx, 0x2710
jbe 0x465d47
movzx edx, word [ebx + 0x168]
mov ecx, ebx
push esi
call fcn.0045a620
add esp, 4
mov word [ebx + 0x168], ax
movzx eax, word [ebx + 0x162]
movzx ecx, word [ebx + 0x164]
mov edx, eax
cmp ax, cx
jne 0x465db1
cmp ax, word [ebx + 0x166]
jne 0x465db1
movzx ecx, word [ebx + 0x168]
cmp ax, cx
jne 0x465db1
movzx eax, word [ebx + 0x172]
mov edx, dword [ebx + 0x7c]
mov word [ebx + 0x170], ax
mov word [ebx + 0x16e], ax
mov word [ebx + 0x16c], ax
mov word [ebx + 0x166], cx
mov word [ebx + 0x164], cx
mov word [ebx + 0x162], cx
mov byte [ebx + 0x15a], 1
jmp 0x465ed8
lea ecx, [edi - 0x17318]
cmp ecx, 0x2710
jbe 0x465e0b
push edi
mov ecx, ebx
mov dword [esp + 0x3c], edx
call fcn.0045a620
movzx edx, word [ebx + 0x164]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x16c], ax
push edi
call fcn.0045a620
movzx edx, word [ebx + 0x166]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x16e], ax
push edi
call fcn.0045a620
mov word [ebx + 0x170], ax
add esp, 4
mov eax, dword [esp + 0x38]
lea ecx, [esi - 0x17318]
cmp ecx, 0x2710
jbe 0x465e5f
push esi
mov edx, eax
mov ecx, ebx
call fcn.0045a620
movzx edx, word [ebx + 0x164]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x162], ax
push esi
call fcn.0045a620
movzx edx, word [ebx + 0x166]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x164], ax
push esi
call fcn.0045a620
add esp, 4
mov word [ebx + 0x166], ax
mov edx, dword [ebx + 0x7c]
mov byte [ebx + 0x15a], 1
jmp 0x465ed8
cmp byte [ebx + 0x14f], 3
mov edx, eax
jne 0x465ed8
test eax, 0x600000
setne cl
bt eax, 0xc
setb al
test al, cl
jne 0x465ed8
movzx esi, word [ebx + 0x140]
mov ecx, dword [ebx + 0x13c]
test esi, esi
je 0x465ecc
mov edx, dword [ebx + 0x188]
add ecx, 2
movzx eax, byte [ecx - 2]
lea ecx, [ecx + 3]
movzx eax, byte [eax + edx]
mov byte [ecx - 5], al
movzx eax, byte [ecx - 4]
movzx eax, byte [eax + edx]
mov byte [ecx - 4], al
movzx eax, byte [ecx - 3]
movzx eax, byte [eax + edx]
mov byte [ecx - 3], al
sub esi, 1
jne 0x465ea3
mov edx, dword [ebx + 0x7c]
and edx, 0xffffdfff
mov dword [ebx + 0x7c], edx
mov eax, edx
and eax, 0x1008
cmp eax, 8
jne 0x465fae
cmp byte [ebx + 0x14f], 3
jne 0x465fae
movzx eax, byte [ebx + 0x1a0]
mov ecx, 8
movzx esi, word [ebx + 0x140]
mov edi, ecx
sub edi, eax
and edx, 0xfffffff7
mov eax, edi
mov dword [esp + 0x38], edi
mov dword [ebx + 0x7c], edx
test eax, eax
jle 0x465f46
cmp eax, ecx
jge 0x465f46
test esi, esi
je 0x465f46
mov eax, dword [ebx + 0x13c]
mov edx, esi
mov ebx, edi
nop
mov cl, bl
lea eax, [eax + 3]
shr byte [eax - 3], cl
sub edx, 1
jne 0x465f30
mov ebx, dword [esp + 0x34]
mov ecx, 8
movzx eax, byte [ebx + 0x1a1]
mov edx, ecx
sub edx, eax
test edx, edx
jle 0x465f79
cmp edx, 8
jge 0x465f79
test esi, esi
je 0x465f79
mov eax, dword [ebx + 0x13c]
mov edi, esi
inc eax
mov cl, dl
lea eax, [eax + 3]
shr byte [eax - 3], cl
sub edi, 1
jne 0x465f67
mov ecx, 8
movzx eax, byte [ebx + 0x1a2]
sub ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x465fae
cmp ecx, 8
jge 0x465fae
test esi, esi
je 0x465fae
mov eax, dword [ebx + 0x13c]
add eax, 2
nop dword [eax]
shr byte [eax], cl
lea eax, [eax + 3]
mov ecx, dword [esp + 0x38]
sub esi, 1
jne 0x465fa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, str.invalid_background_gamma_type
mov ecx, ebx
call fcn.00454e90
int3