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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
mov eax, dword [0x6670f4]
xor eax, esp
mov dword [esp + 0xb0], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
mov dword [esp + 0x4c], edi
test edi, edi
je 0x441d34
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x14]
mov edx, dword [edi]
mov esi, eax
push 1
push 0xe
lea eax, [esp + 0x98]
mov dword [esp + 0x48], esi
push eax
mov ecx, edi
call dword [edx + 8]
test eax, eax
jne 0x441071
push 0xff
push str.Not_a_BMP
jmp 0x441cb5
mov al, byte [ebx + 0x1b6]
test al, al
je 0x441084
mov edx, dword [esp + 0x92]
jmp 0x4410b7
mov ecx, dword [esp + 0x92]
mov edx, ecx
and edx, 0xff00
mov eax, ecx
shl eax, 0x10
or edx, eax
mov eax, ecx
sar eax, 8
and eax, 0xff00
shl edx, 8
or edx, eax
sar ecx, 0x18
movzx eax, cl
or edx, eax
mov al, byte [ebx + 0x1b6]
mov dword [esp + 0x92], edx
test al, al
je 0x4410cb
mov edx, dword [esp + 0x9a]
jmp 0x4410f8
mov ecx, dword [esp + 0x9a]
mov edx, ecx
and edx, 0xff00
mov eax, ecx
shl eax, 0x10
or edx, eax
mov eax, ecx
sar eax, 8
and eax, 0xff00
shl edx, 8
sar ecx, 0x18
or edx, eax
movzx eax, cl
or edx, eax
mov eax, 0x4d42
mov dword [esp + 0x9a], edx
cmp word [esp + 0x90], ax
je 0x441123
mov eax, dword [edi]
mov ecx, edi
push 0
push esi
mov dword [esp + 0xa2], 0
call dword [eax + 0x10]
mov eax, dword [edi]
lea ecx, [esp + 0x68]
push 1
push 0x28
push ecx
mov ecx, edi
call dword [eax + 8]
test eax, eax
je 0x441cab
lea eax, [esp + 0x68]
mov ecx, ebx
push eax
call fcn.004164c0
mov ecx, dword [esp + 0x68]
cmp ecx, 0xc
je 0x4411d5
cmp ecx, 0x28
je 0x441260
cmp ecx, 0x40
je 0x4411cc
cmp ecx, 0x28
jbe 0x441cab
movzx eax, word [esp + 0x76]
imul eax, dword [esp + 0x6c]
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
mov edx, dword [esp + 0x70]
sar eax, 5
imul eax, edx
shl eax, 2
cmp dword [esp + 0x7c], eax
jb 0x441cab
cmp word [esp + 0x74], 1
jne 0x441cab
cmp dword [esp + 0x88], 0
jne 0x441cab
cmp dword [esp + 0x78], 0
jne 0x441264
mov edx, dword [edi]
lea eax, [ecx - 0x28]
push 1
push eax
mov ecx, edi
call dword [edx + 0x10]
jmp 0x441260
push 1
push 0x18
jmp 0x441259
movq xmm0, qword [esp + 0x68]
movzx eax, word [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x6c], eax
movq qword [esp + 0xb0], xmm0
mov eax, dword [esp + 0xb4]
shr eax, 0x10
mov dword [esp + 0x70], eax
mov ax, cx
mov dword [esp + 0xb8], ecx
shr ecx, 0x10
push 1
mov word [esp + 0x78], ax
mov word [esp + 0x7a], cx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
push 0xffffffffffffffe4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
mov edx, dword [esp + 0x70]
cmp dword [esp + 0x7c], 0
jne 0x441287
movzx eax, word [esp + 0x76]
imul eax, dword [esp + 0x6c]
add eax, 0x1f
shr eax, 3
and eax, 0x1ffffffc
imul eax, edx
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x88], 0
mov eax, 1
jne 0x4412ab
cmp word [esp + 0x76], 8
ja 0x4412ab
mov cl, byte [esp + 0x76]
shl eax, cl
mov dword [esp + 0x88], eax
cmp dword [esp + 0x68], 0xc
movzx eax, word [esp + 0x76]
mov esi, dword [esp + 0x78]
sete byte [esp + 0x31]
test edx, edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], eax
sets byte [esp + 0x4b]
test edx, edx
jns 0x4412d7
neg edx
mov dword [esp + 0x70], edx
cmp dword [ebx + 0x148], 0xffffffff
jne 0x441300
mov eax, dword [esp + 0x6c]
push 0xff
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x40], 1
push str.output_dimensions_returned
jmp 0x441cb5
push 1
push eax
push edx
push dword [esp + 0x78]
mov ecx, ebx
call fcn.00415380
test eax, eax
jne 0x44131b
lea esi, [ebx + 0x44]
jmp 0x441cc1
movd xmm0, dword [esp + 0x80]
sub esp, 8
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x64ac08]
divsd xmm0, qword [0x64ac90]
addsd xmm0, qword [0x64aad0]
movsd qword [esp + 0xa8], xmm0
fld qword [esp + 0xa8]
fstp qword [esp]
call fcn.005afd70
add esp, 8
call fcn.005e2c40
push eax
mov ecx, ebx
call fcn.00415e30
movd xmm0, dword [esp + 0x84]
sub esp, 8
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x64ac08]
divsd xmm0, qword [0x64ac90]
addsd xmm0, qword [0x64aad0]
movsd qword [esp + 0xa8], xmm0
fld qword [esp + 0xa8]
fstp qword [esp]
call fcn.005afd70
add esp, 8
call fcn.005e2c40
push eax
mov ecx, ebx
call fcn.00415ea0
cmp dword [ebx + 0x148], 0
je 0x4413d3
push 0xff
push str.Cancelled
jmp 0x441cb5
mov ecx, ebx
call fcn.00416d50
mov dword [esp + 0xa0], eax
test eax, eax
je 0x441487
cmp byte [esp + 0x31], 0
je 0x44149f
mov esi, dword [esp + 0x88]
test esi, esi
jne 0x441412
cmp word [esp + 0x76], 8
ja 0x441412
mov cl, byte [esp + 0x76]
mov esi, 1
shl esi, cl
mov edx, dword [edi]
lea eax, [esi + esi*2]
push 1
push eax
push dword [esp + 0xa8]
mov ecx, edi
call dword [edx + 8]
mov esi, dword [ebx + 0x28]
test esi, esi
jne 0x44143f
movzx eax, word [ebx + 0x16]
cmp eax, 8
ja 0x44143f
mov esi, 1
mov cl, al
shl esi, cl
add esi, 0xffffffff
js 0x441483
mov eax, dword [esp + 0xa0]
lea edx, [eax + 1]
lea ecx, [eax + 1]
lea edx, [edx + esi*2]
lea ecx, [ecx + esi*4]
add edx, esi
nop dword [eax]
movzx eax, byte [edx + 1]
lea ecx, [ecx - 4]
mov byte [ecx + 5], al
movzx eax, byte [edx - 1]
mov byte [ecx + 3], al
movzx eax, byte [edx]
sub edx, 3
sub esi, 1
mov byte [ecx + 4], al
mov byte [ecx + 6], 0
jns 0x441460
mov esi, dword [esp + 0x38]
cmp dword [ebx + 0x148], 0
je 0x4414f0
push 0xff
push str.Cancelled
jmp 0x441cb5
mov eax, dword [esp + 0x88]
test eax, eax
jne 0x4414bd
cmp word [esp + 0x76], 8
ja 0x4414bd
mov cl, byte [esp + 0x76]
mov eax, 1
shl eax, cl
mov edx, dword [edi]
mov ecx, edi
push 1
shl eax, 2
push eax
push dword [esp + 0xa8]
call dword [edx + 8]
xor ecx, ecx
cmp dword [ebx + 0x28], ecx
jbe 0x441487
mov eax, dword [esp + 0xa0]
add eax, 3
mov byte [eax], 0
lea eax, [eax + 4]
inc ecx
cmp ecx, dword [ebx + 0x28]
jb 0x4414e2
jmp 0x441487
mov eax, dword [esp + 0x44]
dec eax
cmp eax, 0x1f
ja case.0x441505.2
movzx eax, byte [eax + 0x441d64]
jmp dword [eax*4 + 0x441d50]
cmp esi, 3
jne 0x441526
mov eax, dword [edi]
lea ecx, [esp + 0xb0]
push 1
push 0xc
push ecx
mov ecx, edi
call dword [eax + 8]
jmp 0x441547
mov dword [esp + 0xb0], 0xff0000
mov dword [esp + 0xb4], 0xff00
mov dword [esp + 0xb8], 0xff
mov eax, dword [esp + 0x9a]
test eax, eax
je 0x441560
mov edx, dword [edi]
mov ecx, edi
add eax, dword [esp + 0x40]
push 0
push eax
call dword [edx + 0x10]
cmp esi, 3
je 0x441578
test esi, esi
je 0x441578
push 0xff
push str.unknown_compression
jmp 0x441cb5
mov eax, dword [ebx + 0xc]
imul eax, dword [ebx + 0x10]
shl eax, 2
push eax
mov dword [esp + 0x48], eax
call fcn.005ad9be
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x4416eb
mov edx, dword [edi]
mov ecx, edi
push 1
push dword [esp + 0x48]
push eax
call dword [edx + 8]
test esi, esi
jne 0x4416ba
mov ecx, ebx
call fcn.0041ebe0
cmp dword [ebx + 0x1bc], esi
je 0x4416ba
mov eax, dword [ebx + 0x10]
xor dl, dl
mov dword [esp + 0xa0], esi
test eax, eax
jle 0x44163e
mov ecx, dword [ebx + 0xc]
mov eax, ecx
mov edi, dword [esp + 0x38]
imul eax, esi
add edi, 3
xor esi, esi
lea edi, [edi + eax*4]
test ecx, ecx
jle 0x441620
nop dword [eax]
mov al, byte [edi]
mov ecx, 1
push eax
push dword [esp + 0xa4]
test al, al
movzx edx, dl
push esi
cmovne edx, ecx
mov ecx, ebx
mov dword [esp + 0x4c], edx
call fcn.0041ee10
mov edx, dword [esp + 0x40]
lea edi, [edi + 4]
inc esi
cmp esi, dword [ebx + 0xc]
jl 0x4415f0
mov esi, dword [esp + 0xa0]
mov eax, dword [ebx + 0x10]
inc esi
mov dword [esp + 0xa0], esi
cmp esi, eax
jl 0x4415d4
test dl, dl
jne 0x4416ba
mov ecx, dword [ebx + 0x1bc]
test ecx, ecx
je 0x4416ba
mov edx, dword [ebx + 0xc]
xor esi, esi
imul edx, eax
test edx, edx
jle 0x4416ba
cmp edx, 0x40
jb 0x4416aa
mov eax, edx
and eax, 0x8000003f
jns 0x441667
dec eax
or eax, 0xffffffc0
inc eax
movups xmm1, xmmword [0x64b410]
mov edi, edx
sub edi, eax
movups xmm0, xmmword [ecx]
add esi, 0x40
pandn xmm0, xmm1
movups xmmword [ecx], xmm0
movups xmm0, xmmword [ecx + 0x10]
pandn xmm0, xmm1
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
pandn xmm0, xmm1
movups xmmword [ecx + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
pandn xmm0, xmm1
movups xmmword [ecx + 0x30], xmm0
add ecx, 0x40
cmp esi, edi
jl 0x441672
cmp esi, edx
jge 0x4416ba
sub edx, esi
not byte [ecx]
lea ecx, [ecx + 1]
sub edx, 1
jne 0x4416b0
mov esi, dword [esp + 0x38]
mov ecx, ebx
push 0x20
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push esi
call fcn.00415800
push esi
call fcn.005ad75d
add esp, 4
jmp case.0x441505.2
push 0xff
push str.cant_allocate_memory
jmp 0x441cb5
mov eax, dword [esp + 0x9a]
test eax, eax
je 0x441713
mov edx, dword [edi]
mov ecx, edi
add eax, dword [esp + 0x40]
push 0
push eax
call dword [edx + 0x10]
test esi, esi
je 0x441c6e
push 0xff
push str.unknown_compression
jmp 0x441cb5
cmp esi, 3
jne 0x441744
mov eax, dword [edi]
lea ecx, [esp + 0xa0]
push 1
push 0xc
push ecx
mov ecx, edi
call dword [eax + 8]
jmp 0x441765
mov dword [esp + 0xa0], 0x7c00
mov dword [esp + 0xa4], 0x3e0
mov dword [esp + 0xa8], 0x1f
mov eax, dword [esp + 0x9a]
test eax, eax
je 0x44177e
mov edx, dword [edi]
mov ecx, edi
add eax, dword [esp + 0x40]
push 0
push eax
call dword [edx + 0x10]
mov eax, dword [ebx + 0xc]
mov ecx, edi
mov esi, dword [edi]
inc eax
cdq
sub eax, edx
sar eax, 1
imul eax, dword [ebx + 0x10]
push 1
shl eax, 2
push eax
push dword [ebx + 0x34]
call dword [esi + 8]
push 0x10
push dword [esp + 0xac]
mov ecx, ebx
push dword [esp + 0xac]
push dword [esp + 0xac]
push dword [ebx + 0x34]
call fcn.00415800
jmp case.0x441505.2
mov eax, dword [esp + 0x9a]
test eax, eax
je 0x4417da
mov edx, dword [edi]
mov ecx, edi
add eax, dword [esp + 0x40]
push 0
push eax
call dword [edx + 0x10]
sub esi, 0
je 0x441c6e
sub esi, 1
je 0x441ab7
sub esi, 1
je 0x441800
push 0xff
push str.compression_type_not_supported
jmp 0x441cb5
xor edx, edx
mov byte [esp + 0x31], 0
xor esi, esi
mov byte [esp + 0x32], 0
push ebx
lea ecx, [esp + 0x54]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], edx
call fcn.0041b050
mov eax, dword [esp + 0x60]
mov dword [esp + 0xa0], eax
nop
mov eax, dword [edi]
lea ecx, [esp + 0x31]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
test eax, eax
je case.0x441505.2
cmp byte [esp + 0x31], 0
je 0x441928
mov eax, dword [esp + 0x34]
test eax, eax
js 0x44188c
mov ecx, dword [esp + 0x64]
cmp eax, dword [ecx + 0x10]
jg 0x44188c
mov edx, dword [ecx + 4]
test edx, edx
je 0x441875
mov eax, dword [ecx + 0x28]
lea ecx, [edx + eax*4]
add ecx, dword [edx]
jmp 0x441877
xor ecx, ecx
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x30]
imul eax, dword [esp + 0x34]
add eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [edi]
lea ecx, [esp + 0x32]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
xor edx, edx
cmp byte [esp + 0x31], dl
jbe 0x441830
mov ecx, dword [esp + 0xa0]
mov edi, dword [esp + 0x40]
lea eax, [ecx + esi]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x34]
cmp dword [esp + 0x38], eax
jae 0x441904
mov eax, edx
and eax, 1
test edi, edi
je 0x4418f2
test eax, eax
mov al, byte [esp + 0x32]
je 0x4418e2
and al, 0xf
or al, byte [esi + ecx]
mov byte [esi + ecx], al
inc esi
inc dword [esp + 0x38]
jmp 0x441904
shr al, 4
or al, byte [esi + ecx]
mov byte [esi + ecx], al
inc esi
inc dword [esp + 0x38]
jmp 0x441904
test eax, eax
mov al, byte [esp + 0x32]
je 0x4418ff
shl al, 4
jmp 0x441901
and al, 0xf0
mov byte [esi + ecx], al
xor eax, eax
test edi, edi
sete al
inc edx
mov edi, eax
movzx eax, byte [esp + 0x31]
cmp edx, eax
jb 0x4418b6
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x38], esi
jmp 0x441830
mov eax, dword [edi]
lea ecx, [esp + 0x31]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
movzx eax, byte [esp + 0x31]
sub eax, 0
je 0x441aa4
sub eax, 1
je case.0x441505.2
sub eax, 1
mov eax, dword [edi]
push 1
push 1
je 0x441a6f
lea ecx, [esp + 0x3a]
push ecx
mov ecx, edi
call dword [eax + 8]
mov eax, dword [esp + 0x34]
test eax, eax
js 0x4419a3
mov ecx, dword [esp + 0x64]
cmp eax, dword [ecx + 0x10]
jg 0x4419a3
mov edx, dword [ecx + 4]
test edx, edx
je 0x44198a
mov eax, dword [ecx + 0x28]
lea ecx, [edx + eax*4]
add ecx, dword [edx]
jmp 0x44198c
xor ecx, ecx
mov eax, dword [esp + 0x64]
mov eax, dword [eax + 0x30]
imul eax, dword [esp + 0x34]
add eax, ecx
mov dword [esp + 0xa0], eax
jmp 0x4419aa
mov eax, dword [esp + 0xa0]
xor ecx, ecx
mov dword [esp + 0x44], ecx
cmp byte [esp + 0x31], cl
jbe 0x441a4c
add esi, eax
nop dword [eax]
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x34]
cmp esi, eax
jae 0x441a06
mov eax, ecx
and eax, 1
cmp dword [esp + 0x40], 0
je 0x4419f5
test eax, eax
mov al, byte [esp + 0x32]
je 0x4419e9
inc dword [esp + 0x38]
and al, 0xf
or byte [esi], al
inc esi
jmp 0x441a06
inc dword [esp + 0x38]
shr al, 4
or byte [esi], al
inc esi
jmp 0x441a06
test eax, eax
mov al, byte [esp + 0x32]
je 0x441a02
shl al, 4
jmp 0x441a04
and al, 0xf0
mov byte [esi], al
test cl, 1
je 0x441a29
movzx eax, byte [esp + 0x31]
dec eax
cmp ecx, eax
je 0x441a29
mov eax, dword [edi]
lea ecx, [esp + 0x32]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp dword [esp + 0x40], eax
sete al
inc ecx
mov dword [esp + 0x40], eax
movzx eax, byte [esp + 0x31]
mov dword [esp + 0x44], ecx
cmp ecx, eax
jl 0x4419c0
mov esi, dword [esp + 0x38]
movzx eax, byte [esp + 0x31]
inc eax
test al, 2
je 0x441830
mov eax, dword [edi]
lea ecx, [esp + 0x32]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
jmp 0x441830
lea ecx, [esp + 0x46]
push ecx
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
lea ecx, [esp + 0x3f]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
movzx eax, byte [esp + 0x3e]
shr eax, 1
add esi, eax
movzx eax, byte [esp + 0x3f]
add dword [esp + 0x34], eax
mov dword [esp + 0x38], esi
jmp 0x441830
xor esi, esi
inc dword [esp + 0x34]
mov dword [esp + 0x38], esi
mov dword [esp + 0x40], esi
jmp 0x441830
push ebx
lea ecx, [esp + 0x54]
mov byte [esp + 0x35], 0
mov byte [esp + 0x36], 0
xor esi, esi
mov dword [esp + 0x38], 0
call fcn.0041b050
mov eax, dword [esp + 0x60]
mov dword [esp + 0xa0], eax
mov eax, dword [edi]
lea ecx, [esp + 0x31]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
test eax, eax
je case.0x441505.2
cmp byte [esp + 0x31], 0
je 0x441b85
mov edx, dword [esp + 0x34]
test edx, edx
js 0x441b46
mov eax, dword [esp + 0x64]
cmp edx, dword [eax + 0x10]
jg 0x441b46
mov ecx, dword [eax + 4]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x441b35
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x64]
add ecx, dword [esp + 0x44]
jmp 0x441b37
xor ecx, ecx
mov eax, dword [eax + 0x30]
imul eax, edx
add eax, ecx
mov dword [esp + 0xa0], eax
mov eax, dword [edi]
lea ecx, [esp + 0x32]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
xor edx, edx
cmp byte [esp + 0x31], dl
jbe 0x441ae0
mov ecx, dword [esp + 0xa0]
cmp esi, dword [ebx + 0x30]
jae 0x441ae0
mov al, byte [esp + 0x32]
inc edx
mov byte [ecx + esi], al
inc esi
movzx eax, byte [esp + 0x31]
cmp edx, eax
jb 0x441b65
jmp 0x441ae0
mov eax, dword [edi]
lea ecx, [esp + 0x31]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
movzx eax, byte [esp + 0x31]
mov dword [esp + 0x4c], eax
sub eax, 0
je 0x441c63
sub eax, 1
je case.0x441505.2
sub eax, 1
je 0x441c2e
mov eax, dword [esp + 0x34]
test eax, eax
js 0x441bf1
mov edx, dword [esp + 0x64]
cmp eax, dword [edx + 0x10]
jg 0x441bf1
cmp dword [edx + 4], 0
je 0x441be0
mov eax, dword [edx + 4]
mov ecx, dword [edx + 0x28]
mov eax, dword [eax]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x34]
add ecx, dword [edx + 4]
jmp 0x441be2
xor ecx, ecx
mov edx, dword [edx + 0x30]
imul edx, eax
add edx, ecx
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0xa0]
mov ecx, edi
mov edx, dword [edi]
add eax, esi
push 1
push dword [esp + 0x50]
push eax
call dword [edx + 8]
mov al, byte [esp + 0x31]
test al, 1
je 0x441c24
mov eax, dword [edi]
lea ecx, [esp + 0x32]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
mov al, byte [esp + 0x31]
movzx eax, al
add esi, eax
jmp 0x441ae0
mov eax, dword [edi]
lea ecx, [esp + 0x3f]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
lea ecx, [esp + 0x3e]
push 1
push 1
push ecx
mov ecx, edi
call dword [eax + 8]
movzx eax, byte [esp + 0x3f]
add esi, eax
movzx eax, byte [esp + 0x3e]
add dword [esp + 0x34], eax
jmp 0x441ae0
xor esi, esi
inc dword [esp + 0x34]
jmp 0x441ae0
mov eax, dword [edi]
mov ecx, edi
push 1
push dword [ebx + 0x1c]
push dword [ebx + 0x34]
call dword [eax + 8]
cmp byte [esp + 0x4b], 0
je 0x441d1b
sub esp, 8
mov ecx, ebx
call fcn.00423660
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.0050ed5c
mov esp, ebp
pop ebp
ret 4
push 0xff
push str.Error_reading_BMP_info
lea esi, [ebx + 0x44]
push esi
call fcn.005ca680
add esp, 0xc
mov byte [esp + 0x33], 0
lea eax, [esp + 0x33]
mov ecx, 0x62c63d
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x441cf0
test dl, dl
je 0x441cec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x441cf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x441cd0
xor eax, eax
jmp 0x441cf5
sbb eax, eax
or eax, 1
test eax, eax
je 0x441d0c
push 0xff
lea eax, [esp + 0x37]
push eax
push esi
call fcn.005ca680
add esp, 0xc
cmp dword [ebx + 0x148], 0xffffffff
jne 0x441d34
cmp dword [ebx + 0x40], 1
jne 0x441d34
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb0]
xor ecx, esp
call fcn.0050ed5c
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esp + 0xbc]
xor al, al
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0050ed5c
mov esp, ebp
pop ebp
ret 4