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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8fc
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x8d8], esi
mov dword [ebp - 0x8ac], eax
push dword [esi]
call fcn.005960c7
push dword [esi]
mov edi, eax
lea eax, [ebp - 0x14]
push 1
push 8
push eax
call fcn.00595b79
add esp, 0x14
test eax, eax
jne 0x51252d
mov eax, 4
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x14], 0x89
jne 0x5138c1
cmp byte [ebp - 0x13], 0x50
jne 0x5138c1
cmp byte [ebp - 0x12], 0x4e
jne 0x5138c1
cmp byte [ebp - 0x11], 0x47
jne 0x5138c1
cmp byte [ebp - 0x10], 0xd
jne 0x5138c1
cmp byte [ebp - 0xf], 0xa
jne 0x5138c1
cmp byte [ebp - 0xe], 0x1a
jne 0x5138c1
cmp byte [ebp - 0xd], 0xa
jne 0x5138c1
push 0
push edi
push dword [esi]
call fcn.00595cb4
push 0
push 0
push 0
push str.1.6.20
call fcn.0053a440
mov dword [ebp - 0x8a4], eax
mov dword [eax + 0x60], esi
push dword [ebp - 0x8a4]
call fcn.00538ce0
push dword [ebp - 0x8a4]
mov dword [ebp - 0x8a8], eax
call fcn.00538ce0
push 0
push 0x514610
push 0
push dword [ebp - 0x8a4]
mov dword [ebp - 0x8b4], eax
call fcn.0053ff60
push 0
push dword [ebp - 0x8a4]
mov dword [ebp - 0x8bc], 0
call fcn.005920d0
add esp, 0x3c
test eax, eax
je 0x512666
mov eax, dword [ebp - 0x8a4]
xor ebx, ebx
cmp dword [eax + 0x11c], 0x43674249
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
sete bl
push eax
lea eax, [ebp - 0x8a4]
push eax
call fcn.0053a4c0
mov eax, dword [ebp - 0x8bc]
add esp, 0xc
test eax, eax
je 0x512639
push eax
call fcn.00592c4b
add esp, 4
test ebx, ebx
je 0x5138c1
push dword [ebp - 0x8ac]
push dword [ebp - 0x8d8]
call fcn.00512340
add esp, 8
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push 0x5145e0
push dword [ebp - 0x8d8]
push dword [ebp - 0x8a4]
call fcn.005400e0
push dword [ebp - 0x8a8]
push dword [ebp - 0x8a4]
call fcn.0053ac00
push 0
push dword [ebp - 0x8a4]
call fcn.005920d0
add esp, 0x1c
test eax, eax
je 0x5126f5
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a4]
push eax
call fcn.0053a4c0
mov eax, dword [ebp - 0x8bc]
add esp, 0xc
test eax, eax
je 0x5126d1
push eax
call fcn.00592c4b
add esp, 4
cmp word [ebp - 0x8b0], 0xf
jne 0x512517
mov eax, 0xf
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x8a8]
mov al, byte [edx + 0x18]
cmp al, 8
jb 0x512709
mov eax, 8
jmp 0x51270c
movzx eax, al
mov cl, byte [edx + 0x19]
mov dword [ebp - 0x8b8], eax
mov al, cl
and al, 3
cmp al, 3
je 0x512797
test cl, cl
je 0x512797
cmp cl, 4
je 0x512797
mov ebx, dword [ebp - 0x8ac]
mov dword [ebp - 0x8b0], 3
cmp byte [ebx + 0xff], 0
je 0x512786
movsd xmm0, qword [0x62d3c8]
sub esp, 8
mov eax, 0xff
mov dword [ebp - 0x734], 0xff00ff
mov word [ebp - 0x736], ax
lea eax, [ebp - 0x738]
movsd qword [esp], xmm0
push 0
push 1
push eax
push dword [ebp - 0x8a4]
call fcn.0053f0b0
mov edx, dword [ebp - 0x8a8]
add esp, 0x18
jmp 0x5127fc
test cl, 4
je 0x5127fc
mov dword [ebp - 0x8b0], 4
jmp 0x5127fc
mov dword [ebp - 0x8b0], 1
test cl, 4
je 0x5128ac
movsd xmm0, qword [0x62d3c8]
sub esp, 8
mov eax, 0xff
mov dword [ebp - 0x71c], 0xff00ff
mov word [ebp - 0x71e], ax
mov word [ebp - 0x718], ax
lea eax, [ebp - 0x720]
movsd qword [esp], xmm0
push 0
push 1
push eax
push dword [ebp - 0x8a4]
call fcn.0053f0b0
mov edx, dword [ebp - 0x8a8]
add esp, 0x18
mov ebx, dword [ebp - 0x8ac]
push edx
push dword [ebp - 0x8a4]
call fcn.00540240
mov ecx, dword [ebp - 0x8a8]
add esp, 8
mov dword [ebp - 0x8d0], eax
cmp byte [ecx + 0x18], 0x10
jne 0x512831
push dword [ebp - 0x8a4]
call fcn.0053f250
mov ecx, dword [ebp - 0x8a8]
add esp, 4
mov eax, dword [ecx + 0x80]
test eax, eax
je 0x512aed
test dword [ebx + 0x8c], 0x50000
je 0x512aed
mov dword [ebp - 0x8c4], 0
test eax, eax
jle 0x512aed
xor ebx, ebx
mov dword [ebp - 0x8cc], ebx
lea esp, [esp]
mov edi, dword [ecx + 0x88]
mov ecx, str.Comment
mov esi, dword [edi + ebx + 4]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x51294f
test dl, dl
je 0x5128a5
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x51294f
add eax, 2
add ecx, 2
test dl, dl
jne 0x512881
xor eax, eax
jmp 0x512954
test byte [edx + 8], 0x10
je 0x5127f6
movzx ecx, word [edx + 0x16]
test cx, cx
je 0x5127f6
mov esi, ecx
xor eax, eax
test esi, esi
jle 0x5127f6
mov edi, dword [edx + 0x9c]
mov cl, byte [edi + eax]
test cl, cl
je 0x5128e1
cmp cl, 0xff
jne 0x5128eb
inc eax
cmp eax, esi
jl 0x5128d5
jmp 0x5127f6
mov ebx, dword [ebp - 0x8ac]
cmp byte [ebx + 0xfe], 0
je 0x5127fc
movsd xmm0, qword [0x62d3c8]
sub esp, 8
mov eax, 0xff
mov dword [ebp - 0x728], 0xff00ff
mov word [ebp - 0x72a], ax
mov word [ebp - 0x724], ax
lea eax, [ebp - 0x72c]
movsd qword [esp], xmm0
push 0
push 1
push eax
push dword [ebp - 0x8a4]
call fcn.0053f0b0
mov edx, dword [ebp - 0x8a8]
add esp, 0x18
jmp 0x5127fc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x512982
mov edx, dword [edi + ebx + 8]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x512961
sub ecx, esi
lea eax, [ecx + 1]
push eax
push edx
push dword [ebp - 0x8ac]
call fcn.004522a0
add esp, 0xc
jmp 0x512ac5
mov ecx, str.XML:com.adobe.xmp
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5129b0
test dl, dl
je 0x5129ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5129b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x512990
xor eax, eax
jmp 0x5129b5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x5129e5
mov edx, dword [edi + ebx + 8]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5129c2
sub ecx, esi
lea eax, [ecx + 1]
push eax
push edx
push 3
push dword [ebp - 0x8ac]
call fcn.00452460
add esp, 0x10
jmp 0x512ac5
push 0x15
push str.Raw_profile_type_iptc
push esi
call fcn.00596360
add esp, 0xc
test eax, eax
jne 0x512ac5
lea eax, [ebp - 0x8e8]
push eax
mov eax, dword [ebp - 0x8a8]
mov eax, dword [eax + 0x88]
add eax, ebx
push eax
call fcn.00514430
mov edi, eax
add esp, 8
test edi, edi
je 0x512ac5
mov eax, dword [0x5d7534]
mov ebx, dword [ebp - 0x8e8]
movq xmm0, qword [str.Photoshop_3.0]
mov dword [ebp - 0x8dc], eax
mov ax, word [0x5d7538]
mov word [ebp - 0x8be], ax
mov al, byte [0x5d753a]
mov byte [ebp - 0x8ee], al
lea eax, [ebx + 0xe]
push eax
movq qword [ebp - 0x8e4], xmm0
call fcn.00593e38
mov esi, eax
add esp, 4
test esi, esi
je 0x512ab6
movq xmm0, qword [ebp - 0x8e4]
mov eax, dword [ebp - 0x8dc]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov ax, word [ebp - 0x8be]
push ebx
mov word [esi + 0xc], ax
lea eax, [esi + 0xe]
push edi
push eax
call fcn.00592150
lea eax, [ebx + 0xe]
push eax
push esi
push 2
push dword [ebp - 0x8ac]
call fcn.00452460
push esi
call fcn.00592c4b
add esp, 0x20
push edi
call fcn.00592c4b
mov ebx, dword [ebp - 0x8cc]
add esp, 4
mov edx, dword [ebp - 0x8c4]
add ebx, 0x1c
mov ecx, dword [ebp - 0x8a8]
inc edx
mov dword [ebp - 0x8c4], edx
mov dword [ebp - 0x8cc], ebx
cmp edx, dword [ecx + 0x80]
jl 0x512870
lea eax, [ebp - 0x8a0]
push eax
call fcn.00457d90
mov eax, dword [ebp - 0x8a0]
add esp, 4
cmp dword [ebp + 0x14], 0
mov ecx, 0x20
cmovne eax, ecx
mov ecx, 1
mov dword [ebp - 0x8a0], eax
mov eax, dword [ebp - 0x8b8]
imul eax, dword [ebp - 0x8b0]
mov word [ebp - 0x888], cx
mov ecx, dword [ebp - 0x8a8]
mov word [ebp - 0x886], ax
mov esi, dword [ecx]
mov dword [ebp - 0x890], esi
mov edi, dword [ecx + 4]
mov dword [ebp - 0x88c], edi
cmp ax, 8
jl 0x512b60
cwde
imul eax, esi
cdq
and edx, 7
add edx, eax
sar edx, 3
jmp 0x512b66
mov edx, dword [ebp - 0x8d0]
mov ebx, 4
mov dword [ebp - 0x880], edx
mov word [ebp - 0x860], bx
cmp byte [ecx + 0x18], 0x10
jne 0x512ba9
mov eax, dword [ebp - 0x8b0]
mov dword [ebp - 0x864], eax
mov dword [ebp - 0x874], esi
mov dword [ebp - 0x870], edi
movzx eax, byte [ecx + 0x18]
mov dword [ebp - 0x868], eax
lea eax, [edx + edx]
mov dword [ebp - 0x86c], eax
mov edi, dword [ebp - 0x8ac]
cmp dword [edi + 0xa0], 0
jg 0x512bf8
push 0x10000
push ecx
push dword [ebp - 0x8a4]
call fcn.005402b0
add esp, 0xc
test eax, eax
je 0x512bf2
push dword [ebp - 0x8a8]
push dword [ebp - 0x8a4]
call fcn.00540220
mov dword [edi + 0x3c], eax
push dword [ebp - 0x8a4]
call fcn.0053f7c0
add esp, 0xc
mov ecx, dword [ebp - 0x8a8]
test byte [ecx + 8], 0x80
je 0x512c6f
cmp byte [ecx + 0xc8], 1
jne 0x512c6f
mov eax, dword [ecx + 0xc0]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x62d480]
mulsd xmm0, qword [0x5c3610]
addsd xmm0, qword [0x5c3638]
cvttsd2si eax, xmm0
mov dword [ebp - 0x87c], eax
mov eax, dword [ecx + 0xc4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x62d480]
mulsd xmm0, qword [0x5c3610]
addsd xmm0, qword [0x5c3638]
cvttsd2si eax, xmm0
mov dword [ebp - 0x878], eax
test byte [ecx + 8], 0x10
je 0x512ca4
movzx edx, word [ecx + 0x16]
test dx, dx
je 0x512ca4
xor eax, eax
test edx, edx
jle 0x512ca4
mov esi, dword [ecx + 0x9c]
lea ebx, [ebx]
cmp byte [esi + eax], 0
je 0x512c9d
inc eax
cmp eax, edx
jl 0x512c90
jmp 0x512ca4
mov word [ebp - 0x85c], ax
push 0x1000
push ecx
push dword [ebp - 0x8a4]
call fcn.005402b0
add esp, 0xc
test eax, eax
je 0x512ce5
test dword [edi + 0x8c], 0x40000
je 0x512ce5
mov eax, dword [ebp - 0x8a8]
cmp byte [eax + 0x18], 8
ja 0x512ceb
push dword [eax + 0x7c]
push dword [eax + 0x78]
push 4
push edi
call fcn.00452460
add esp, 0x10
mov eax, dword [ebp - 0x8a8]
mov esi, dword [ebp + 0x10]
test esi, esi
jne 0x512d52
mov ecx, dword [edi + 0x3c]
cmp ecx, 1
jle 0x512d52
lea edx, [ebp - 0x8a0]
push edx
push edi
push eax
push dword [ebp - 0x8a4]
push ecx
push dword [edi + 0x90]
call fcn.00513c50
add esp, 0x18
test eax, eax
jne 0x512d4c
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a4]
push eax
call fcn.0053a4c0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x8a8]
cmp byte [eax + 0x1c], 0
je 0x512f74
push dword [ebp - 0x8a4]
call fcn.0053f7c0
add esp, 4
lea edx, [ebp - 0x7ba]
test esi, esi
mov ecx, str.Portable_Network_Graphics
mov edi, eax
cmovne ecx, esi
sub edx, ecx
mov edi, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x512d80
test esi, esi
jne 0x512dc3
lea ecx, [ebp - 0x7ba]
dec ecx
mov al, byte [ecx + 1]
lea ecx, [ecx + 1]
test al, al
jne 0x512d98
mov eax, dword [str.__Interlaced_]
mov dword [ecx], eax
mov eax, dword [0x5eecac]
mov dword [ecx + 4], eax
mov eax, dword [0x5eecb0]
mov dword [ecx + 8], eax
mov ax, word [0x5eecb4]
mov word [ecx + 0xc], ax
mov eax, dword [ebp - 0x8a8]
mov ebx, dword [eax + 4]
mov eax, ebx
imul eax, dword [ebp - 0x8d0]
push eax
call fcn.00593e38
mov ecx, eax
add esp, 4
mov dword [ebp - 0x8bc], ecx
test ecx, ecx
jne 0x512e1d
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a4]
push eax
call fcn.0053a4c0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
lea eax, [edi - 1]
mov dword [ebp - 0x8b8], eax
test eax, eax
jle 0x512e88
lea ebx, [ebx]
xor edi, edi
test ebx, ebx
je 0x512e7f
mov esi, ecx
jmp 0x512e40
push 1
push 0
lea eax, [ebp - 0x8c8]
mov dword [ebp - 0x8c8], esi
push eax
push dword [ebp - 0x8a4]
call fcn.0053b290
mov eax, dword [ebp - 0x8a8]
inc edi
add esi, dword [ebp - 0x8d0]
add esp, 0x10
mov ebx, dword [eax + 4]
cmp edi, ebx
jb 0x512e40
mov eax, dword [ebp - 0x8b8]
mov ecx, dword [ebp - 0x8bc]
dec eax
mov dword [ebp - 0x8b8], eax
jne 0x512e30
mov edi, dword [ebp - 0x8ac]
mov ebx, 4
mov eax, dword [edi + 0x8c]
test eax, 0x1000000
je 0x512ebd
test eax, 0x40000
je 0x512ebd
lea eax, [ebp - 0x8a0]
push eax
push edi
push dword [ebp - 0x8d8]
call fcn.005138e0
add esp, 0xc
lea eax, [ebp - 0x8a0]
push eax
push edi
call fcn.00456000
movzx esi, ax
add esp, 8
mov dword [ebp - 0x8b0], esi
test si, si
jne 0x51383f
push 4
call fcn.00593e38
push 0
mov dword [ebp - 0x8c4], eax
mov dword [eax], 0
push dword [ebp - 0x8a4]
call fcn.005920d0
add esp, 0xc
test eax, eax
je 0x51307b
mov edi, dword [ebp - 0x8c4]
cmp dword [edi], 0
jne 0x512ff6
mov esi, dword [ebp - 0x8a8]
cmp byte [esi + 0x19], 3
jne 0x512fe2
push 0x300
lea eax, [ebp - 0x714]
push 0
push eax
call fcn.00595760
movzx eax, word [esi + 0x14]
lea eax, [eax + eax*2]
push eax
push dword [esi + 0x10]
lea eax, [ebp - 0x714]
push eax
call fcn.00592150
lea eax, [ebp - 0x714]
push eax
push 8
push 0x100
push dword [ebp - 0x8ac]
call fcn.00453f80
add esp, 0x28
jmp 0x512ff6
test esi, esi
lea edx, [ebp - 0x7ba]
mov ecx, str.Portable_Network_Graphics
cmovne ecx, esi
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x512f86
push dword [ebp - 0x8d0]
call fcn.00593e38
add esp, 4
mov dword [ebp - 0x8bc], eax
test eax, eax
jne 0x512e93
lea ecx, [ebp - 0x8b4]
push ecx
lea ecx, [ebp - 0x8a8]
push ecx
lea ecx, [ebp - 0x8a4]
push ecx
call fcn.0053a4c0
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push 0
push 0
push 0
push dword [ebp - 0x8ac]
call fcn.00453f80
add esp, 0x10
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a4]
push eax
call fcn.0053a4c0
mov eax, dword [ebp - 0x8bc]
add esp, 0xc
test eax, eax
je 0x513026
push eax
call fcn.00592c4b
add esp, 4
cmp word [ebp - 0x8b0], 0xf
push edi
jne 0x51304f
call fcn.00592c4b
add esp, 4
mov eax, 0xf
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
xor eax, eax
cmp dword [edi], eax
cmovne ebx, eax
movzx esi, bx
mov dword [ebp - 0x8b0], esi
call fcn.00592c4b
add esp, 4
mov ax, si
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
je 0x513093
push 4
push 4
push dword [ebp - 0x8a4]
call fcn.0053f190
add esp, 0xc
mov ecx, dword [ebp - 0x8a8]
xor esi, esi
cmp byte [ecx + 0x1c], 0
je 0x513232
cmp dword [ecx + 4], esi
jbe 0x513119
mov edi, dword [ebp - 0x8bc]
mov ebx, dword [ebp - 0x8d0]
push 1
push 0
lea eax, [ebp - 0x8c8]
mov dword [ebp - 0x8c8], edi
push eax
push dword [ebp - 0x8a4]
call fcn.0053b290
push dword [ebp - 0x880]
push dword [ebp - 0x8c8]
push dword [ebp - 0x894]
call fcn.00592150
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [ebp - 0x8ac]
call fcn.004585b0
movzx eax, ax
add esp, 0x2c
mov dword [ebp - 0x8b0], eax
test ax, ax
jne 0x513119
mov eax, dword [ebp - 0x8a8]
inc esi
add edi, ebx
cmp esi, dword [eax + 4]
jb 0x5130b6
mov edi, dword [ebp - 0x8ac]
mov eax, dword [ebp - 0x8c4]
mov dword [eax], 1
mov esi, dword [ebp - 0x8a8]
cmp byte [esi + 0x19], 3
jne 0x5132ce
push 0x400
xor edi, edi
lea eax, [ebp - 0x414]
push edi
push eax
call fcn.00595760
mov ebx, dword [esi + 8]
add esp, 0xc
and ebx, 0x10
je 0x51317c
movzx ecx, word [esi + 0x16]
test cx, cx
je 0x51317c
xor eax, eax
test ecx, ecx
jle 0x51317c
mov edx, dword [esi + 0x9c]
nop
cmp byte [edx + eax], 0xff
je 0x513177
inc edi
inc eax
cmp eax, ecx
jl 0x513170
cmp edi, 1
jle 0x513298
test ebx, ebx
je 0x513298
cmp word [esi + 0x16], 0
jbe 0x513298
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x14]
jae 0x5131f0
xor edx, edx
jmp 0x5131b0
mov eax, dword [esi + 0x10]
movzx eax, byte [edx + eax]
mov byte [ebp + ecx*4 - 0x414], al
mov eax, dword [esi + 0x10]
movzx eax, byte [edx + eax + 1]
mov byte [ebp + ecx*4 - 0x413], al
mov eax, dword [esi + 0x10]
movzx eax, byte [edx + eax + 2]
add edx, 3
mov byte [ebp + ecx*4 - 0x412], al
mov byte [ebp + ecx*4 - 0x411], 0xff
inc ecx
movzx eax, word [esi + 0x14]
cmp ecx, eax
jl 0x5131b0
xor eax, eax
xor ecx, ecx
cmp ax, word [esi + 0x16]
jae 0x513219
lea ebx, [ebx]
mov eax, dword [esi + 0x9c]
mov al, byte [ecx + eax]
mov byte [ebp + ecx*4 - 0x411], al
inc ecx
movzx eax, word [esi + 0x16]
cmp ecx, eax
jl 0x513200
mov edi, dword [ebp - 0x8ac]
lea eax, [ebp - 0x414]
push eax
push 8
push 0x400
jmp 0x5132d4
mov eax, dword [ebp - 0x894]
mov dword [ebp - 0x8c8], eax
cmp dword [ecx + 4], esi
jbe 0x513119
mov edi, dword [ebp - 0x8ac]
lea ecx, [ecx]
push 1
push 0
lea eax, [ebp - 0x8c8]
push eax
push dword [ebp - 0x8a4]
call fcn.0053b290
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call fcn.004585b0
movzx eax, ax
add esp, 0x20
mov dword [ebp - 0x8b0], eax
test ax, ax
jne 0x51311f
mov eax, dword [ebp - 0x8a8]
inc esi
cmp esi, dword [eax + 4]
jb 0x513250
jmp 0x51311f
movzx eax, word [esi + 0x14]
lea eax, [eax + eax*2]
push eax
push dword [esi + 0x10]
lea eax, [ebp - 0x414]
push eax
call fcn.00592150
mov edi, dword [ebp - 0x8ac]
lea eax, [ebp - 0x414]
push eax
push 8
push 0x100
push edi
call fcn.00453f80
add esp, 0x1c
jmp 0x5132dd
push 0
push 0
push 0
push edi
call fcn.00453f80
add esp, 0x10
push dword [ebp - 0x8b4]
push dword [ebp - 0x8a4]
call fcn.0053a710
add esp, 8
test dword [edi + 0x8c], 0x40000
je 0x51382b
push 0
lea eax, [ebp - 0x8d4]
push eax
push dword [ebp - 0x8b4]
push dword [ebp - 0x8a4]
call fcn.00540260
add esp, 0x10
mov dword [ebp - 0x8cc], eax
test eax, eax
jle 0x51382b
xor ebx, ebx
mov dword [ebp - 0x8b8], ebx
jmp 0x513340
mov esi, dword [ebp - 0x8d4]
mov ecx, str.Artist
mov esi, dword [ebx + esi + 4]
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513371
test dl, dl
je 0x51336d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513371
add eax, 2
add ecx, 2
test dl, dl
jne 0x513351
xor eax, eax
jmp 0x513376
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Author
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5133a5
test dl, dl
je 0x5133a1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5133a5
add eax, 2
add ecx, 2
test dl, dl
jne 0x513385
xor eax, eax
jmp 0x5133aa
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Comment
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5133e0
test dl, dl
je 0x5133dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5133e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x5133c0
xor eax, eax
jmp 0x5133e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Copyright
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513414
test dl, dl
je 0x513410
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513414
add eax, 2
add ecx, 2
test dl, dl
jne 0x5133f4
xor eax, eax
jmp 0x513419
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Creation_Time
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513448
test dl, dl
je 0x513444
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513448
add eax, 2
add ecx, 2
test dl, dl
jne 0x513428
xor eax, eax
jmp 0x51344d
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Description
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513480
test dl, dl
je 0x51347c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513480
add eax, 2
add ecx, 2
test dl, dl
jne 0x513460
xor eax, eax
jmp 0x513485
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Disclaimer
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5134b4
test dl, dl
je 0x5134b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5134b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x513494
xor eax, eax
jmp 0x5134b9
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Document
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5134e8
test dl, dl
je 0x5134e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5134e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x5134c8
xor eax, eax
jmp 0x5134ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Label
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513520
test dl, dl
je 0x51351c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513520
add eax, 2
add ecx, 2
test dl, dl
jne 0x513500
xor eax, eax
jmp 0x513525
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Make
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513554
test dl, dl
je 0x513550
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513554
add eax, 2
add ecx, 2
test dl, dl
jne 0x513534
xor eax, eax
jmp 0x513559
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Model
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513588
test dl, dl
je 0x513584
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513588
add eax, 2
add ecx, 2
test dl, dl
jne 0x513568
xor eax, eax
jmp 0x51358d
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Software
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5135c0
test dl, dl
je 0x5135bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5135c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x5135a0
xor eax, eax
jmp 0x5135c5
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Source
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5135f4
test dl, dl
je 0x5135f0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5135f4
add eax, 2
add ecx, 2
test dl, dl
jne 0x5135d4
xor eax, eax
jmp 0x5135f9
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.TimeStamp
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513628
test dl, dl
je 0x513624
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513628
add eax, 2
add ecx, 2
test dl, dl
jne 0x513608
xor eax, eax
jmp 0x51362d
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Title
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513660
test dl, dl
je 0x51365c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513660
add eax, 2
add ecx, 2
test dl, dl
jne 0x513640
xor eax, eax
jmp 0x513665
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, 0x5eecf0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513694
test dl, dl
je 0x513690
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513694
add eax, 2
add ecx, 2
test dl, dl
jne 0x513674
xor eax, eax
jmp 0x513699
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.Warning
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5136c8
test dl, dl
je 0x5136c4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5136c8
add eax, 2
add ecx, 2
test dl, dl
jne 0x5136a8
xor eax, eax
jmp 0x5136cd
sbb eax, eax
or eax, 1
test eax, eax
je 0x513883
mov ecx, str.XML:com.adobe.xmp
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x513700
test dl, dl
je 0x5136fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x513700
add eax, 2
add ecx, 2
test dl, dl
jne 0x5136e0
xor eax, eax
jmp 0x513705
sbb eax, eax
or eax, 1
test eax, eax
jne 0x513736
mov eax, dword [ebp - 0x8d4]
mov edx, dword [ebx + eax + 8]
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x513718
sub ecx, esi
lea eax, [ecx + 1]
push eax
push edx
push 3
push edi
call fcn.00452460
add esp, 0x10
jmp 0x513816
push 0x15
push str.Raw_profile_type_iptc
push esi
call fcn.00596360
add esp, 0xc
test eax, eax
jne 0x513816
lea eax, [ebp - 0x8ec]
push eax
mov eax, dword [ebp - 0x8d4]
add eax, ebx
push eax
call fcn.00514430
mov edi, eax
add esp, 8
test edi, edi
je 0x513810
mov eax, dword [0x5d7534]
mov ebx, dword [ebp - 0x8ec]
movq xmm0, qword [str.Photoshop_3.0]
mov dword [ebp - 0x8dc], eax
mov ax, word [0x5d7538]
mov word [ebp - 0x8be], ax
mov al, byte [0x5d753a]
mov byte [ebp - 0x8ee], al
lea eax, [ebx + 0xe]
push eax
movq qword [ebp - 0x8e4], xmm0
call fcn.00593e38
mov esi, eax
add esp, 4
test esi, esi
je 0x513801
movq xmm0, qword [ebp - 0x8e4]
mov eax, dword [ebp - 0x8dc]
movq qword [esi], xmm0
mov dword [esi + 8], eax
mov ax, word [ebp - 0x8be]
push ebx
mov word [esi + 0xc], ax
lea eax, [esi + 0xe]
push edi
push eax
call fcn.00592150
lea eax, [ebx + 0xe]
push eax
push esi
push 2
push dword [ebp - 0x8ac]
call fcn.00452460
push esi
call fcn.00592c4b
add esp, 0x20
push edi
call fcn.00592c4b
mov ebx, dword [ebp - 0x8b8]
add esp, 4
mov edi, dword [ebp - 0x8ac]
add ebx, 0x1c
dec dword [ebp - 0x8cc]
mov dword [ebp - 0x8b8], ebx
jne 0x513340
push dword [ebp - 0x8c4]
call fcn.00592c4b
mov esi, dword [ebp - 0x8b0]
add esp, 4
lea eax, [ebp - 0x8b4]
push eax
lea eax, [ebp - 0x8a8]
push eax
lea eax, [ebp - 0x8a4]
push eax
call fcn.0053a4c0
mov eax, dword [ebp - 0x8bc]
add esp, 0xc
test eax, eax
je 0x51386f
push eax
call fcn.00592c4b
add esp, 4
mov ax, si
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
ret
push str.comment
push esi
call fcn.00596550
add esp, 8
test eax, eax
mov eax, dword [ebp - 0x8d4]
push 0
push dword [ebx + eax + 8]
jne 0x5138af
push edi
call fcn.004522a0
add esp, 0xc
jmp 0x513816
push dword [ebx + eax + 4]
push edi
call fcn.004526f0
add esp, 0x10
jmp 0x513816
mov ecx, dword [ebp - 4]
mov eax, 2
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret