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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
push ebx
mov ebx, ecx
push esi
xor esi, esi
mov dword [esp + 0x30], ebx
push edi
mov eax, dword [ebx + 0x2c4]
mov ecx, dword [ebx + 0x188]
test eax, eax
je 0x4188ce
test ecx, ecx
je 0x4188bf
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm1, eax
sub esp, 8
cvtsi2sd xmm0, ecx
mulsd xmm1, xmm0
divsd xmm1, qword [0x5e50e0]
addsd xmm1, qword [0x5e4f70]
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005a1660
movsd xmm1, qword [0x5e5108]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
comisd xmm1, xmm0
jb 0x4188b8
comisd xmm0, xmmword [0x5e5188]
jb 0x4188b8
cvttsd2si eax, xmm0
add eax, 0xfffe8ce8
cmp eax, 0x2710
jbe 0x4188f3
mov esi, 1
jmp 0x4188f3
mov ecx, eax
call fcn.004120c0
mov dword [ebx + 0x188], eax
jmp 0x4188f3
test ecx, ecx
je 0x4188df
call fcn.004120c0
mov dword [ebx + 0x2c4], eax
jmp 0x4188f3
mov dword [ebx + 0x2c4], 0x186a0
mov dword [ebx + 0x188], 0x186a0
mov edx, dword [ebx + 0x7c]
mov eax, edx
or word [ebx + 0x30e], 1
and eax, 0xffffdfff
or edx, 0x2000
test esi, esi
cmove edx, eax
mov eax, edx
mov dword [ebx + 0x7c], edx
and eax, 0x40080
cmp eax, 0x40000
jne 0x41893a
and dword [ebx + 0x78], 0xffffdfff
and edx, 0xfd7ffeff
xor eax, eax
mov dword [ebx + 0x7c], edx
mov word [ebx + 0x148], ax
mov eax, dword [ebx + 0x188]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x41895c
and edx, 0xff7fffff
and dword [ebx + 0x78], 0xffffdfff
mov dword [ebx + 0x7c], edx
mov ecx, edx
test edx, 0x600000
je 0x418aba
cmp byte [ebx + 0x249], 0
jne 0x418aba
test byte [ebx + 0x30e], 2
je 0x418aba
mov eax, dword [ebx + 0x2f8]
mov ecx, dword [ebx + 0x304]
mov edx, dword [ebx + 0x2ec]
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], eax
lea esi, [ecx + eax]
mov dword [esp + 0x2c], eax
add esi, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], esi
test esi, esi
jle 0x4196f6
test edx, edx
js 0x4196f6
push esi
push 0x8000
lea ecx, [esp + 0x38]
call fcn.00412010
add esp, 8
test eax, eax
je 0x4196f6
mov edi, dword [esp + 0x30]
cmp edi, 0x8000
ja 0x4196f6
mov edx, dword [esp + 0x38]
test edx, edx
js 0x4196f6
push esi
push 0x8000
lea ecx, [esp + 0x34]
call fcn.00412010
add esp, 8
test eax, eax
je 0x4196f6
mov esi, dword [esp + 0x2c]
cmp esi, 0x8000
ja 0x4196f6
mov edx, dword [esp + 0x24]
test edx, edx
js 0x4196f6
push dword [esp + 0x20]
lea ecx, [esp + 0x2c]
push 0x8000
call fcn.00412010
add esp, 8
test eax, eax
je 0x4196f6
mov ecx, dword [esp + 0x28]
cmp ecx, 0x8000
ja 0x4196f6
lea eax, [ecx + esi]
add eax, edi
cmp eax, 0x8001
jg 0x4196f6
cmp eax, 0x8000
jle 0x418a78
or eax, 0xffffffff
jmp 0x418a7f
jge 0x418a99
mov eax, 1
cmp edi, esi
jg 0x418a8f
cmp esi, ecx
jl 0x418a8b
add esi, eax
jmp 0x418a99
cmp edi, esi
jl 0x418a97
cmp edi, ecx
jl 0x418a97
add edi, eax
jmp 0x418a99
add ecx, eax
lea eax, [ecx + esi]
add eax, edi
cmp eax, 0x8000
jne 0x4196ea
mov ecx, dword [ebx + 0x7c]
mov word [ebx + 0x24a], di
mov word [ebx + 0x24c], si
test ecx, 0x100
je 0x418acd
test byte [ebx + 0x14f], 2
jne 0x418b02
jmp 0x418afb
mov eax, ecx
and eax, 0x4080
cmp eax, 0x4080
jne 0x418b02
movzx eax, word [ebx + 0x166]
cmp ax, word [ebx + 0x168]
jne 0x418b02
cmp ax, word [ebx + 0x16a]
jne 0x418b02
mov word [ebx + 0x16c], ax
or dword [ebx + 0x74], 0x800
mov al, byte [ebx + 0x14f]
mov byte [esp + 0x19], al
cmp al, 3
jne 0x418b1f
mov ecx, ebx
call fcn.004186e0
mov edx, dword [ebx + 0x7c]
jmp 0x418be7
test al, 4
jne 0x418b46
and dword [ebx + 0x78], 0xffffdfff
and ecx, 0xff7fffff
cmp word [ebx + 0x148], 0
mov dword [ebx + 0x7c], ecx
ja 0x418b46
and ecx, 0xfffffe7f
mov dword [ebx + 0x7c], ecx
mov eax, ecx
mov edx, ecx
and eax, 0x1100
cmp eax, 0x1100
jne 0x418be7
test byte [esp + 0x19], 2
jne 0x418be7
movzx eax, byte [ebx + 0x150]
movzx edx, word [ebx + 0x16c]
movzx esi, word [ebx + 0x1bc]
sub eax, 1
je 0x418ba1
sub eax, 1
je 0x418b99
sub eax, 2
jne 0x418bad
mov eax, edx
shl edx, 4
add edx, eax
mov eax, esi
shl esi, 4
add esi, eax
jmp 0x418bad
imul edx, edx, 0x55
imul esi, esi, 0x55
jmp 0x418bad
imul edx, edx, 0xff
imul esi, esi, 0xff
movzx eax, dx
mov edx, ecx
mov word [ebx + 0x16a], ax
mov word [ebx + 0x168], ax
mov word [ebx + 0x166], ax
test ecx, 0x2000000
jne 0x418be7
movzx eax, si
mov word [ebx + 0x1ba], ax
mov word [ebx + 0x1b8], ax
mov word [ebx + 0x1b6], ax
mov eax, edx
and eax, 0x380
cmp eax, 0x280
jne 0x418c6e
cmp byte [ebx + 0x150], 0x10
je 0x418c6e
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
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
test edx, 0x4000400
setne cl
test dl, 0x80
setne al
test al, cl
je 0x418cdb
test edx, 0x100
jne 0x418cdb
cmp byte [ebx + 0x150], 0x10
jne 0x418cdb
movzx ecx, word [ebx + 0x166]
mov esi, 0x101
imul ecx, esi
mov word [ebx + 0x166], cx
movzx ecx, word [ebx + 0x168]
imul ecx, esi
mov word [ebx + 0x168], cx
movzx ecx, word [ebx + 0x16a]
imul ecx, esi
mov word [ebx + 0x16a], cx
movzx ecx, word [ebx + 0x16c]
imul ecx, esi
mov word [ebx + 0x16c], cx
movq xmm0, qword [ebx + 0x164]
mov ax, word [ebx + 0x16c]
movq qword [ebx + 0x16e], xmm0
mov word [ebx + 0x176], ax
test edx, 0x2000
jne 0x418f12
test edx, 0x600000
je 0x418d39
mov eax, dword [ebx + 0x2c4]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x418f12
mov eax, dword [ebx + 0x188]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x418f12
test dl, dl
jns 0x418d88
mov eax, dword [ebx + 0x2c4]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x418f12
mov eax, dword [ebx + 0x188]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x418f12
cmp byte [ebx + 0x15c], 3
jne 0x418d88
mov eax, dword [ebx + 0x160]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x418f12
mov ecx, dword [ebx + 0x7c]
mov dword [esp + 0x2c], ecx
test ecx, 0x800000
je 0x418dad
mov eax, dword [ebx + 0x188]
add eax, 0xfffe8ce8
cmp eax, 0x2710
ja 0x418f12
mov edx, ecx
test cl, cl
jns 0x419612
cmp byte [ebx + 0x14f], 3
jne 0x419612
mov al, byte [ebx + 0x166]
movzx esi, word [ebx + 0x148]
mov dl, byte [ebx + 0x16a]
mov edi, dword [ebx + 0x13c]
mov byte [esp + 0x1a], al
mov byte [esp + 0x1c], al
mov al, byte [ebx + 0x168]
mov byte [esp + 0x1b], al
mov byte [esp + 0x1d], al
xor eax, eax
mov dword [esp + 0x30], esi
mov byte [esp + 0x19], dl
mov dword [esp + 0x20], eax
test esi, esi
je 0x418f05
mov ecx, dword [ebx + 0x1b0]
add edi, 2
mov ebx, ecx
mov cl, byte [ebx + eax]
test cl, cl
jne 0x418e2b
mov cx, word [esp + 0x1c]
mov word [edi - 2], cx
mov byte [edi], dl
jmp 0x418eed
cmp cl, 0xff
je 0x418eed
movzx eax, byte [esp + 0x1a]
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 + 0x20]
shr ecx, 8
mov byte [edi - 2], cl
mov ecx, 0xff
movzx edx, byte [ebx + eax]
movzx eax, byte [esp + 0x1b]
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 + 0x20]
shr ecx, 8
mov byte [edi - 1], cl
mov ecx, 0xff
movzx edx, byte [ebx + eax]
movzx eax, byte [esp + 0x19]
sub ecx, edx
movzx esi, cx
imul esi, eax
movzx eax, byte [edi]
imul eax, edx
mov dl, byte [esp + 0x19]
add si, ax
mov eax, 0x80
add si, ax
movzx eax, si
mov esi, dword [esp + 0x30]
mov ecx, eax
shr ecx, 8
add ecx, eax
mov eax, dword [esp + 0x20]
shr ecx, 8
mov byte [edi], cl
inc eax
add edi, 3
mov dword [esp + 0x20], eax
cmp eax, esi
jl 0x418e14
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
and edx, 0xffffff7f
jmp 0x41960f
movzx edx, byte [ebx + 0x150]
mov ecx, ebx
call fcn.00412a50
mov eax, dword [ebx + 0x7c]
test al, al
jns 0x4195a0
test eax, 0x600000
je 0x418f73
mov eax, dword [ebx + 0x50]
push str.libpng_does_not_support_gammabackgroundrgb_to_gray
test eax, eax
je 0x418f43
push ebx
call eax
jmp 0x418f70
push str.libpng_warning:__s
push 2
call fcn.0057e032
add esp, 4
push eax
call fcn.0040ab30
add esp, 0xc
push 0x5e1a14
push 2
call fcn.0057e032
add esp, 4
push eax
call fcn.0040ab30
add esp, 8
cmp byte [ebx + 0x14f], 3
mov al, byte [ebx + 0x15c]
jne 0x41931f
cmp al, 2
jne 0x418fda
mov edx, dword [ebx + 0x18c]
movzx edi, word [ebx + 0x166]
movzx esi, word [ebx + 0x168]
movzx ecx, word [ebx + 0x16a]
mov al, byte [edx + edi]
mov byte [esp + 0x1c], al
mov al, byte [edx + esi]
mov byte [esp + 0x1d], al
mov al, byte [edx + ecx]
mov byte [esp + 0x19], al
mov eax, dword [ebx + 0x198]
mov dl, byte [eax + edi]
mov dword [esp + 0x20], edx
mov dl, byte [eax + esi]
mov al, byte [eax + ecx]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
jmp 0x419176
movzx eax, al
sub eax, 1
je 0x419103
sub eax, 1
je 0x41901d
sub eax, 1
je 0x418ffa
mov edi, 0x186a0
jmp 0x419109
mov esi, dword [ebx + 0x160]
mov ecx, esi
call fcn.004120c0
mov edx, dword [ebx + 0x188]
mov ecx, esi
mov edi, eax
call fcn.00412130
mov esi, eax
jmp 0x4190a2
mov esi, dword [ebx + 0x2c4]
mov ecx, esi
call fcn.004120c0
mov edi, eax
test esi, esi
je 0x4190b4
mov eax, dword [ebx + 0x188]
test eax, eax
je 0x4190b4
movsd xmm1, qword [0x5e5130]
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
sub esp, 8
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x5e4f70]
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call fcn.005a1660
movsd xmm1, qword [0x5e5108]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
comisd xmm1, xmm0
jb 0x4190b4
comisd xmm0, xmmword [0x5e5188]
jb 0x4190b4
cvttsd2si esi, xmm0
cmp esi, 0x17318
jl 0x4190b6
cmp esi, 0x19a28
jg 0x4190b6
jmp 0x419109
xor esi, esi
movzx eax, word [ebx + 0x166]
mov edx, esi
movzx ecx, ax
mov dword [esp + 0x20], eax
call fcn.004121b0
mov byte [esp + 0x1c], al
mov edx, esi
movzx eax, word [ebx + 0x168]
movzx ecx, ax
mov dword [esp + 0x24], eax
call fcn.004121b0
mov byte [esp + 0x1d], al
mov edx, esi
movzx eax, word [ebx + 0x16a]
movzx ecx, ax
mov dword [esp + 0x28], eax
call fcn.004121b0
mov byte [esp + 0x19], al
jmp 0x419133
mov edi, dword [ebx + 0x188]
mov cl, byte [ebx + 0x166]
mov al, byte [ebx + 0x168]
mov dl, byte [ebx + 0x16a]
mov byte [esp + 0x1c], cl
mov byte [esp + 0x1d], al
mov byte [esp + 0x19], dl
mov byte [esp + 0x20], cl
mov byte [esp + 0x24], al
mov byte [esp + 0x28], dl
lea eax, [edi - 0x17318]
cmp eax, 0x2710
jbe 0x419176
movzx ecx, word [ebx + 0x166]
mov edx, edi
call fcn.004121b0
movzx ecx, word [ebx + 0x168]
mov edx, edi
mov byte [esp + 0x20], al
call fcn.004121b0
movzx ecx, word [ebx + 0x16a]
mov edx, edi
mov byte [esp + 0x24], al
call fcn.004121b0
mov byte [esp + 0x28], al
movzx ecx, word [ebx + 0x140]
xor edx, edx
mov dword [esp + 0x2c], edx
test ecx, ecx
je 0x419310
mov esi, dword [ebx + 0x13c]
movzx eax, word [ebx + 0x148]
add esi, 2
mov dword [esp + 0x30], esi
nop
cmp edx, eax
jae 0x4192cc
mov eax, dword [ebx + 0x1b0]
mov dword [esp + 0x38], eax
mov al, byte [eax + edx]
cmp al, 0xff
je 0x4192cc
test al, al
jne 0x4191d3
mov ax, word [esp + 0x1c]
mov word [esi - 2], ax
mov al, byte [esp + 0x19]
jmp 0x4192ec
mov edi, dword [ebx + 0x198]
mov ecx, 0xff
movzx edx, al
movzx eax, byte [esi - 2]
sub ecx, edx
movzx ecx, cx
mov ebx, dword [ebx + 0x194]
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 + 0x30]
mov al, byte [eax + ebx]
mov byte [ecx - 2], al
mov eax, dword [esp + 0x2c]
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 + 0x24]
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 + 0x30]
mov al, byte [eax + ebx]
mov byte [ecx - 1], al
mov eax, dword [esp + 0x2c]
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 + 0x28]
movzx eax, al
imul ecx, eax
mov eax, 0x80
imul esi, edx
mov edx, dword [esp + 0x2c]
add si, cx
add si, ax
movzx eax, si
mov esi, dword [esp + 0x30]
mov ecx, eax
shr ecx, 8
add ecx, eax
shr ecx, 8
movzx eax, cl
mov al, byte [eax + ebx]
mov ebx, dword [esp + 0x34]
jmp 0x4192ec
mov ecx, dword [ebx + 0x18c]
movzx eax, byte [esi - 2]
mov al, byte [eax + ecx]
mov byte [esi - 2], al
movzx eax, byte [esi - 1]
mov al, byte [eax + ecx]
mov byte [esi - 1], al
movzx eax, byte [esi]
mov al, byte [eax + ecx]
mov byte [esi], al
inc edx
movzx eax, word [ebx + 0x140]
add esi, 3
cmp edx, eax
mov dword [esp + 0x2c], edx
movzx eax, word [ebx + 0x148]
mov dword [esp + 0x30], esi
jl 0x4191a0
and dword [ebx + 0x7c], 0xffffdf7f
mov edx, dword [ebx + 0x7c]
jmp 0x419612
movzx eax, al
mov esi, 0x186a0
sub eax, 1
je 0x419423
sub eax, 1
je 0x4193cd
sub eax, 1
jne 0x419702
mov esi, dword [ebx + 0x160]
mov ecx, esi
call fcn.004120c0
mov edi, eax
test esi, esi
je 0x41941f
mov eax, dword [ebx + 0x188]
test eax, eax
je 0x41941f
movsd xmm1, qword [0x5e5130]
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x5e4f70]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
sub esp, 8
fstp qword [esp]
call fcn.005a1660
movsd xmm1, qword [0x5e5108]
add esp, 8
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
comisd xmm1, xmm0
jb 0x41941f
comisd xmm0, xmmword [0x5e5188]
jb 0x41941f
cvttsd2si esi, xmm0
jmp 0x419429
mov esi, dword [ebx + 0x2c4]
mov ecx, esi
call fcn.004120c0
mov edi, eax
test esi, esi
je 0x41941f
mov eax, dword [ebx + 0x188]
test eax, eax
je 0x41941f
movsd xmm1, qword [0x5e5130]
xorps xmm0, xmm0
cvtsi2sd xmm0, esi
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
divsd xmm1, xmm0
addsd xmm1, qword [0x5e4f70]
movsd qword [esp + 0x38], xmm1
fld qword [esp + 0x38]
jmp 0x419397
xor esi, esi
jmp 0x419429
mov edi, dword [ebx + 0x188]
lea eax, [edi - 0x17318]
lea ecx, [esi - 0x17318]
cmp eax, 0x2710
jbe 0x41945b
movzx edx, word [ebx + 0x16c]
mov ecx, ebx
push edi
call fcn.00412220
add esp, 4
mov word [ebx + 0x176], ax
lea ecx, [esi - 0x17318]
cmp ecx, 0x2710
jbe 0x41947c
movzx edx, word [ebx + 0x16c]
mov ecx, ebx
push esi
call fcn.00412220
add esp, 4
mov word [ebx + 0x16c], ax
movzx eax, word [ebx + 0x166]
movzx ecx, word [ebx + 0x168]
mov edx, eax
cmp ax, cx
jne 0x4194e6
cmp ax, word [ebx + 0x16a]
jne 0x4194e6
movzx ecx, word [ebx + 0x16c]
cmp ax, cx
jne 0x4194e6
movzx eax, word [ebx + 0x176]
mov edx, dword [ebx + 0x7c]
mov word [ebx + 0x174], ax
mov word [ebx + 0x172], ax
mov word [ebx + 0x170], ax
mov word [ebx + 0x16a], cx
mov word [ebx + 0x168], cx
mov word [ebx + 0x166], cx
mov byte [ebx + 0x15c], 1
jmp 0x419612
lea ecx, [edi - 0x17318]
cmp ecx, 0x2710
jbe 0x419540
push edi
mov ecx, ebx
mov dword [esp + 0x3c], edx
call fcn.00412220
movzx edx, word [ebx + 0x168]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x170], ax
push edi
call fcn.00412220
movzx edx, word [ebx + 0x16a]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x172], ax
push edi
call fcn.00412220
mov word [ebx + 0x174], ax
add esp, 4
mov eax, dword [esp + 0x38]
lea ecx, [esi - 0x17318]
cmp ecx, 0x2710
jbe 0x419594
push esi
mov edx, eax
mov ecx, ebx
call fcn.00412220
movzx edx, word [ebx + 0x168]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x166], ax
push esi
call fcn.00412220
movzx edx, word [ebx + 0x16a]
add esp, 4
mov ecx, ebx
mov word [ebx + 0x168], ax
push esi
call fcn.00412220
add esp, 4
mov word [ebx + 0x16a], ax
mov edx, dword [ebx + 0x7c]
mov byte [ebx + 0x15c], 1
jmp 0x419612
cmp byte [ebx + 0x14f], 3
mov edx, eax
jne 0x419612
test eax, 0x600000
setne cl
bt eax, 0xc
setb al
test al, cl
jne 0x419612
movzx esi, word [ebx + 0x140]
mov ecx, dword [ebx + 0x13c]
test esi, esi
je 0x419606
mov edx, dword [ebx + 0x18c]
add ecx, 2
nop dword [eax + eax]
movzx eax, byte [ecx - 2]
lea ecx, [ecx + 3]
mov al, byte [eax + edx]
mov byte [ecx - 5], al
movzx eax, byte [ecx - 4]
mov al, byte [eax + edx]
mov byte [ecx - 4], al
movzx eax, byte [ecx - 3]
mov al, byte [eax + edx]
mov byte [ecx - 3], al
sub esi, 1
jne 0x4195e0
mov edx, dword [ebx + 0x7c]
and edx, 0xffffdfff
mov dword [ebx + 0x7c], edx
mov eax, edx
and eax, 0x1008
cmp eax, 8
jne 0x4196e3
cmp byte [ebx + 0x14f], 3
jne 0x4196e3
movzx eax, byte [ebx + 0x1a4]
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 0x41967e
cmp eax, ecx
jge 0x41967e
test esi, esi
je 0x41967e
mov eax, dword [ebx + 0x13c]
mov edx, esi
mov ebx, edi
mov cl, bl
lea eax, [eax + 3]
shr byte [eax - 3], cl
sub edx, 1
jne 0x419668
mov ebx, dword [esp + 0x34]
mov ecx, 8
movzx eax, byte [ebx + 0x1a5]
mov edx, ecx
sub edx, eax
test edx, edx
jle 0x4196b2
cmp edx, 8
jge 0x4196b2
test esi, esi
je 0x4196b2
mov eax, dword [ebx + 0x13c]
mov edi, esi
inc eax
nop
mov cl, dl
lea eax, [eax + 3]
shr byte [eax - 3], cl
sub edi, 1
jne 0x4196a0
mov ecx, 8
movzx eax, byte [ebx + 0x1a6]
sub ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x4196e3
cmp ecx, 8
jge 0x4196e3
test esi, esi
je 0x4196e3
mov eax, dword [ebx + 0x13c]
add eax, 2
shr byte [eax], cl
lea eax, [eax + 3]
mov ecx, dword [esp + 0x38]
sub esi, 1
jne 0x4196d5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, str.internal_error_handling_cHRM_coefficients
mov ecx, ebx
call fcn.00412d00
mov edx, str.internal_error_handling_cHRM__XYZ
mov ecx, ebx
call fcn.00412d00
mov edx, str.invalid_background_gamma_type
mov ecx, ebx
call fcn.00412d00
int3