Function at 0x502bd0
Capabilities:
Read file on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x14]
xor edx, edx
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp + 0x18]
push esi
xor esi, esi
mov dword [ebp - 0x1c], eax
push edi
mov dword [ecx], edx
push dword [eax]
mov dword [ebp - 0x88], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x30], esi
mov esi, 1
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x94], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0xd4], edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0x7c], edx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x48], edx
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x98], edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x80], edx
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0xc4], edx
call fcn.005960c7
mov edi, dword [ebp + 0xc]
mov dword [ebx + 0x58], eax
mov eax, dword [ebp - 0x1c]
push 0
push edi
push dword [eax]
call fcn.00595cb4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x34], edi
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0x1c]
push dword [eax]
call fcn.00595867
add esp, 0x14
test eax, eax
jne 0x502f07
mov eax, dword [ebp - 0x1c]
push dword [eax]
lea eax, [ebp - 0x2c]
push 1
push 2
push eax
call fcn.00595b79
push dword [ebp - 0x2c]
mov eax, dword [ebx + 0x3c]
call eax
movzx eax, ax
mov ecx, 0x4e20
add esp, 0x14
mov dword [ebp - 0x2c], eax
cmp ax, cx
ja 0x502fe9
test esi, esi
jne 0x502d94
cmp dword [ebp - 0x30], esi
jne 0x502d94
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [ebp - 0x1c]
call fcn.0045d3f0
add esp, 8
jmp 0x502e9f
mov esi, eax
xor edi, edi
test esi, esi
je 0x502e6d
mov eax, dword [ebp - 0x1c]
push dword [eax]
lea eax, [ebp - 0x14]
push 1
push 0xc
push eax
call fcn.00595b79
push dword [ebp - 0x14]
mov eax, dword [ebx + 0x3c]
call eax
mov ecx, 0x866c
add esp, 0x14
cmp ax, cx
jne 0x502dda
push dword [ebp - 0xc]
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x30], 1
call eax
mov edi, eax
jmp 0x502e18
push dword [ebp - 0x14]
mov eax, dword [ebx + 0x3c]
call eax
mov ecx, 0xfe
add esp, 4
cmp ax, cx
jne 0x502e1b
push dword [ebp - 0x12]
mov eax, dword [ebx + 0x3c]
call eax
add esp, 4
push dword [ebp - 0xc]
cmp ax, 3
jne 0x502e0d
mov eax, dword [ebx + 0x3c]
call eax
movzx eax, ax
jmp 0x502e12
mov eax, dword [ebx + 0x40]
call eax
mov dword [ebp - 0x84], eax
add esp, 4
dec esi
jne 0x502da0
test edi, edi
je 0x502e6d
mov eax, dword [ebp - 0x1c]
push dword [eax]
call fcn.005960c7
mov esi, eax
lea eax, [edi + 8]
mov edi, dword [ebp - 0x1c]
push 0
push eax
push dword [edi]
call fcn.00595cb4
mov eax, dword [ebx + 0x38]
push edi
call eax
mov eax, dword [ebx + 0x38]
push edi
call eax
mov eax, dword [ebx + 0x38]
push edi
call eax
mov eax, dword [ebx + 0x38]
push edi
call eax
mov edi, eax
mov eax, dword [ebp - 0x1c]
push 0
push esi
mov dword [ebp - 0x54], edi
push dword [eax]
call fcn.00595cb4
add esp, 0x2c
jmp 0x502e70
mov edi, dword [ebp - 0x54]
xor esi, esi
cmp dword [ebp - 0x30], esi
je 0x502e9c
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp + 0xc]
cmp dword [edx + 0x90], ecx
cmovge eax, dword [ebp - 0x34]
mov dword [ebp + 0xc], eax
cmp dword [ebp - 0x84], esi
jne 0x502ec3
add ecx, edi
mov dword [ebp - 0x3c], ecx
jmp 0x502ec3
mov edi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx + 0x90]
mov ecx, dword [ecx + 0x3c]
cmp eax, ecx
jne 0x502eba
mov edx, dword [ebp + 0xc]
test eax, eax
cmovg edx, edi
mov dword [ebp + 0xc], edx
lea eax, [ecx + 1]
mov ecx, dword [ebp - 0x18]
mov dword [ecx + 0x3c], eax
push dword [ebp - 0x1c]
mov eax, dword [ebx + 0x38]
call eax
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
test edi, edi
je 0x502f07
js 0x502f07
mov eax, dword [ebp - 0x1c]
cmp edi, dword [eax + 4]
jg 0x502f07
push 0
push edi
push dword [eax]
call fcn.00595cb4
add esp, 0xc
test eax, eax
js 0x502f07
mov eax, dword [ebp - 0x1c]
push dword [eax]
call fcn.00595867
add esp, 4
test eax, eax
je 0x502d43
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0xe8], eax
mov dword [ebx + 0xe4], 0
test eax, eax
je 0x502f3d
mov ecx, dword [ebp - 0x54]
test ecx, ecx
je 0x502f3d
mov eax, dword [ebp - 0x3c]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x90]
cdq
idiv ecx
mov dword [ebx + 0xe4], edx
mov eax, dword [esi + 0x90]
cmp eax, dword [esi + 0x3c]
jl 0x502f52
mov dword [esi + 0x90], 0
mov edi, dword [ebp - 0x1c]
push 0
push dword [ebp + 0xc]
push dword [edi]
call fcn.00595cb4
push dword [edi]
lea eax, [ebp - 0x2c]
push 1
push 2
push eax
call fcn.00595b79
push dword [ebp - 0x2c]
mov eax, dword [ebx + 0x3c]
call eax
movzx eax, ax
add esp, 0x20
mov dword [ebp - 0x2c], eax
test ax, ax
mov eax, dword [ebp - 0x40]
mov ecx, 1
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
je 0x50372b
mov esi, dword [ebp - 0x20]
mov edi, edi
push dword [edi]
lea eax, [ebp - 0x14]
push 1
push 0xc
push eax
call fcn.00595b79
add esp, 0x10
test eax, eax
je 0x502ff6
push dword [ebp - 0x10]
mov eax, dword [ebx + 0x40]
call eax
mov dword [ebp - 0x10], eax
push dword [ebp - 0x12]
mov eax, dword [ebx + 0x3c]
call eax
mov word [ebp - 0x12], ax
add esp, 8
movzx eax, ax
add eax, 0xfffffffe
cmp eax, 7
ja case.0x502fe2.6
movzx eax, byte [eax + 0x503ff8]
jmp dword [eax*4 + 0x503fec]
mov esi, dword [ebp - 0x18]
cmp dword [esi + 0x3c], 0
jg 0x502f0a
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x10], 2
ja case.0x502fe2.2
push dword [ebp - 0xc]
mov eax, dword [ebx + 0x3c]
call eax
push dword [ebp - 0xa]
mov word [ebp - 0xc], ax
mov eax, dword [ebx + 0x3c]
call eax
add esp, 8
mov word [ebp - 0xa], ax
jmp case.0x502fe2.6
push dword [ebp - 0xc]
mov eax, dword [ebx + 0x40]
call eax
add esp, 4
mov dword [ebp - 0xc], eax
push dword [ebp - 0x14]
mov eax, dword [ebx + 0x3c]
call eax
movzx eax, ax
add esp, 4
cmp eax, 0x201
jg 0x5034d4
je 0x5034c6
sub eax, 0x100
cmp eax, 0x5b
ja case.0x50306e.260
movzx eax, byte [eax + 0x50408c]
jmp dword [eax*4 + 0x504000]
cmp word [ebp - 0x12], 4
mov ecx, 1
jne 0x50308b
mov eax, dword [ebp - 0xc]
mov dword [ebx], eax
jmp 0x503714
movzx eax, word [ebp - 0xc]
mov dword [ebx], eax
jmp 0x503714
cmp word [ebp - 0x12], 4
mov ecx, 1
jne 0x5030b0
mov eax, dword [ebp - 0xc]
mov dword [ebx + 4], eax
mov dword [ebx + 0x54], eax
jmp 0x503714
movzx eax, word [ebp - 0xc]
mov dword [ebx + 4], eax
mov dword [ebx + 0x54], eax
jmp 0x503714
cmp word [ebp - 0x12], 3
jne 0x5030df
mov eax, dword [ebp - 0x10]
cmp eax, 2
jbe 0x5030df
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x24], eax
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 8], ax
jmp case.0x50306e.260
movzx eax, word [ebx + 0xa]
cmp ax, 1
jne 0x503126
mov ax, word [ebp - 0x12]
cmp ax, 4
jne 0x50310b
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x68], eax
jmp case.0x50306e.260
mov ecx, 1
cmp ax, 3
jne 0x503714
movzx eax, word [ebp - 0xc]
mov dword [ebx + 0x68], eax
jmp 0x503714
cmp ax, 2
jle case.0x50306e.260
movzx ecx, word [ebp - 0x12]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0x3c], ecx
jmp case.0x50306e.260
movzx eax, word [ebx + 0xa]
cmp ax, 1
jne 0x50317f
mov ax, word [ebp - 0x12]
cmp ax, 4
jne 0x503164
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x6c], eax
jmp case.0x50306e.260
mov ecx, 1
cmp ax, 3
jne 0x503714
movzx eax, word [ebp - 0xc]
mov dword [ebx + 0x6c], eax
jmp 0x503714
cmp ax, 2
jle case.0x50306e.260
movzx ecx, word [ebp - 0x12]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0xcc], edx
mov dword [ebp - 0x34], ecx
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x44], ax
cmp ax, 2
je 0x5031bc
cmp ax, 3
je 0x5031bc
cmp ax, 4
jne case.0x50306e.260
xor eax, eax
mov word [ebx + 0x48], ax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x4c], eax
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x46], ax
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x48], ax
movzx eax, ax
sub eax, 0
je 0x5031fd
dec eax
jne case.0x50306e.260
mov eax, str.Black0
jmp 0x503202
mov eax, str.White0
push 0
push eax
push str.Photometric_Interpretation
push dword [ebp - 0x18]
call fcn.004526f0
add esp, 0x10
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x4a], ax
jmp case.0x50306e.260
mov ax, word [ebp - 0x12]
mov ax, word [ebp - 0xc]
mov word [ebx + 0xe], ax
jmp case.0x50306e.260
mov eax, dword [ebp - 0x10]
cmp eax, 1
mov cx, word [ebp - 0x12]
mov dword [ebx + 0x5c], eax
mov eax, dword [ebp - 0xc]
jne 0x503253
cmp cx, 4
je 0x503253
movzx eax, ax
mov dword [ebx + 0x58], eax
mov word [ebx + 0x64], cx
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0xa], ax
jmp case.0x50306e.260
cmp dword [ebp - 0x10], 1
mov ax, word [ebp - 0x12]
mov word [ebx + 0x66], ax
jne 0x50328e
cmp ax, 4
mov eax, dword [ebp - 0xc]
je 0x503286
movzx eax, ax
mov dword [ebx + 0x60], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x60], eax
jmp case.0x50306e.260
cmp word [ebp - 0x12], 4
mov eax, dword [ebp - 0xc]
je 0x5032a6
movzx eax, ax
mov dword [ebx + 0x54], eax
test eax, eax
je 0x5032b6
cmp eax, dword [ebx + 4]
jbe case.0x50306e.260
movzx eax, word [ebx + 4]
mov dword [ebx + 0x54], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x28], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x2c], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xe0], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xb0], eax
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x50], ax
jmp case.0x50306e.260
movzx eax, word [ebp - 0xc]
add eax, 0xfffffffe
cmp eax, 6
ja case.default.0x50330d
jmp dword [eax*4 + 0x5040e8]
mov ecx, 1
mov word [esi + 4], cx
jmp 0x503714
mov eax, 0x11
mov word [esi + 4], ax
jmp case.0x50306e.260
mov eax, 0x10
mov word [esi + 4], ax
jmp case.0x50306e.260
mov eax, 0x81
mov word [esi + 4], ax
jmp case.0x50306e.260
mov eax, 0x91
mov word [esi + 4], ax
jmp case.0x50306e.260
mov eax, 0x80
mov word [esi + 4], ax
jmp case.0x50306e.260
mov eax, 0x90
mov word [esi + 4], ax
jmp case.0x50306e.260
xor eax, eax
mov word [esi + 4], ax
jmp case.0x50306e.260
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x1c], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x88], eax
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x8c], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xa0], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xa4], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x94], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xbc], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xac], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x8c], edx
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x90], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x9c], eax
jmp case.0x50306e.260
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0xb8], edx
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x98], eax
jmp case.0x50306e.260
cmp word [ebp - 0x12], 3
jne case.0x50306e.260
mov ax, word [ebp - 0x10]
mov word [ebx + 0xc], ax
mov eax, dword [ebp - 0x10]
cmp eax, 2
jne 0x5034a4
cmp dword [ebp - 0x24], 4
jl 0x5034bb
xor ecx, ecx
cmp word [ebp - 0xc], 1
sete cl
add ecx, 3
mov dword [ebp - 0x24], ecx
jmp case.0x50306e.260
cmp eax, 1
jne 0x5034bb
cmp dword [ebp - 0x24], 4
jne 0x5034bb
mov dword [ebp - 0x24], 4
jmp case.0x50306e.260
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x40], edx
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x94], eax
jmp case.0x50306e.260
cmp eax, 0x863a
jg 0x5035ff
cmp eax, 0x8639
jge 0x5035f1
cmp eax, 0x80a4
jg 0x50358f
je 0x50357e
sub eax, 0x211
je 0x503573
dec eax
je 0x50355c
sub eax, 0xaa
jne case.0x50306e.260
mov ax, word [ebp - 0x12]
cmp ax, 7
je 0x503533
push dword [ebp - 0xc]
mov eax, dword [ebx + 0x40]
call eax
mov ecx, eax
mov dword [ebp - 0x70], eax
mov ax, word [ebp - 0x12]
add esp, 4
mov dword [ebp - 0xc], ecx
jmp 0x503539
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x70], ecx
cmp ax, 0xe
jae 0x503544
movzx eax, ax
jmp 0x503546
xor eax, eax
movsx eax, byte [eax + str.11124811248488]
sub eax, 0x30
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
jmp case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x72], ax
mov eax, dword [ebp - 0xc]
shr eax, 0x10
mov word [ebx + 0x74], ax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x78], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x50], eax
jmp case.0x50306e.260
sub eax, 0x8298
je 0x5035da
sub eax, 0xc4
je 0x5035f1
sub eax, 0x5f
jne case.0x50306e.260
mov ax, word [ebp - 0x12]
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x78], edx
cmp ax, 0xe
jae 0x5035bb
movzx eax, ax
jmp 0x5035bd
xor eax, eax
movsx ecx, byte [eax + str.11124811248488]
sub ecx, 0x30
mov dword [ebp - 0x4c], 0x83bb
imul ecx, dword [ebp - 0x10]
mov dword [ebp - 0x38], ecx
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xb4], eax
jmp case.0x50306e.260
mov ecx, 1
mov word [ebx + 0x70], cx
jmp 0x503714
cmp eax, 0x8773
jg 0x5036c5
je 0x5036b4
sub eax, 0x8649
je 0x50366e
sub eax, 0x23
je 0x503657
sub eax, 0xfd
jne case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xe4], eax
mov ax, word [ebp - 0x12]
cmp ax, 0xe
jae 0x50363f
movzx eax, ax
jmp 0x503641
xor eax, eax
movsx eax, byte [eax + str.11124811248488]
sub eax, 0x30
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x48], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xc8], eax
jmp case.0x50306e.260
mov edx, 0x83bb
cmp word [ebp - 0x4c], dx
jne 0x503683
cmp dword [ebp - 0x38], 0x10
jg case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x78], eax
mov ax, word [ebp - 0x12]
cmp ax, 0xe
jae 0x503698
movzx eax, ax
jmp 0x50369a
xor eax, eax
movsx eax, byte [eax + str.11124811248488]
sub eax, 0x30
mov dword [ebp - 0x4c], 0x8649
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x38], eax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x58], eax
jmp case.0x50306e.260
cmp eax, 0x8825
je 0x5036e7
cmp eax, 0x935c
je case.0x50306e.260
cmp eax, 0x10002
jne case.0x50306e.260
mov ax, word [ebp - 0xc]
mov word [ebx + 0x98], ax
jmp case.0x50306e.260
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x5c], eax
mov ax, word [ebp - 0x12]
cmp ax, 0xe
jae 0x5036fc
movzx eax, ax
jmp 0x5036fe
xor eax, eax
movsx eax, byte [eax + str.11124811248488]
sub eax, 0x30
imul eax, dword [ebp - 0x10]
mov dword [ebp - 0x64], eax
mov ecx, 1
mov eax, dword [ebp - 0x2c]
add eax, 0xffff
mov dword [ebp - 0x2c], eax
test ax, ax
jne 0x502fa0
mov esi, dword [ebp - 0x18]
cmp dword [ebp - 0x30], 0
je 0x503740
mov word [ebx + 0xa], cx
mov dword [ebp - 0x24], 1
mov word [ebx + 0xe], cx
movzx eax, word [ebx + 0x48]
push eax
push str.PhotometricInterpretation
push esi
call fcn.00452410
movsx eax, word [ebx + 0xe]
push eax
push str.PlanarConfiguration
push esi
call fcn.00452410
movsx eax, word [ebx + 0xa]
push eax
push str.SamplesPerPixel
push esi
call fcn.00452410
add esp, 0x24
cmp word [ebx + 0x46], 2
jne 0x50378a
cmp word [ebx + 0x44], 1
jne 0x50378a
mov eax, 1
mov word [ebx + 0x46], ax
mov ecx, dword [ebp - 0xe0]
mov esi, dword [ebp - 0x20]
test ecx, ecx
je 0x5037a8
lea eax, [esi + 0x24]
push eax
push ebx
push 0
push ecx
push edi
call fcn.00500670
add esp, 0x14
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
je 0x5037c3
lea eax, [esi + 0x28]
push eax
push ebx
push 0
push ecx
push edi
call fcn.00500670
add esp, 0x14
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x50381d
cmp dword [ebp - 0x98], 0
je 0x50381d
lea edi, [ebx + 0xd8]
push edi
push ebx
push dword [esi + 0x24]
push eax
push dword [ebp - 0x1c]
call fcn.004fd060
mov eax, dword [ebp - 0x20]
lea esi, [ebx + 0xdc]
push esi
push ebx
push dword [eax + 0x28]
push dword [ebp - 0x98]
push dword [ebp - 0x1c]
call fcn.004fd060
mov ecx, dword [ebp - 0x18]
add esp, 0x28
mov eax, dword [edi]
mov edi, dword [ebp - 0x1c]
mov dword [ecx + 0x30], eax
mov eax, dword [esi]
mov esi, ecx
mov dword [esi + 0x34], eax
jmp 0x503820
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x28]
mov dword [ebx + 0xe0], eax
test dword [esi + 0x8c], 0x10000
je 0x503943
push dword [ebp - 0xac]
push dword [ebp - 0xdc]
push esi
push edi
call fcn.005011c0
add esp, 0x10
test dword [esi + 0x8c], 0x40000
je 0x503865
cmp dword [ebp - 0x48], 0
jne 0x503943
push str.Artist
push dword [ebp - 0xa4]
push dword [ebp - 0x6c]
push esi
push edi
call fcn.005011f0
push str.Copyright
push dword [ebp - 0xb4]
push dword [ebp - 0xd0]
push esi
push edi
call fcn.005011f0
push str.DateTime
push dword [ebp - 0x94]
push dword [ebp - 0x68]
push esi
push edi
call fcn.005011f0
push str.HostComputer
push dword [ebp - 0xbc]
push dword [ebp - 0xd4]
push esi
push edi
call fcn.005011f0
mov eax, dword [ebp - 0x8c]
add esp, 0x50
cmp eax, 4
jne 0x5038eb
push dword [ebp - 0x28]
mov eax, dword [ebx + 0x40]
call eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push 4
push eax
push str.Make
push esi
call fcn.004526f0
jmp 0x5038fb
push str.Make
push eax
push dword [ebp - 0x28]
push esi
push edi
call fcn.005011f0
add esp, 0x14
push str.Model
push dword [ebp - 0x90]
push dword [ebp - 0x74]
push esi
push edi
call fcn.005011f0
push str.Software
push dword [ebp - 0x9c]
push dword [ebp - 0x7c]
push esi
push edi
call fcn.005011f0
push str.DocumentName
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push esi
push edi
call fcn.005011f0
add esp, 0x3c
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x50397e
push 0
push eax
push dword [edi]
call fcn.00595cb4
mov eax, dword [ebp - 0x3c]
add esp, 0xc
cmp eax, 4
jne 0x50396a
mov eax, dword [ebx + 0x38]
push edi
call eax
jmp 0x503978
cmp eax, 3
jne 0x50397e
mov eax, dword [ebx + 0x34]
push edi
call eax
movzx eax, ax
mov dword [ebx + 0x68], eax
add esp, 4
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x5039b9
push 0
push eax
push dword [edi]
call fcn.00595cb4
mov eax, dword [ebp - 0x34]
add esp, 0xc
cmp eax, 4
jne 0x5039a5
mov eax, dword [ebx + 0x38]
push edi
call eax
jmp 0x5039b3
cmp eax, 3
jne 0x5039b9
mov eax, dword [ebx + 0x34]
push edi
call eax
movzx eax, ax
mov dword [ebx + 0x6c], eax
add esp, 4
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x5039da
push 0
push eax
push dword [edi]
call fcn.00595cb4
mov eax, dword [ebx + 0x34]
push edi
call eax
add esp, 0x10
mov word [ebx + 8], ax
test dword [esi + 0x8c], 0x40000
je 0x503d3d
xor eax, eax
cmp dword [ebx + 0x3c], 0x45c6e0
setne al
push eax
push esi
call fcn.004525a0
push 0x10d
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
push esi
push edi
call fcn.005005d0
mov eax, dword [ebp - 0x8c]
add esp, 0x1c
cmp eax, 4
jne 0x503c48
push esi
call fcn.004525d0
mov esi, eax
add esp, 4
test esi, esi
je 0x503a63
push 4
mov dword [esi], 0x2010f
mov dword [esi + 4], 1
mov dword [esi + 0x10], 4
mov dword [esi + 8], 4
call fcn.00593e38
mov dword [esi + 0x14], eax
add esp, 4
mov ecx, dword [ebp - 0x28]
mov dword [eax], ecx
mov esi, dword [ebp - 0x18]
push 0x110
push dword [ebp - 0x90]
push dword [ebp - 0x74]
push esi
push edi
call fcn.005005d0
push 0x131
push dword [ebp - 0x9c]
push dword [ebp - 0x7c]
push esi
push edi
call fcn.005005d0
push 0x132
push dword [ebp - 0x94]
push dword [ebp - 0x68]
push esi
push edi
call fcn.005005d0
push 0x13b
push dword [ebp - 0xa4]
push dword [ebp - 0x6c]
push esi
push edi
call fcn.005005d0
add esp, 0x50
cmp dword [ebp - 0x48], 0
je 0x503ae2
push 0
push dword [ebp - 0xe4]
push dword [edi]
call fcn.00595cb4
push esi
push dword [ebp - 0x48]
push ebx
push 2
push edi
call fcn.00500660
add esp, 0x20
cmp dword [ebp - 0x64], 0
je 0x503b17
xor eax, eax
cmp dword [ebx + 0x3c], 0x45c6e0
setne al
push eax
push esi
call fcn.004525a0
push 0
push dword [ebp - 0x5c]
push dword [edi]
call fcn.00595cb4
push esi
push dword [ebp - 0x48]
push ebx
push 0x10
push edi
call fcn.00500660
add esp, 0x28
cmp dword [ebp - 0x44], 0
je 0x503b74
push 0
push dword [ebp - 0x70]
push dword [edi]
call fcn.00595cb4
add esp, 0xc
test eax, eax
jne 0x503b74
test dword [esi + 0x8c], 0x40000
je 0x503b74
push dword [ebp - 0x44]
call fcn.00593e38
push dword [edi]
mov esi, eax
push 1
push dword [ebp - 0x44]
push esi
call fcn.00595b79
add esp, 0x14
test eax, eax
je 0x503b6b
push dword [ebp - 0x44]
push esi
push 3
push dword [ebp - 0x18]
call fcn.00452460
add esp, 0x10
push esi
call fcn.00592c4b
add esp, 4
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x503c94
mov eax, dword [0x5d7534]
movq xmm0, qword [str.Photoshop_3.0]
mov esi, dword [0x5d753c]
mov dword [ebp - 0x5c], eax
mov ax, word [0x5d7538]
mov word [ebp - 0x2e], ax
movzx eax, byte [0x5d753a]
mov byte [ebp - 0xea], al
movzx eax, byte [0x5d7540]
mov byte [ebp - 0x60], al
lea eax, [ecx + 0x1a]
push eax
movq qword [ebp - 0xe8], xmm0
mov dword [ebp - 0x64], eax
call fcn.00593e38
mov edi, eax
add esp, 4
test edi, edi
je 0x503c91
mov eax, dword [ebp - 0x1c]
push 0
push dword [ebp - 0x78]
push dword [eax]
call fcn.00595cb4
movq xmm0, qword [ebp - 0xe8]
add esp, 0xc
mov eax, dword [ebp - 0x5c]
movq qword [edi], xmm0
mov dword [edi + 8], eax
mov ax, word [ebp - 0x2e]
mov word [edi + 0xc], ax
mov eax, 0x83bb
cmp word [ebp - 0x4c], ax
jne 0x503c60
mov ecx, dword [ebp - 0x38]
mov eax, 0x404
mov word [edi + 0x12], ax
mov eax, ecx
sar eax, 8
mov dword [edi + 0xe], esi
mov dword [edi + 0x14], 0
mov byte [edi + 0x18], al
mov eax, dword [ebp - 0x1c]
mov byte [edi + 0x19], cl
push dword [eax]
lea eax, [edi + 0x1a]
push 1
push ecx
push eax
call fcn.00595b79
mov eax, dword [ebp - 0x64]
add esp, 0x10
jmp 0x503c7c
push 0x10f
push eax
push dword [ebp - 0x28]
push esi
push edi
call fcn.005005d0
add esp, 0x14
jmp 0x503a66
mov eax, dword [ebp - 0x1c]
push dword [eax]
lea eax, [edi + 0xe]
push 1
push dword [ebp - 0x38]
push eax
call fcn.00595b79
mov eax, dword [ebp - 0x38]
add esp, 0x10
add eax, 0xe
push eax
push edi
push 2
push dword [ebp - 0x18]
call fcn.00452460
push edi
call fcn.00592c4b
add esp, 0x14
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
test eax, eax
jle 0x503cd6
push eax
call fcn.00593e38
push 0
push dword [ebp - 0xc0]
mov esi, eax
push dword [edi]
call fcn.00595cb4
push dword [edi]
push 1
push dword [ebp - 0x58]
push esi
call fcn.00595b79
push dword [ebp - 0x58]
push esi
push 4
push dword [ebp - 0x18]
call fcn.00452460
push esi
call fcn.00592c4b
add esp, 0x34
mov esi, dword [ebp - 0xc8]
test esi, esi
je 0x503cfd
push 0
push dword [ebp - 0xd8]
push dword [edi]
call fcn.00595cb4
push esi
push ebx
push dword [ebp - 0x18]
push edi
call fcn.00501220
add esp, 0x1c
cmp dword [ebp - 0x80], 0
je 0x503d3d
push dword [ebp - 0x50]
call fcn.00593e38
push 0
push dword [ebp - 0x80]
mov esi, eax
push dword [edi]
call fcn.00595cb4
push dword [edi]
push 1
push dword [ebp - 0x50]
push esi
call fcn.00595b79
push dword [ebp - 0x50]
push esi
push 0xa
push dword [ebp - 0x18]
call fcn.00452460
push esi
call fcn.00592c4b
add esp, 0x34
movzx eax, word [ebx + 8]
mov ecx, 8
cmp ax, cx
jg 0x503d60
cmp ax, 0x10
je 0x503d60
cmp ax, 0x20
je 0x503d60
mov esi, dword [ebp - 0x20]
mov word [esi + 0x1a], ax
jmp 0x503d67
mov eax, dword [ebp - 0x20]
mov word [eax + 0x1a], cx
mov edx, dword [ebp - 0x24]
cmp edx, 3
jne 0x503d84
cmp word [ebx + 0xa], 4
jl 0x503dde
cmp word [ebx + 0x48], 5
jne 0x503dde
mov edx, 4
jmp 0x503dde
cmp edx, 4
jle 0x503dd2
cmp word [ebx + 0x48], 2
jne 0x503d7d
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x503d7d
push 0
push eax
push dword [edi]
mov dword [ebp - 0x24], 3
call fcn.00595cb4
xor eax, eax
add esp, 0xc
xor esi, esi
cmp ax, word [ebx + 0xc]
jge 0x503dd9
mov eax, dword [ebx + 0x34]
push edi
call eax
add esp, 4
cmp ax, 1
je 0x503d7d
movsx eax, word [ebx + 0xc]
inc esi
cmp esi, eax
jl 0x503db5
mov edx, dword [ebp - 0x24]
jmp 0x503dde
cmp edx, 3
jl 0x503dee
jmp 0x503dde
mov edx, 3
cmp word [ebx + 0x48], 1
jne 0x503dee
mov eax, 2
mov word [ebx + 0x48], ax
movzx eax, word [ebx + 0x48]
cmp eax, 2
je 0x503e5f
cmp eax, 5
je 0x503e5f
cmp eax, 8
je 0x503e5f
cmp eax, 6
je 0x503e5f
mov ecx, 0x804d
cmp ax, cx
je 0x503e5f
mov ecx, 0x804c
cmp ax, cx
je 0x503e5f
cmp word [ebx + 0xe], 2
jne 0x503e32
mov edi, dword [ebp - 0x20]
mov edx, 1
mov word [edi + 0x18], dx
jmp 0x503f0a
cmp edx, 1
jle 0x503e4a
cmp eax, 1
jne 0x503e4a
mov edi, dword [ebp - 0x20]
mov edx, eax
mov word [edi + 0x18], dx
jmp 0x503f0a
mov edi, dword [ebp - 0x20]
mov edx, 1
mov ax, word [ebx + 0xa]
mov word [edi + 0x18], ax
jmp 0x503f0a
mov esi, dword [ebp - 0x88]
mov edi, dword [ebp - 0x20]
test esi, esi
jne 0x503ea6
cmp word [ebx + 0xa], 4
jne 0x503e8a
mov ax, word [edi + 0x1a]
mov edx, 1
shl ax, 2
mov word [edi + 0x1a], ax
mov word [edi + 0x18], dx
jmp 0x503ef6
mov cx, word [edi + 0x1a]
mov edx, 1
mov ax, cx
mov word [edi + 0x18], dx
add cx, cx
add ax, cx
mov word [edi + 0x1a], ax
jmp 0x503ef6
cmp word [ebx + 0xe], 1
jne 0x503ee7
movzx ecx, word [edi + 0x1a]
cmp cx, 8
jge 0x503ed5
lea eax, [edx - 2]
cmp eax, 1
ja 0x503ed5
lea eax, [edx*8]
mov edx, 1
mov word [edi + 0x1a], ax
mov word [edi + 0x18], dx
jmp 0x503ef6
imul ecx, edx
mov edx, 1
mov word [edi + 0x18], dx
mov word [edi + 0x1a], cx
jmp 0x503ef6
mov word [edi + 0x18], dx
mov edx, 1
mov dword [edi], 4
cmp word [ebx + 0xa], 4
jne 0x503f0a
cmp word [ebx + 8], 4
jne 0x503f0a
mov dword [edi], 0x400
movzx eax, word [edi + 0x1a]
cmp ax, 1
jne 0x503f18
mov word [edi + 0x18], dx
movsx ecx, ax
movsx eax, word [edi + 0x18]
imul ecx, eax
mov dword [ebx + 0x10], ecx
test ecx, ecx
jle 0x502ff6
movzx eax, word [ebx + 8]
cmp ax, 8
je 0x503f3d
cmp ax, 0x10
jne 0x503f58
cmp word [ebx + 0xa], 2
mov eax, 8
jne 0x503f5d
mov dword [edi], 0
mov dword [edi + 0x18], 0x80001
jmp 0x503f5d
mov eax, 8
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jle 0x503f72
cmp dword [ebx + 0x2c], 0
jle 0x503f72
or dword [edi], 0x1000000
jmp 0x503f74
mov ecx, dword [ebx]
mov esi, dword [ebx + 0x10]
cmp esi, 8
jg 0x503fab
cmp word [edi + 0x18], 1
je 0x503f90
lea eax, [ecx + 0xf]
shr eax, 3
and eax, 0x1ffffffe
jmp 0x503fd5
cmp esi, 8
jg 0x503fab
cdq
idiv esi
mov esi, eax
lea eax, [ecx - 1]
add eax, esi
lea ecx, [esi - 1]
not ecx
and eax, ecx
cdq
idiv esi
jmp 0x503fd5
cmp word [ebx + 0xe], 2
jne 0x503fc8
mov dword [edi + 0x20], ecx
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
movsx eax, word [edi + 0x1a]
add eax, 7
sar eax, 3
imul eax, ecx
mov ecx, dword [ebp - 4]
mov dword [edi + 0x20], eax
xor ecx, ebp
pop edi
pop esi
mov al, 1
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret