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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
movsd xmm1, qword [0x66c780]
movsd xmm2, qword [0x66c6e8]
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov dword [esp + 0x30], ebx
push edi
mov ecx, dword [ebx + 0x2dc]
mov eax, dword [ebx + 0x18c]
test ecx, ecx
je 0x44b212
sub esp, 8
test eax, eax
je 0x44b1b2
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm1, ecx
cvtsi2sd xmm0, eax
mulsd xmm1, xmm0
divsd xmm1, qword [0x66c768]
addsd xmm1, xmm2
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44b1a8
comisd xmm1, xmmword [0x66c7b8]
jb 0x44b1a8
cvttsd2si eax, xmm1
add eax, 0xfffe8ce8
cmp eax, 0x2710
jbe 0x44b28a
mov esi, 1
jmp 0x44b28a
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.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44b208
comisd xmm1, xmmword [0x66c7b8]
jb 0x44b208
cvttsd2si eax, xmm1
mov dword [ebx + 0x18c], eax
jmp 0x44b28a
xor eax, eax
mov dword [ebx + 0x18c], eax
jmp 0x44b28a
test eax, eax
je 0x44b276
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.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44b26c
comisd xmm1, xmmword [0x66c7b8]
jb 0x44b26c
cvttsd2si eax, xmm1
mov dword [ebx + 0x2dc], eax
jmp 0x44b28a
xor eax, eax
mov dword [ebx + 0x2dc], eax
jmp 0x44b28a
mov dword [ebx + 0x2dc], 0x186a0
mov dword [ebx + 0x18c], 0x186a0
mov ecx, dword [ebx + 0x7c]
mov eax, ecx
or word [ebx + 0x326], 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 0x44b2d1
and dword [ebx + 0x78], 0xffffdfff
and ecx, 0xfd7ffeff
xor eax, eax
mov dword [ebx + 0x7c], ecx
mov word [ebx + 0x150], ax
mov eax, dword [ebx + 0x18c]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b2f3
and ecx, 0xff7fffff
and dword [ebx + 0x78], 0xffffdfff
mov dword [ebx + 0x7c], ecx
test ecx, 0x600000
je 0x44b305
mov ecx, ebx
call fcn.00448a80
mov ecx, dword [ebx + 0x7c]
test ecx, 0x100
je 0x44b318
test byte [ebx + 0x157], 2
jne 0x44b34d
jmp 0x44b346
mov eax, ecx
and eax, 0x4080
cmp eax, 0x4080
jne 0x44b34d
movzx eax, word [ebx + 0x16a]
cmp ax, word [ebx + 0x16c]
jne 0x44b34d
cmp ax, word [ebx + 0x16e]
jne 0x44b34d
mov word [ebx + 0x170], ax
or dword [ebx + 0x74], 0x800
mov al, byte [ebx + 0x157]
mov byte [esp + 0xd], al
cmp al, 3
jne 0x44b36a
mov ecx, ebx
call fcn.0044afc0
mov edx, dword [ebx + 0x7c]
jmp 0x44b432
test al, 4
jne 0x44b391
and dword [ebx + 0x78], 0xffffdfff
and ecx, 0xff7fffff
cmp word [ebx + 0x150], 0
mov dword [ebx + 0x7c], ecx
ja 0x44b391
and ecx, 0xfffffe7f
mov dword [ebx + 0x7c], ecx
mov eax, ecx
mov edx, ecx
and eax, 0x1100
cmp eax, 0x1100
jne 0x44b432
test byte [esp + 0xd], 2
jne 0x44b432
movzx eax, byte [ebx + 0x158]
movzx edx, word [ebx + 0x170]
movzx esi, word [ebx + 0x1c0]
sub eax, 1
je 0x44b3ec
sub eax, 1
je 0x44b3e4
sub eax, 2
jne 0x44b3f8
mov eax, edx
shl edx, 4
add edx, eax
mov eax, esi
shl esi, 4
add esi, eax
jmp 0x44b3f8
imul edx, edx, 0x55
imul esi, esi, 0x55
jmp 0x44b3f8
imul edx, edx, 0xff
imul esi, esi, 0xff
movzx eax, dx
mov edx, ecx
mov word [ebx + 0x16e], ax
mov word [ebx + 0x16c], ax
mov word [ebx + 0x16a], ax
test ecx, 0x2000000
jne 0x44b432
movzx eax, si
mov word [ebx + 0x1be], ax
mov word [ebx + 0x1bc], ax
mov word [ebx + 0x1ba], ax
mov eax, edx
and eax, 0x380
cmp eax, 0x280
jne 0x44b4b9
cmp byte [ebx + 0x158], 0x10
je 0x44b4b9
movzx eax, word [ebx + 0x16a]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x16a], ax
movzx eax, word [ebx + 0x16c]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x16c], ax
movzx eax, word [ebx + 0x16e]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x16e], ax
movzx eax, word [ebx + 0x170]
add eax, 0x81
imul eax, eax, 0xff
shr eax, 0x10
mov word [ebx + 0x170], ax
test edx, 0x4000400
setne cl
test dl, 0x80
setne al
test al, cl
je 0x44b526
test edx, 0x100
jne 0x44b526
cmp byte [ebx + 0x158], 0x10
jne 0x44b526
movzx ecx, word [ebx + 0x16a]
mov esi, 0x101
imul ecx, esi
mov word [ebx + 0x16a], cx
movzx ecx, word [ebx + 0x16c]
imul ecx, esi
mov word [ebx + 0x16c], cx
movzx ecx, word [ebx + 0x16e]
imul ecx, esi
mov word [ebx + 0x16e], cx
movzx ecx, word [ebx + 0x170]
imul ecx, esi
mov word [ebx + 0x170], cx
movq xmm0, qword [ebx + 0x168]
mov ax, word [ebx + 0x170]
movq qword [ebx + 0x172], xmm0
mov word [ebx + 0x17a], ax
test edx, 0x2000
jne 0x44b75e
test edx, 0x600000
je 0x44b584
mov eax, dword [ebx + 0x2dc]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b75e
mov eax, dword [ebx + 0x18c]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b75e
test dl, dl
jns 0x44b5d3
mov eax, dword [ebx + 0x2dc]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b75e
mov eax, dword [ebx + 0x18c]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b75e
cmp byte [ebx + 0x162], 3
jne 0x44b5d3
mov eax, dword [ebx + 0x164]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b75e
mov ecx, dword [ebx + 0x7c]
mov dword [esp + 0x24], ecx
test ecx, 0x800000
je 0x44b5f8
mov eax, dword [ebx + 0x18c]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x44b75e
mov edx, ecx
test cl, cl
jns 0x44c1e8
cmp byte [ebx + 0x157], 3
jne 0x44c1e8
mov al, byte [ebx + 0x16a]
movzx esi, word [ebx + 0x150]
mov dl, byte [ebx + 0x16e]
mov edi, dword [ebx + 0x144]
mov byte [esp + 0xe], al
mov byte [esp + 0x10], al
mov al, byte [ebx + 0x16c]
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 0x44b751
mov ecx, dword [ebx + 0x1b4]
add edi, 2
mov ebx, ecx
nop
mov cl, byte [ebx + eax]
test cl, cl
jne 0x44b677
mov cx, word [esp + 0x10]
mov word [edi - 2], cx
mov byte [edi], dl
jmp 0x44b739
cmp cl, 0xff
je 0x44b739
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 0x44b660
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov edx, ecx
and edx, 0xffffff7f
jmp 0x44c1e5
movzx edx, byte [ebx + 0x158]
mov ecx, ebx
call fcn.00449900
mov eax, dword [ebx + 0x7c]
test al, al
jns 0x44c17b
test eax, 0x600000
je 0x44b78a
mov edx, str.libpng_does_not_support_gammabackgroundrgb_to_gray
mov ecx, ebx
call fcn.00449ee0
cmp byte [ebx + 0x157], 3
mov al, byte [ebx + 0x162]
jne 0x44be5d
mov edi, dword [ebx + 0x144]
cmp al, 2
jne 0x44b7ff
mov edx, dword [ebx + 0x190]
movzx edi, word [ebx + 0x16a]
movzx esi, word [ebx + 0x16c]
movzx ecx, word [ebx + 0x16e]
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 + 0x19c]
mov dl, byte [eax + edi]
mov edi, dword [ebx + 0x144]
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 0x44bcb5
movzx eax, al
sub eax, 1
je 0x44bb11
sub eax, 1
je 0x44b8c2
sub eax, 1
je 0x44b823
mov esi, 0x186a0
jmp 0x44bb17
movd xmm1, dword [ebx + 0x164]
sub esp, 8
movsd xmm0, qword [0x66c780]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44b883
comisd xmm1, xmmword [0x66c7b8]
jb 0x44b883
cvttsd2si esi, xmm1
jmp 0x44b885
xor esi, esi
movsd xmm1, qword [0x66c7a0]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x164]
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x18c]
divsd xmm1, xmm0
addsd xmm1, qword [0x66c6e8]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
jmp 0x44b95c
movd xmm1, dword [ebx + 0x2dc]
sub esp, 8
movsd xmm0, qword [0x66c780]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44b922
comisd xmm1, xmmword [0x66c7b8]
jb 0x44b922
cvttsd2si esi, xmm1
jmp 0x44b924
xor esi, esi
movsd xmm1, qword [0x66c7a0]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x2dc]
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x18c]
divsd xmm1, xmm0
addsd xmm1, qword [0x66c6e8]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
sub esp, 8
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44b992
comisd xmm1, xmmword [0x66c7b8]
jb 0x44b992
cvttsd2si ecx, xmm1
jmp 0x44b994
xor ecx, ecx
lea eax, [ecx - 0x17318]
cmp eax, 0x2710
jbe 0x44bb17
movzx eax, word [ebx + 0x16a]
test eax, eax
je 0x44ba1c
cmp eax, 0xff
jae 0x44ba1c
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movd xmm1, ecx
divsd xmm0, qword [0x66c748]
cvtdq2pd xmm1, xmm1
movsd qword [esp + 0x38], xmm1
mulsd xmm1, qword [0x66c6b0]
call fcn.0060eca0
mulsd xmm0, qword [0x66c748]
sub esp, 8
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.005fe940
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
jmp 0x44ba24
movd xmm1, ecx
cvtdq2pd xmm1, xmm1
mov byte [esp + 0x10], al
movzx eax, word [ebx + 0x16c]
mov ecx, eax
mov dword [esp + 0x14], ecx
test eax, eax
je 0x44ba9c
cmp eax, 0xff
jae 0x44ba9c
xorps xmm0, xmm0
mulsd xmm1, qword [0x66c6b0]
cvtsi2sd xmm0, eax
movsd qword [esp + 0x38], xmm1
divsd xmm0, qword [0x66c748]
call fcn.0060eca0
mulsd xmm0, qword [0x66c748]
sub esp, 8
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.005fe940
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
jmp 0x44baa8
mulsd xmm1, qword [0x66c6b0]
mov dword [esp + 0x14], ecx
movzx edx, word [ebx + 0x16e]
mov byte [esp + 0x11], al
movzx eax, dx
mov dword [esp + 0x18], edx
test eax, eax
je 0x44bb3a
cmp eax, 0xff
jae 0x44bb3a
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm0, qword [0x66c748]
call fcn.0060eca0
mulsd xmm0, qword [0x66c748]
sub esp, 8
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
fstp qword [esp + 0x40]
cvttsd2si edx, qword [esp + 0x40]
add esp, 8
mov dword [esp + 0x1c], edx
jmp 0x44bb3e
mov esi, dword [ebx + 0x18c]
movzx eax, byte [ebx + 0x16a]
mov cl, byte [ebx + 0x16c]
mov byte [esp + 0x10], al
mov al, byte [ebx + 0x16e]
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 0x44bb5a
mov al, byte [ebx + 0x16a]
mov dword [esp + 0x20], eax
jmp 0x44bcb5
movzx eax, word [ebx + 0x16a]
test eax, eax
je 0x44bbd3
cmp eax, 0xff
jae 0x44bbd3
xorps xmm0, xmm0
xorps xmm1, xmm1
cvtsi2sd xmm0, eax
cvtsi2sd xmm1, esi
divsd xmm0, qword [0x66c748]
movsd qword [esp + 0x38], xmm1
mulsd xmm1, qword [0x66c6b0]
call fcn.0060eca0
mulsd xmm0, qword [0x66c748]
sub esp, 8
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.005fe940
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si ecx, qword [esp + 0x28]
mov dword [esp + 0x20], ecx
jmp 0x44bbdf
movd xmm1, esi
mov byte [esp + 0x20], al
cvtdq2pd xmm1, xmm1
movzx eax, word [ebx + 0x16c]
test eax, eax
je 0x44bc4d
cmp eax, 0xff
jae 0x44bc4d
xorps xmm0, xmm0
mulsd xmm1, qword [0x66c6b0]
cvtsi2sd xmm0, eax
movsd qword [esp + 0x38], xmm1
divsd xmm0, qword [0x66c748]
call fcn.0060eca0
mulsd xmm0, qword [0x66c748]
sub esp, 8
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x30], xmm0
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.005fe940
movsd xmm1, qword [esp + 0x40]
add esp, 8
fstp qword [esp + 0x28]
cvttsd2si eax, qword [esp + 0x28]
jmp 0x44bc55
mulsd xmm1, qword [0x66c6b0]
mov byte [esp + 0x14], al
movzx eax, word [ebx + 0x16e]
test eax, eax
je 0x44bcb1
cmp eax, 0xff
jae 0x44bcb1
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm0, qword [0x66c748]
call fcn.0060eca0
mulsd xmm0, qword [0x66c748]
sub esp, 8
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
fstp qword [esp + 0x40]
cvttsd2si eax, qword [esp + 0x40]
add esp, 8
mov byte [esp + 0x18], al
movzx eax, word [ebx + 0x148]
xor edx, edx
mov dword [esp + 0x24], edx
test eax, eax
je 0x44be4e
movzx eax, word [ebx + 0x150]
lea esi, [edi + 2]
mov dword [esp + 0x28], esi
cmp edx, eax
jae 0x44be07
mov eax, dword [ebx + 0x1b4]
mov dword [esp + 0x38], eax
mov al, byte [eax + edx]
cmp al, 0xff
je 0x44be07
test al, al
jne 0x44bd0b
mov ax, word [esp + 0x10]
mov word [esi - 2], ax
mov eax, dword [esp + 0x1c]
jmp 0x44be2a
mov edi, dword [ebx + 0x19c]
mov ecx, 0xff
movzx edx, al
movzx eax, byte [esi - 2]
sub ecx, edx
movzx ecx, cx
mov ebx, dword [ebx + 0x198]
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 0x44be2a
mov ecx, dword [ebx + 0x190]
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 + 0x148]
add esi, 3
cmp edx, eax
mov dword [esp + 0x24], edx
movzx eax, word [ebx + 0x150]
mov dword [esp + 0x28], esi
jl 0x44bcd8
and dword [ebx + 0x7c], 0xffffdf7f
mov edx, dword [ebx + 0x7c]
jmp 0x44c1e8
movzx eax, al
mov esi, 0x186a0
sub eax, 1
je 0x44bffe
sub eax, 1
je 0x44bf5b
sub eax, 1
jne 0x44c2c5
movd xmm1, dword [ebx + 0x164]
sub esp, 8
movsd xmm0, qword [0x66c780]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44bee0
comisd xmm1, xmmword [0x66c7b8]
jb 0x44bee0
cvttsd2si edi, xmm1
jmp 0x44bee2
xor edi, edi
movsd xmm1, qword [0x66c7a0]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x164]
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x18c]
divsd xmm1, xmm0
addsd xmm1, qword [0x66c6e8]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
sub esp, 8
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44bffa
comisd xmm1, xmmword [0x66c7b8]
jb 0x44bffa
cvttsd2si esi, xmm1
jmp 0x44c004
movd xmm1, dword [ebx + 0x2dc]
sub esp, 8
movsd xmm0, qword [0x66c780]
cvtdq2pd xmm1, xmm1
divsd xmm0, xmm1
addsd xmm0, qword [0x66c6e8]
movsd qword [esp + 0x40], xmm0
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005fe940
movsd xmm0, qword [0x66c778]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
jb 0x44bfbb
comisd xmm1, xmmword [0x66c7b8]
jb 0x44bfbb
cvttsd2si edi, xmm1
jmp 0x44bfbd
xor edi, edi
movsd xmm1, qword [0x66c7a0]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x2dc]
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [ebx + 0x18c]
divsd xmm1, xmm0
addsd xmm1, qword [0x66c6e8]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
jmp 0x44bf1a
xor esi, esi
jmp 0x44c004
mov edi, dword [ebx + 0x18c]
lea eax, [edi - 0x17318]
lea ecx, [esi - 0x17318]
cmp eax, 0x2710
jbe 0x44c036
movzx edx, word [ebx + 0x170]
mov ecx, ebx
push edi
call fcn.004490f0
add esp, 4
mov word [ebx + 0x17a], ax
lea ecx, [esi - 0x17318]
cmp ecx, 0x2710
jbe 0x44c057
movzx edx, word [ebx + 0x170]
mov ecx, ebx
push esi
call fcn.004490f0
add esp, 4
mov word [ebx + 0x170], ax
movzx eax, word [ebx + 0x16a]
movzx ecx, word [ebx + 0x16c]
mov edx, eax
cmp ax, cx
jne 0x44c0c1
cmp ax, word [ebx + 0x16e]
jne 0x44c0c1
movzx ecx, word [ebx + 0x170]
cmp ax, cx
jne 0x44c0c1
movzx eax, word [ebx + 0x17a]
mov edx, dword [ebx + 0x7c]
mov word [ebx + 0x178], ax
mov word [ebx + 0x176], ax
mov word [ebx + 0x174], ax
mov word [ebx + 0x16e], cx
mov word [ebx + 0x16c], cx
mov word [ebx + 0x16a], cx
mov byte [ebx + 0x162], 1
jmp 0x44c1e8
lea ecx, [edi - 0x17318]
cmp ecx, 0x2710
jbe 0x44c11b
push edi
mov ecx, ebx
mov dword [esp + 0x3c], edx
call fcn.004490f0
movzx edx, word [ebx + 0x16c]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x174], ax
push edi
call fcn.004490f0
movzx edx, word [ebx + 0x16e]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x176], ax
push edi
call fcn.004490f0
mov word [ebx + 0x178], ax
add esp, 4
mov eax, dword [esp + 0x38]
lea ecx, [esi - 0x17318]
cmp ecx, 0x2710
jbe 0x44c16f
push esi
mov edx, eax
mov ecx, ebx
call fcn.004490f0
movzx edx, word [ebx + 0x16c]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x16a], ax
push esi
call fcn.004490f0
movzx edx, word [ebx + 0x16e]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x16c], ax
push esi
call fcn.004490f0
add esp, 4
mov word [ebx + 0x16e], ax
mov edx, dword [ebx + 0x7c]
mov byte [ebx + 0x162], 1
jmp 0x44c1e8
cmp byte [ebx + 0x157], 3
mov edx, eax
jne 0x44c1e8
test eax, 0x600000
setne cl
bt eax, 0xc
setb al
test al, cl
jne 0x44c1e8
movzx esi, word [ebx + 0x148]
mov ecx, dword [ebx + 0x144]
test esi, esi
je 0x44c1dc
mov edx, dword [ebx + 0x190]
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 0x44c1b3
mov edx, dword [ebx + 0x7c]
and edx, 0xffffdfff
mov dword [ebx + 0x7c], edx
mov eax, edx
and eax, 0x1008
cmp eax, 8
jne 0x44c2be
cmp byte [ebx + 0x157], 3
jne 0x44c2be
movzx eax, byte [ebx + 0x1a8]
mov ecx, 8
movzx esi, word [ebx + 0x148]
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 0x44c256
cmp eax, ecx
jge 0x44c256
test esi, esi
je 0x44c256
mov eax, dword [ebx + 0x144]
mov edx, esi
mov ebx, edi
nop
mov cl, bl
lea eax, [eax + 3]
shr byte [eax - 3], cl
sub edx, 1
jne 0x44c240
mov ebx, dword [esp + 0x34]
mov ecx, 8
movzx eax, byte [ebx + 0x1a9]
mov edx, ecx
sub edx, eax
test edx, edx
jle 0x44c289
cmp edx, 8
jge 0x44c289
test esi, esi
je 0x44c289
mov eax, dword [ebx + 0x144]
mov edi, esi
inc eax
mov cl, dl
lea eax, [eax + 3]
shr byte [eax - 3], cl
sub edi, 1
jne 0x44c277
mov ecx, 8
movzx eax, byte [ebx + 0x1aa]
sub ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x44c2be
cmp ecx, 8
jge 0x44c2be
test esi, esi
je 0x44c2be
mov eax, dword [ebx + 0x144]
add eax, 2
nop dword [eax]
shr byte [eax], cl
lea eax, [eax + 3]
mov ecx, dword [esp + 0x38]
sub esi, 1
jne 0x44c2b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, str.invalid_background_gamma_type
mov ecx, ebx
call fcn.00449d90
int3