Function at 0x59c630
Capabilities:
Authenticate hmac
Parse pe header
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
mov eax, dword [0x6d7160]
xor eax, esp
mov dword [esp + 0xb0], eax
fldz
push ebx
xor ebx, ebx
or eax, 0xffffffff
push esi
mov esi, ecx
mov dword [esi + 0x338], eax
fstp dword [esi + 0x320]
mov dword [esi + 0x474], eax
mov dword [esi + 0x478], eax
lea eax, [esi + 0x295]
mov dword [esp + 0x24], eax
mov byte [eax], bl
lea eax, [esi + 0x255]
mov dword [esp + 8], eax
mov byte [eax], bl
lea eax, [esi + 0x215]
push edi
mov dword [esp + 0x14], eax
mov byte [eax], bl
lea eax, [esi + 0x10]
push 0x80
mov dword [esp + 0x30], eax
mov byte [eax], bl
lea eax, [esi + 0x3d8]
push ebx
push eax
mov dword [esp + 0x1c], esi
mov word [esi + 0x2055c], bx
mov dword [esi + 0x36c], ebx
mov word [esi + 0x46e], bx
mov word [esi + 0x45e], bx
mov word [esi + 0x45c], bx
mov word [esi + 0x466], bx
mov word [esi + 0x464], bx
mov word [esi + 0x462], bx
mov word [esi + 0x460], bx
mov dword [esi + 0x3ac], ebx
mov byte [esi + 0x2d5], bl
mov byte [esi + 0x15], bl
mov dword [esi + 0x340], ebx
call fcn.0060c930
xor eax, eax
mov dword [esi + 0x38c], eax
mov dword [esi + 0x390], eax
mov dword [esi + 0x394], eax
add esp, 0xc
mov dword [esi + 0x398], eax
mov dword [esi + 0x39c], eax
push 0x80
mov dword [esi + 0x3a0], eax
lea ecx, [esi + 0x4dc]
push ebx
mov dword [esi + 0x3a4], eax
push ecx
mov dword [esi + 0x3a8], eax
call fcn.0060c930
add esp, 0xc
mov word [esi + 0x472], bx
mov word [esi + 0x470], bx
mov dword [esi + 0x358], ebx
mov dword [esi + 0x34c], ebx
mov dword [esi + 0x96930], ebx
mov dword [esi + 0x9692c], ebx
mov dword [esi + 0x384], ebx
mov dword [esi + 0x380], ebx
mov dword [esi + 0x35c], ebx
mov dword [esi + 0x348], ebx
mov dword [esi + 0x458], ebx
mov dword [esi + 0x3c4], ebx
mov dword [esi + 0x3bc], ebx
mov dword [esi + 0x334], ebx
mov dword [esi + 0x3c8], ebx
mov dword [esi + 0x388], ebx
mov dword [esi + 0x37c], ebx
mov dword [esi + 0x330], ebx
mov dword [esi + 0x328], ebx
mov dword [esi + 0x32c], ebx
mov dword [esi + 0x3b8], ebx
mov dword [esi + 0x3cc], ebx
mov dword [esi + 0x360], ebx
fld1
mov eax, 1
mov dword [esi + 0x3b4], eax
fstp qword [esi + 0x480]
fldz
mov dword [esi + 0x3c0], eax
mov eax, SysReAllocString
lea ecx, [esi + 0x205d8]
mov dword [esi + 0x3b0], ebx
mov dword [esi + 0x3d4], eax
mov dword [esi + 0x3d0], eax
xor edi, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ecx
xor edx, edx
cmp edi, 1
sete dl
xor eax, eax
cmp edi, 3
setl al
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
mov edx, 3
mov dword [esp + 0x1c], eax
fstp dword [ecx - 0x10]
lea eax, [ecx + 0x10]
fild dword [esp + 0x1c]
fstp dword [ecx]
fst dword [eax]
add eax, 0x10
sub edx, 1
jne 0x59c849
xor eax, eax
add ecx, 0x40
xor edx, edx
cmp eax, edi
sete dl
add eax, 1
add ecx, 0x10
cmp eax, 3
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fstp dword [ecx - 0x10]
jl 0x59c858
mov ecx, dword [esp + 0x20]
add edi, 1
add ecx, 4
cmp edi, 4
mov dword [esp + 0x20], ecx
jl 0x59c81c
lea ecx, [esi + 0x55c]
fstp st(0)
mov dword [esi + 0x47c], 3
xor eax, eax
mov dword [esp + 0x34], ecx
mov word [ecx], ax
add eax, 1
add ecx, 2
cmp eax, 0x4000
jl 0x59c8a0
call fcn.0057df50
mov word [esi + 4], ax
call fcn.0057e000
mov dword [esp + 0x20], eax
mov eax, dword [esi]
cmp dword [eax + 0x14], ebx
je 0x59c8e1
cmp dword [eax + 0x18], 0xffffffff
je 0x59c8ef
mov edx, dword [eax + 0x1c]
xor ecx, ecx
cmp ecx, edx
sbb ecx, ecx
not ecx
and ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59c8ef
mov edx, dword [eax + 4]
push ebx
push ebx
push edx
call fcn.006081d8
add esp, 0xc
mov edi, dword [esi]
cmp dword [edi + 0x14], ebx
je 0x59c93f
mov eax, dword [edi + 0x1c]
cmp eax, 0x20
mov dword [esp + 0x1c], 0x20
jb 0x59c910
mov ecx, dword [edi + 0x18]
lea edx, [ecx + 0x20]
cmp edx, eax
jbe 0x59c91b
mov ecx, dword [edi + 0x18]
sub eax, ecx
mov dword [esp + 0x1c], eax
je 0x59c95b
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [edi + 0x14]
add ecx, eax
push ecx
lea ecx, [esp + 0xa4]
push ecx
call fcn.0060d1b0
mov edx, dword [esp + 0x28]
add esp, 0xc
add dword [edi + 0x18], edx
jmp 0x59c95b
mov edi, dword [edi + 4]
cmp edi, ebx
je 0x59c95b
push edi
push 0x20
lea eax, [esp + 0xa4]
push 1
push eax
call fcn.0060860a
add esp, 0x10
mov eax, dword [esi]
cmp dword [eax + 0x14], ebx
je 0x59c973
cmp dword [eax + 0x18], 0xffffffff
je 0x59c982
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x18], ecx
jmp 0x59c982
mov ecx, dword [eax + 4]
push 2
push ebx
push ecx
call fcn.006081d8
add esp, 0xc
mov eax, dword [esi]
cmp dword [eax + 0x14], ebx
je 0x59c992
mov edx, dword [eax + 0x18]
mov dword [esp + 0x1c], edx
jmp 0x59c9a2
mov eax, dword [eax + 4]
push eax
call fcn.00609413
add esp, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov ebx, str.MMMM
lea eax, [esp + 0x9c]
mov dword [esp + 0x18], ecx
call fcn.0057de70
test eax, eax
jne 0x59d6fb
mov ebx, str.IIII
lea eax, [esp + 0x9c]
call fcn.0057de70
test eax, eax
jne 0x59d6fb
movzx eax, word [esi + 4]
cmp ax, 0x4949
je 0x59d654
cmp ax, 0x4d4d
je 0x59d654
mov eax, 4
mov ecx, 0x6b9064
lea edx, [esp + 0x9c]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x59ca1d
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59ca05
test eax, eax
je 0x59ca7a
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59ca6c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59ca7a
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59ca6c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59ca7a
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59ca6c
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59ca7a
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x59ca7a
test edi, edi
mov eax, 1
jg 0x59ca7c
or eax, 0xffffffff
jmp 0x59ca7c
xor eax, eax
test eax, eax
jne 0x59cc15
mov eax, 4
mov ecx, str.Exif
lea edx, [esp + 0xa2]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x59caad
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59ca95
test eax, eax
je 0x59cb0a
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59cafc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cb0a
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59cafc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cb0a
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59cafc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cb0a
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x59cb0a
test edi, edi
mov eax, 1
jg 0x59cb0c
or eax, 0xffffffff
jmp 0x59cb0c
xor eax, eax
test eax, eax
jne 0x59cc15
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59cb3b
cmp dword [eax + 0x18], 0xffffffff
je 0x59cb4b
mov ecx, dword [eax + 0x1c]
cmp ecx, 4
mov dword [eax + 0x18], 4
jbe 0x59cb36
mov ecx, 4
mov dword [eax + 0x18], ecx
jmp 0x59cb4b
mov ecx, dword [eax + 4]
push 0
push 4
push ecx
call fcn.006081d8
add esp, 0xc
call fcn.0057df50
movzx eax, ax
lea ecx, [eax + 4]
mov eax, dword [esi]
mov dword [esi + 0x348], ecx
cmp dword [eax + 0x14], 0
je 0x59cb7b
cmp dword [eax + 0x18], 0xffffffff
je 0x59cb8a
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x59cb76
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59cb8a
mov edx, dword [eax + 4]
push 0
push ecx
push edx
call fcn.006081d8
add esp, 0xc
mov edi, dword [esi]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x59cbe2
mov eax, dword [edi + 0x1c]
cmp eax, 1
mov dword [esp + 0x18], 1
jb 0x59cbad
mov ebx, dword [edi + 0x18]
lea edx, [ebx + 1]
cmp edx, eax
jbe 0x59cbb8
mov ebx, dword [edi + 0x18]
sub eax, ebx
mov dword [esp + 0x18], eax
je 0x59cbfd
mov eax, dword [esp + 0x18]
push eax
add ecx, ebx
push ecx
lea edx, [esp + 0x2f]
push edx
call fcn.0060d1b0
mov eax, dword [esp + 0x24]
add ebx, eax
add esp, 0xc
cmp eax, 1
mov dword [edi + 0x18], ebx
jne 0x59cbfd
movzx eax, byte [esp + 0x27]
jmp 0x59cbf6
mov edi, dword [edi + 4]
test edi, edi
je 0x59cbf4
push edi
call fcn.0060963d
add esp, 4
jmp 0x59cbf6
xor eax, eax
cmp eax, 0xff
je 0x59cc06
push 0xc
mov ecx, esi
call fcn.00598280
mov dword [esi + 0x34c], 0
jmp 0x59d71b
mov eax, 7
mov ecx, str.ARECOYK
lea edx, [esp + 0xb5]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x59cc3e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59cc26
test eax, eax
je 0x59cc9b
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59cc8d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cc9b
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59cc8d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cc9b
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59cc8d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cc9b
movzx edi, byte [edx]
movzx eax, byte [ecx]
sub edi, eax
je 0x59cc9b
test edi, edi
mov eax, 1
jg 0x59cc9d
or eax, 0xffffffff
jmp 0x59cc9d
xor eax, eax
test eax, eax
jne 0x59cd91
mov ecx, dword [str.Contax]
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
movzx edx, word [0x6b9080]
mov word [eax + 4], dx
mov cl, byte [0x6b9082]
mov byte [eax + 6], cl
mov edx, dword [str.N_Digital]
mov eax, dword [esp + 0xc]
mov dword [eax], edx
mov ecx, dword [0x6b9088]
mov dword [eax + 4], ecx
movzx edx, word [0x6b908c]
mov word [eax + 8], dx
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59cd0c
cmp dword [eax + 0x18], 0xffffffff
je 0x59cd1c
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x21
mov dword [eax + 0x18], 0x21
jbe 0x59cd07
mov ecx, 0x21
mov dword [eax + 0x18], ecx
jmp 0x59cd1c
mov eax, dword [eax + 4]
push 0
push 0x21
push eax
call fcn.006081d8
add esp, 0xc
push 1
mov ecx, esi
call fcn.005948f0
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59cd4c
cmp dword [eax + 0x18], 0xffffffff
je 0x59cd5c
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x3c
mov dword [eax + 0x18], 0x3c
jbe 0x59cd47
mov ecx, 0x3c
mov dword [eax + 0x18], ecx
jmp 0x59cd5c
mov ecx, dword [eax + 4]
push 0
push 0x3c
push ecx
call fcn.006081d8
add esp, 0xc
xor edi, edi
mov edi, edi
call fcn.0057e000
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x59cd77
fadd dword [0x6c0a38]
mov edx, edi
sar edx, 1
xor edx, edi
add edi, 1
fstp dword [esi + edx*4 + 0x205c8]
cmp edi, 4
jl 0x59cd60
jmp 0x59d71b
mov edi, 0x6b9090
lea esi, [esp + 0x9c]
mov ecx, 4
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59cdf6
mov ecx, dword [str.Logitech]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [eax], ecx
mov edx, dword [0x6b9098]
mov dword [eax + 4], edx
mov cl, byte [0x6b909c]
mov byte [eax + 8], cl
mov edx, dword [str.Fotoman_Pixtura]
mov eax, dword [esp + 0xc]
mov dword [eax], edx
mov ecx, dword [0x6b90a4]
mov dword [eax + 4], ecx
mov edx, dword [0x6b90a8]
mov dword [eax + 8], edx
mov ecx, dword [0x6b90ac]
mov dword [eax + 0xc], ecx
jmp 0x59d71b
mov edi, str.qktk
lea esi, [esp + 0x9c]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59ce56
mov ecx, dword [str.Apple]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [eax], ecx
movzx edx, word [0x6b90bc]
mov word [eax + 4], dx
mov ecx, dword [str.QuickTake_100]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov edx, dword [0x6b90c4]
mov dword [eax + 4], edx
mov ecx, dword [0x6b90c8]
mov dword [eax + 8], ecx
movzx edx, word [0x6b90cc]
mov word [eax + 0xc], dx
jmp 0x59d71b
mov edi, str.qktn
lea esi, [esp + 0x9c]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59ceb6
mov ecx, dword [str.Apple]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov dword [eax], ecx
movzx edx, word [0x6b90bc]
mov word [eax + 4], dx
mov ecx, dword [str.QuickTake_150]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov edx, dword [0x6b90dc]
mov dword [eax + 4], edx
mov ecx, dword [0x6b90e0]
mov dword [eax + 8], ecx
movzx edx, word [0x6b90e4]
mov word [eax + 0xc], dx
jmp 0x59d71b
mov eax, 8
mov ecx, str.FUJIFILM
lea edx, [esp + 0x9c]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59cedf
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59cec7
test eax, eax
je 0x59cf3e
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x59cf2e
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cf3e
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x59cf2e
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cf3e
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x59cf2e
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59cf3e
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x59cf3e
or edi, 0xffffffff
test esi, esi
mov eax, 1
jg 0x59cf43
mov eax, edi
jmp 0x59cf43
xor eax, eax
or edi, 0xffffffff
test eax, eax
jne 0x59d09e
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59cf75
cmp dword [eax + 0x18], edi
je 0x59cf85
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x54
mov dword [eax + 0x18], 0x54
jbe 0x59cf70
mov ecx, 0x54
mov dword [eax + 0x18], ecx
jmp 0x59cf85
mov ecx, dword [eax + 4]
push 0
push 0x54
push ecx
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
mov dword [esi + 0x34c], eax
call fcn.0057e000
mov dword [esi + 0x358], eax
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59cfc1
cmp dword [eax + 0x18], edi
je 0x59cfd1
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x5c
mov dword [eax + 0x18], 0x5c
jbe 0x59cfbc
mov ecx, 0x5c
mov dword [eax + 0x18], ecx
jmp 0x59cfd1
mov edx, dword [eax + 4]
push 0
push 0x5c
push edx
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
mov ecx, eax
mov eax, esi
call fcn.0059a760
mov edx, 0x78
cmp dword [esi + 0x34c], edx
jle 0x59d046
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59d00a
cmp dword [eax + 0x18], edi
je 0x59d019
mov ecx, dword [eax + 0x1c]
cmp ecx, edx
mov dword [eax + 0x18], edx
jbe 0x59d005
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59d019
mov eax, dword [eax + 4]
push 0
push edx
push eax
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
xor ecx, ecx
test eax, eax
setne cl
add dword [esi + 0x3c0], ecx
cmp dword [esi + 0x3c0], 2
jne 0x59d046
cmp dword [esi + 0x370], 0
je 0x59d046
mov ecx, eax
mov eax, esi
call fcn.0059a760
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59d06c
cmp dword [eax + 0x18], edi
je 0x59d07c
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x64
mov dword [eax + 0x18], 0x64
jbe 0x59d067
mov ecx, 0x64
mov dword [eax + 0x18], ecx
jmp 0x59d07c
mov ecx, dword [eax + 4]
push 0
push 0x64
push ecx
call fcn.006081d8
add esp, 0xc
call fcn.0057e000
push eax
mov ecx, esi
mov dword [esi + 0x348], eax
call fcn.00598280
mov edx, dword [esi + 0x34c]
add edx, 0xc
push edx
jmp 0x59d714
mov eax, 4
mov ecx, str.RIFF
lea edx, [esp + 0x9c]
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59d0c8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d0b0
test eax, eax
je 0x59d124
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d117
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d124
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d117
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d124
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d117
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d124
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x59d124
test esi, esi
mov eax, 1
jg 0x59d126
mov eax, edi
jmp 0x59d126
xor eax, eax
test eax, eax
jne 0x59d17a
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59d15e
cmp dword [eax + 0x18], edi
je 0x59d16e
mov edx, dword [eax + 0x1c]
xor ecx, ecx
cmp ecx, edx
sbb ecx, ecx
not ecx
and ecx, edx
mov dword [eax + 0x18], 0
mov dword [eax + 0x18], ecx
mov ecx, esi
call fcn.0059ad40
jmp 0x59d71b
mov edx, dword [eax + 4]
push 0
push 0
push edx
call fcn.006081d8
add esp, 0xc
mov ecx, esi
call fcn.0059ad40
jmp 0x59d71b
mov eax, 6
mov ecx, 0x6b90e8
lea edx, [esp + 0x9c]
jmp 0x59d190
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59d1a8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d190
test eax, eax
je 0x59d204
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d1f7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d204
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d1f7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d204
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d1f7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d204
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x59d204
test esi, esi
mov eax, 1
jg 0x59d206
mov eax, edi
jmp 0x59d206
xor eax, eax
test eax, eax
jne 0x59d31f
mov esi, dword [esp + 0x10]
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x59d238
cmp dword [eax + 0x18], edi
je 0x59d248
mov ecx, dword [eax + 0x1c]
cmp ecx, 6
mov dword [eax + 0x18], 6
jbe 0x59d233
mov ecx, 6
mov dword [eax + 0x18], ecx
jmp 0x59d248
mov ecx, dword [eax + 4]
push 0
push 6
push ecx
call fcn.006081d8
add esp, 0xc
mov edi, dword [esi]
cmp dword [edi + 0x14], 0
je 0x59d260
mov ebx, dword [esp + 0x14]
mov eax, 8
call fcn.00410220
jmp 0x59d279
mov edi, dword [edi + 4]
test edi, edi
je 0x59d279
mov edx, dword [esp + 0x14]
push edi
push 8
push 1
push edx
call fcn.0060860a
add esp, 0x10
mov edi, dword [esi]
cmp dword [edi + 0x14], 0
je 0x59d291
mov ebx, dword [esp + 0xc]
mov eax, 8
call fcn.00410220
jmp 0x59d2aa
mov edi, dword [edi + 4]
test edi, edi
je 0x59d2aa
mov eax, dword [esp + 0xc]
push edi
push 8
push 1
push eax
call fcn.0060860a
add esp, 0x10
mov edi, dword [esi]
cmp dword [edi + 0x14], 0
je 0x59d2c2
mov ebx, dword [esp + 0x28]
mov eax, 0x10
call fcn.00410220
jmp 0x59d2db
mov edi, dword [edi + 4]
test edi, edi
je 0x59d2db
mov ecx, dword [esp + 0x28]
push edi
push 0x10
push 1
push ecx
call fcn.0060860a
add esp, 0x10
call fcn.0057df50
movzx edx, ax
mov dword [esi + 0x348], edx
call fcn.0057df50
call fcn.0057df50
mov word [esi + 0x45e], ax
call fcn.0057df50
mov word [esi + 0x45c], ax
mov dword [esi + 0x9692c], 0x585d40
mov dword [esi + 0x338], 0x61616161
jmp 0x59d71b
mov eax, 9
mov ecx, str.DSC_Image
lea edx, [esp + 0x9c]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59d348
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d330
test eax, eax
je 0x59d3a4
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d397
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d3a4
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d397
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d3a4
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d397
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d3a4
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x59d3a4
test esi, esi
mov eax, 1
jg 0x59d3a6
mov eax, edi
jmp 0x59d3a6
xor eax, eax
test eax, eax
jne 0x59d3ba
mov ebx, dword [esp + 0x10]
call fcn.00599bb0
mov esi, ebx
jmp 0x59d71b
mov eax, 4
mov ecx, str.PWAD
lea edx, [esp + 0x9c]
jmp 0x59d3d0
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59d3e8
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d3d0
test eax, eax
je 0x59d444
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d437
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d444
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d437
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d444
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d437
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d444
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x59d444
test esi, esi
mov eax, 1
jg 0x59d446
mov eax, edi
jmp 0x59d446
xor eax, eax
test eax, eax
jne 0x59d45d
mov edx, dword [esp + 0x10]
push edx
call fcn.00599ec0
mov esi, dword [esp + 0x10]
jmp 0x59d71b
mov eax, 4
mov ecx, 0x6b9104
lea edx, [esp + 0x9c]
mov edi, edi
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59d488
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d470
test eax, eax
je 0x59d4e4
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d4d7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d4e4
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d4d7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d4e4
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d4d7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d4e4
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x59d4e4
test esi, esi
mov eax, 1
jg 0x59d4e6
mov eax, edi
jmp 0x59d4e6
xor eax, eax
test eax, eax
jne 0x59d4fe
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.005989b0
mov esi, dword [esp + 0x10]
jmp 0x59d71b
mov eax, 4
mov ecx, str.FOVb
lea edx, [esp + 0x9c]
nop
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59d528
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d510
test eax, eax
je 0x59d584
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d577
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d584
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d577
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d584
movzx esi, byte [edx]
movzx ebx, byte [ecx]
sub esi, ebx
jne 0x59d577
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d584
movzx esi, byte [edx]
movzx edx, byte [ecx]
sub esi, edx
je 0x59d584
test esi, esi
mov eax, 1
jg 0x59d586
mov eax, edi
jmp 0x59d586
xor eax, eax
test eax, eax
jne 0x59d59c
mov ecx, dword [esp + 0x10]
call fcn.0059b7a0
mov esi, dword [esp + 0x10]
jmp 0x59d71b
movzx ecx, byte [esp + 0x9c]
sub ecx, 0x43
jne 0x59d5b6
movzx ecx, byte [esp + 0x9d]
sub ecx, 0x49
je 0x59d5c3
test ecx, ecx
mov eax, 1
jg 0x59d5c5
mov eax, edi
jmp 0x59d5c5
xor eax, eax
test eax, eax
jne 0x59d5db
mov ecx, dword [esp + 0x10]
call fcn.0059b3a0
mov esi, dword [esp + 0x10]
jmp 0x59d71b
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov ebx, 0x6b851c
sub edi, 0x6b8528
sub esi, ebx
mov dword [esp + 0x28], 0x50
jmp 0x59d600
mov eax, dword [esp + 0x1c]
cmp eax, dword [ebx - 4]
jne 0x59d63b
mov eax, ebx
jmp 0x59d610
mov cl, byte [eax]
mov byte [eax + esi], cl
add eax, 1
test cl, cl
jne 0x59d610
lea eax, [ebx + 0xc]
nop
mov cl, byte [eax]
mov byte [eax + edi], cl
add eax, 1
test cl, cl
jne 0x59d620
cmp byte [ebx + 0x1f], cl
je 0x59d63b
mov ecx, dword [esp + 0x10]
push ecx
call fcn.00598df0
sub esi, 0x24
sub edi, 0x24
add ebx, 0x24
sub dword [esp + 0x28], 1
jne 0x59d600
mov esi, dword [esp + 0x10]
jmp 0x59d723
mov eax, 8
mov ecx, str.HEAPCCDR
lea edx, [esp + 0xa2]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x59d67d
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59d665
test eax, eax
je 0x59d6da
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59d6cc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d6da
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59d6cc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d6da
movzx edi, byte [edx]
movzx ebx, byte [ecx]
sub edi, ebx
jne 0x59d6cc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59d6da
movzx edi, byte [edx]
movzx edx, byte [ecx]
sub edi, edx
je 0x59d6da
test edi, edi
mov eax, 1
jg 0x59d6dc
or eax, 0xffffffff
jmp 0x59d6dc
xor eax, eax
test eax, eax
jne 0x59d712
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
sub ecx, eax
push ecx
push eax
mov ecx, esi
mov dword [esi + 0x348], eax
call fcn.00599100
jmp 0x59d71b
mov edi, eax
lea edx, [esp + 0x9c]
sub edi, edx
push edi
mov ecx, esi
call fcn.0059a130
test edi, edi
je 0x59d71b
push 0
mov ecx, esi
call fcn.00598280
mov dword [esp + 0x18], 0
mov ebx, dword [esp + 0x14]
cmp byte [ebx], 0
jne 0x59d74d
mov eax, dword [esp + 0x1c]
push eax
mov eax, esi
call fcn.0059b210
cmp byte [ebx], 0
jne 0x59d74d
push esi
mov dword [esi + 0x3c0], 0
call fcn.0059aa00
xor edi, edi
nop
mov eax, dword [edi + 0x6eb108]
push eax
push ebx
call fcn.00607cb0
add esp, 8
test eax, eax
je 0x59d77e
mov ecx, dword [edi + 0x6eb108]
mov edx, ebx
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
add ecx, 1
add edx, 1
test al, al
jne 0x59d770
add edi, 4
cmp edi, 0x40
jb 0x59d750
push 5
push str.KODAK
push ebx
call fcn.00609774
mov edi, dword [esp + 0x18]
add esp, 0xc
test eax, eax
jne 0x59d7d7
push str._DIGITAL_CAMERA
push edi
call fcn.00607cb0
add esp, 8
test eax, eax
jne 0x59d7d4
push str._Digital_Camera
push edi
call fcn.00607cb0
add esp, 8
test eax, eax
jne 0x59d7d4
push str.FILE_VERSION
push edi
call fcn.00607cb0
add esp, 8
test eax, eax
je 0x59d7d7
mov byte [eax], 0
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x59d7e0
sub eax, edx
cmp byte [eax + esi + 0x214], 0x20
lea eax, [eax + esi + 0x214]
jne 0x59d80b
lea esp, [esp]
mov byte [eax], 0
sub eax, 1
cmp byte [eax], 0x20
je 0x59d800
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x59d810
sub eax, edx
cmp byte [eax + esi + 0x254], 0x20
lea eax, [eax + esi + 0x254]
jne 0x59d83b
lea esp, [esp]
mov byte [eax], 0
sub eax, 1
cmp byte [eax], 0x20
je 0x59d830
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x59d840
mov ecx, dword [esp + 0xc]
sub eax, edx
mov edi, eax
push edi
push ebx
push ecx
call fcn.00617d99
add esp, 0xc
test eax, eax
jne 0x59d88c
mov dl, byte [esi + edi + 0x255]
add edi, 1
cmp dl, 0x20
jne 0x59d88c
mov edx, dword [esp + 0xc]
mov eax, 0x40
sub eax, edi
push eax
lea ecx, [esi + edi + 0x255]
push ecx
push edx
call fcn.00611c10
add esp, 0xc
mov edi, dword [esp + 0xc]
push 0xf
push str.Digital_Camera
push edi
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59d8bc
lea eax, [esi + 0x264]
mov edx, edi
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
add eax, 1
test cl, cl
jne 0x59d8b0
xor ebx, ebx
cmp dword [esi + 0x3c0], ebx
mov byte [esi + 0x2d4], 0
mov byte [esi + 0x294], 0
mov byte [esi + 0x254], 0
mov byte [esi + 0x314], 0
mov byte [esi + 0x214], 0
je 0x5a1689
cmp word [esi + 0x460], bx
jne 0x59d904
mov ax, word [esi + 0x45c]
mov word [esi + 0x460], ax
cmp word [esi + 0x462], bx
jne 0x59d91b
mov cx, word [esi + 0x45e]
mov word [esi + 0x462], cx
movzx ecx, word [esi + 0x46e]
cmp cx, bx
je 0x59d94a
movzx eax, word [esi + 0x460]
fld1
add ax, cx
fstp qword [esi + 0x480]
mov word [esi + 0x462], ax
add eax, 0xffffffff
mov word [esi + 0x460], ax
cmp word [esi + 0x460], 0xa40
jne 0x59d972
cmp word [esi + 0x462], 0xf60
jne 0x59d972
mov word [esi + 0x460], 0xa38
mov word [esi + 0x462], 0xf38
mov eax, 0xc40
cmp word [esi + 0x460], ax
jne 0x59d9d6
cmp word [esi + 0x462], 0x1300
jne 0x59d99d
mov word [esi + 0x460], 0xc34
mov word [esi + 0x462], 0x1250
cmp word [esi + 0x460], ax
jne 0x59d9d6
cmp word [esi + 0x462], 0x1280
jne 0x59d9d6
mov word [esi + 0x460], 0xc32
mov word [esi + 0x462], 0x124c
mov word [esi + 0x464], 2
mov dword [esi + 0x338], 0x16161616
cmp word [esi + 0x460], 0xbc6
jne 0x59d9f5
cmp word [esi + 0x462], 0x1000
jne 0x59d9f5
mov word [esi + 0x462], 0xfae
cmp dword [esi + 0x3c4], ebx
je 0x59da5b
cmp dword [esi + 0x338], 0xffffffff
jne 0x59da0c
mov dword [esi + 0x338], ebx
cmp dword [esi + 0x338], ebx
je 0x59da22
mov edx, dword [esi + 0x37c]
mov dword [esi + 0x3c0], edx
jmp 0x59da2e
mov eax, dword [esi + 0x37c]
mov dword [esi + 0x47c], eax
mov eax, dword [esi + 0x384]
cmp eax, 1
jne 0x59da43
mov dword [esi + 0x9692c], 0x581b90
cmp eax, 7
jne 0x5a15a1
mov dword [esi + 0x9692c], 0x5819c0
jmp 0x5a15a1
mov esi, dword [esp + 0x14]
xor edx, edx
mov edi, 0x6ad7c8
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
mov eax, edx
sete al
cmp eax, ebx
mov dword [esp + 0x20], eax
je 0x59db21
lea eax, [edx + 8]
mov ecx, str.HEAPCCDR
lea esi, [esp + 0xa2]
lea ecx, [ecx]
mov edx, dword [esi]
cmp edx, dword [ecx]
jne 0x59daa8
sub eax, 4
add ecx, 4
add esi, 4
cmp eax, 4
jae 0x59da90
cmp eax, ebx
je 0x59db05
movzx edi, byte [esi]
movzx edx, byte [ecx]
sub edi, edx
jne 0x59daf7
sub eax, 1
add ecx, 1
add esi, 1
cmp eax, ebx
je 0x59db05
movzx edi, byte [esi]
movzx edx, byte [ecx]
sub edi, edx
jne 0x59daf7
sub eax, 1
add ecx, 1
add esi, 1
cmp eax, ebx
je 0x59db05
movzx edi, byte [esi]
movzx edx, byte [ecx]
sub edi, edx
jne 0x59daf7
sub eax, 1
add ecx, 1
add esi, 1
cmp eax, ebx
je 0x59db05
movzx edi, byte [esi]
movzx eax, byte [ecx]
sub edi, eax
je 0x59db05
cmp edi, ebx
mov eax, 1
jg 0x59db07
or eax, 0xffffffff
jmp 0x59db07
xor eax, eax
cmp eax, ebx
mov eax, 0x580ff0
jne 0x59db15
mov eax, 0x57f990
mov ebx, dword [esp + 0x10]
mov dword [ebx + 0x9692c], eax
jmp 0x59db25
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov edi, 0x6ad564
mov esi, edx
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59db70
cmp dword [ebx + 0x9692c], eax
jne 0x59db4d
mov dword [ebx + 0x9692c], 0x585670
mov eax, dword [esp + 0xc]
cmp byte [eax], 0x45
jne 0x59db74
xor ecx, ecx
cmp dword [ebx + 0x348], ecx
sete cl
add ecx, ecx
add ecx, ecx
or ecx, 2
or dword [ebx + 0x458], ecx
jmp 0x59db74
mov eax, dword [esp + 0xc]
mov esi, edx
mov edi, 0x6b3dc4
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59db9a
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x3ac], 0xf7f
cmp dword [ebx + 0x3c8], edx
je 0x59dbfb
movzx eax, word [ebx + 0x460]
movzx ecx, word [ebx + 0x462]
movzx edx, ax
movzx esi, cx
add edx, edx
cmp edx, esi
jge 0x59dbc8
fld qword [0x69f210]
fstp qword [ebx + 0x480]
cmp ax, cx
jbe 0x59dbd9
fld qword [0x6c0b40]
fstp qword [ebx + 0x480]
push 0
mov edx, ebx
mov dword [ebx + 0x338], 0
mov dword [ebx + 0x9692c], 0x58b920
call fcn.0059c1d0
jmp case.0x5a090f.4291
cmp dword [esp + 0x20], edx
je 0x59dc4e
cmp dword [ebx + 0x380], 0xf
jne 0x59dc4e
movzx eax, word [ebx + 0x462]
movzx ecx, ax
cmp ecx, 0xd10
je 0x59dc26
cmp ecx, 0xf20
je 0x59dc30
jmp 0x59dc39
add eax, 0xffffffbe
mov word [ebx + 0x462], ax
add word [ebx + 0x462], 0xfffa
mov dword [ebx + 0x338], edx
mov dword [ebx + 0x9692c], 0x5812b0
jmp case.0x5a090f.4291
mov edi, str.PowerShot_600
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dcaa
fld qword [0x6c1528]
mov word [ebx + 0x460], 0x265
fstp qword [ebx + 0x480]
mov word [ebx + 0x462], 0x356
mov word [ebx + 0x45e], 0x380
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0xe1e4e1e4
mov dword [ebx + 0x9692c], 0x57eea0
jmp case.0x5a090f.4291
mov edi, str.PowerShot_A5
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0a16
mov edi, str.PowerShot_A5_Zoom
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0a16
mov edi, str.PowerShot_A50
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dd12
mov word [ebx + 0x460], 0x3c8
mov word [ebx + 0x462], 0x50a
mov word [ebx + 0x45e], 0x528
mov dword [ebx + 0x338], 0x1b4e4b1e
jmp 0x5a0a47
mov edi, str.PowerShot_Pro70
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dd45
mov word [ebx + 0x460], 0x400
mov word [ebx + 0x462], 0x610
mov dword [ebx + 0x338], 0x1e4b4e1b
jmp 0x5a0a47
mov edi, str.PowerShot_SD300
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dd93
mov eax, 0xc
mov word [ebx + 0x460], 0x6d8
mov word [ebx + 0x462], 0x928
mov word [ebx + 0x45c], 0x6e6
mov word [ebx + 0x45e], 0x960
mov word [ebx + 0x464], ax
mov word [ebx + 0x466], ax
jmp 0x5a0a51
mov edi, str.PowerShot_A460
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dde1
mov eax, 4
mov word [ebx + 0x460], 0x7a8
mov word [ebx + 0x462], 0xa38
mov word [ebx + 0x45c], 0x7b0
mov word [ebx + 0x45e], 0xa68
mov word [ebx + 0x464], ax
mov word [ebx + 0x466], ax
jmp 0x5a0a51
mov edi, str.PowerShot_A530
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59de2e
mov word [ebx + 0x460], 0x7c0
mov word [ebx + 0x462], 0xa3c
mov word [ebx + 0x45c], 0x7c8
mov word [ebx + 0x45e], 0xa70
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 0xa
jmp 0x5a0a51
mov edi, str.PowerShot_A610
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59de9e
push ebx
call fcn.0057f530
test eax, eax
je 0x59de63
mov eax, dword [str.S2_IS]
mov dword [ebx + 0x25f], eax
mov cx, word [0x6b91ec]
mov word [ebx + 0x263], cx
mov word [ebx + 0x460], 0x7a8
mov word [ebx + 0x462], 0xa38
mov word [ebx + 0x45c], 0x7b0
mov word [ebx + 0x45e], 0xa70
mov word [ebx + 0x464], 8
mov word [ebx + 0x466], 0xc
jmp 0x5a0a51
mov edi, str.PowerShot_A620
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59deeb
mov word [ebx + 0x460], 0x918
mov word [ebx + 0x462], 0xc28
mov word [ebx + 0x45c], 0x924
mov word [ebx + 0x45e], 0xc50
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0x24
jmp 0x5a0a51
mov edi, str.PowerShot_A470
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59df26
mov word [ebx + 0x460], 0x918
mov word [ebx + 0x462], 0xc18
mov word [ebx + 0x45c], 0x92a
mov word [ebx + 0x45e], 0xc50
jmp 0x59dfe1
mov edi, str.PowerShot_A720
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59df73
mov word [ebx + 0x460], 0x9a8
mov word [ebx + 0x462], 0xce2
mov word [ebx + 0x45c], 0x9b0
mov word [ebx + 0x45e], 0xd08
mov word [ebx + 0x464], 5
mov word [ebx + 0x466], 6
jmp 0x5a0a51
mov edi, str.PowerShot_A630
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dfab
mov word [ebx + 0x460], 0x9a8
mov word [ebx + 0x462], 0xcd8
mov word [ebx + 0x45c], 0x9b4
mov word [ebx + 0x45e], 0xd10
jmp 0x59dfe1
mov edi, str.PowerShot_A640
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59dff8
mov word [ebx + 0x460], 0xac8
mov word [ebx + 0x462], 0xe58
mov word [ebx + 0x45c], 0xad4
mov word [ebx + 0x45e], 0xe98
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 0xc
jmp 0x5a0a51
mov edi, str.PowerShot_A650
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e045
mov word [ebx + 0x460], 0xbd0
mov word [ebx + 0x462], 0xfc0
mov word [ebx + 0x45c], 0xbe8
mov word [ebx + 0x45e], 0x1008
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0x30
jmp 0x5a0a51
mov edi, str.PowerShot_S3_IS
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e092
mov word [ebx + 0x460], 0x850
mov word [ebx + 0x462], 0xb18
mov word [ebx + 0x45c], 0x858
mov word [ebx + 0x45e], 0xb48
mov word [ebx + 0x464], 8
mov word [ebx + 0x466], 0x2c
jmp 0x5a0a51
mov edi, str.PowerShot_SX110_IS
mov esi, eax
mov ecx, 0x13
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e0f3
mov word [ebx + 0x460], 0xac8
mov word [ebx + 0x462], 0xe64
mov word [ebx + 0x45c], 0xad4
mov word [ebx + 0x45e], 0xe88
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 6
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 0x28
jmp 0x5a0a7a
mov edi, str.PowerShot_Pro90_IS
mov esi, eax
mov ecx, 0x13
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e127
mov word [ebx + 0x462], 0x768
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0xb4b4b4b4
jmp case.0x5a090f.4291
cmp dword [esp + 0x20], edx
je 0x59e2bd
movzx ecx, word [ebx + 0x45e]
cmp cx, 0x860
jne 0x59e191
mov esi, eax
mov edx, 4
mov edi, str.PowerShot_G1
mov ecx, 0xd
xor eax, eax
mov word [ebx + 0x460], 0x60e
mov word [ebx + 0x462], 0x828
mov word [ebx + 0x464], 8
mov word [ebx + 0x466], dx
repe cmpsb byte [esi], byte es:[edi]
jne case.0x5a090f.4291
mov dword [ebx + 0x47c], edx
mov dword [ebx + 0x338], 0xb4b4b4b4
jmp case.0x5a090f.4291
cmp cx, 0x8b0
jne 0x59e1c1
mov word [ebx + 0x460], 0x5a8
mov word [ebx + 0x462], 0x880
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 0x30
jmp case.0x5a090f.4291
cmp cx, 0x948
jne 0x59e1dc
mov word [ebx + 0x460], 0x6b8
mov word [ebx + 0x462], 0x908
jmp 0x59e1f5
cmp cx, 0xa70
jne 0x59e20c
mov word [ebx + 0x460], 0x7a8
mov word [ebx + 0x462], 0xa38
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 0xc
jmp case.0x5a090f.4291
cmp cx, 0xc50
jne 0x59e25d
cmp dword [ebx + 0x340], 0x80000170
mov word [ebx + 0x460], 0x808
mov word [ebx + 0x462], 0xc10
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0x40
jne case.0x5a090f.4291
push 0x6ad7c8
mov ecx, str.EOS_300D
mov edx, ebx
call fcn.0059c070
jmp case.0x5a090f.4291
cmp cx, 0xc58
jne 0x59e28d
mov word [ebx + 0x460], 0x918
mov word [ebx + 0x462], 0xc28
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0x2c
jmp case.0x5a090f.4291
cmp cx, 0xd10
jne 0x59e2bd
mov word [ebx + 0x460], 0x9a8
mov word [ebx + 0x462], 0xcd8
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 4
jmp case.0x5a090f.4291
mov edi, str.EOS_D2000C
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e2eb
movzx eax, word [ebx + 0x6ec]
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x388], eax
jmp case.0x5a090f.4291
cmp dword [esp + 0x20], edx
je 0x59e6d2
movzx ecx, word [ebx + 0x45e]
cmp cx, 0xdbc
jne 0x59e33b
cmp dword [ebx + 0x340], 0x80000189
mov word [ebx + 0x464], 0xe
mov word [ebx + 0x466], 0x2a
jne 0x59e681
push 0x6ad7c8
mov ecx, str.EOS_350D
mov edx, ebx
call fcn.0059c070
jmp 0x59e681
cmp cx, 0xe0c
jne 0x59e359
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0x4a
jmp 0x59e681
cmp cx, 0xea0
jne 0x59e389
mov word [ebx + 0x460], 0xac8
mov word [ebx + 0x462], 0xe64
mov word [ebx + 0x464], 0x10
mov word [ebx + 0x466], 8
jmp case.0x5a090f.4291
cmp cx, 0xf68
jne 0x59e3b9
mov word [ebx + 0x460], 0xa2a
mov word [ebx + 0x462], 0xf44
mov word [ebx + 0x464], 0x12
mov word [ebx + 0x466], 0x1e
jmp case.0x5a090f.4291
cmp cx, 0xf6c
jne 0x59e41e
add word [ebx + 0x460], 0xfffe
cmp dword [ebx + 0x340], 0x80000236
mov word [ebx + 0x464], 0x12
mov word [ebx + 0x466], 0x2a
jne 0x59e3f8
push 0x6ad7c8
mov ecx, str.EOS_400D
mov edx, ebx
call fcn.0059c070
cmp dword [ebx + 0x340], 0x80000254
jne 0x59e681
push 0x6ad7c8
mov ecx, str.EOS_1000D
mov edx, ebx
call fcn.0059c070
jmp 0x59e681
cmp cx, 0xf90
jne 0x59e445
add word [ebx + 0x460], 0xfffe
mov word [ebx + 0x464], 0x14
mov word [ebx + 0x466], 0x4c
jmp 0x59e681
cmp cx, 0x1008
jne 0x59e475
mov word [ebx + 0x460], 0xbd0
mov word [ebx + 0x462], 0xfc0
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0x30
jmp case.0x5a090f.4291
cmp cx, 0x1038
jne 0x59e493
mov word [ebx + 0x464], 0xc
mov word [ebx + 0x466], 0xc0
jmp 0x59e681
cmp cx, 0x10d8
jne 0x59e4db
add word [ebx + 0x460], 0xfffe
cmp dword [ebx + 0x340], 0x80000176
mov word [ebx + 0x464], 0x12
mov word [ebx + 0x466], 0x16
jne 0x59e681
push 0x6ad7c8
mov ecx, str.EOS_450D
mov edx, ebx
call fcn.0059c070
jmp 0x59e681
cmp cx, 0x117c
jne 0x59e4f9
mov word [ebx + 0x464], 0x22
mov word [ebx + 0x466], 0x5a
jmp 0x59e681
cmp cx, 0x1180
jne 0x59e533
mov word [ebx + 0x460], 0xcfe
mov word [ebx + 0x462], 0x1150
mov word [ebx + 0x464], 0xa
mov word [ebx + 0x466], 0xc
mov dword [ebx + 0x338], 0x49494949
jmp case.0x5a090f.4291
cmp cx, 0x4b8
jne 0x59e59f
mov ecx, dword [ebx + 0x340]
mov ax, word [ebx + 0x462]
mov edx, ecx
sub edx, 0x80000261
neg edx
sbb edx, edx
and edx, 0xffffffe7
add ax, ax
add ax, ax
add edx, 0x33
cmp ecx, 0x80000252
mov word [ebx + 0x464], dx
mov word [ebx + 0x466], 0x3e
mov word [ebx + 0x462], ax
mov word [ebx + 0x45e], ax
jne 0x59e681
push 0x6ad7c8
mov ecx, str.EOS_500D
mov edx, ebx
call fcn.0059c070
jmp 0x59e681
cmp cx, 0x500
jne 0x59e5d8
add word [ebx + 0x460], 0xffd3
mov word [ebx + 0x464], 0x2d
mov word [ebx + 0x466], 0x8e
mov word [ebx + 0x45e], 0x1400
mov word [ebx + 0x462], 0x1334
jmp case.0x5a090f.4291
cmp cx, 0x538
jne 0x59e62b
mov ax, word [ebx + 0x462]
add ax, ax
add ax, ax
cmp dword [ebx + 0x340], 0x80000270
mov word [ebx + 0x464], 0x33
mov word [ebx + 0x466], 0x8e
mov word [ebx + 0x462], ax
mov word [ebx + 0x45e], ax
jne 0x59e681
push 0x6ad7c8
mov ecx, str.EOS_550D
mov edx, ebx
call fcn.0059c070
jmp 0x59e681
cmp cx, 0x53c
je 0x59e639
cmp cx, 0x5a8
jne 0x59e668
mov ax, word [ebx + 0x462]
add ax, ax
add ax, ax
mov word [ebx + 0x464], 0x33
mov word [ebx + 0x466], 0x9e
mov word [ebx + 0x462], ax
mov word [ebx + 0x45e], ax
jmp 0x59e681
cmp cx, 0x13f4
jne 0x59e6a2
mov word [ebx + 0x464], 0xd
mov word [ebx + 0x466], 0x62
mov ax, word [ebx + 0x464]
mov cx, word [ebx + 0x466]
sub word [ebx + 0x460], ax
sub word [ebx + 0x462], cx
jmp case.0x5a090f.4291
cmp cx, 0x1650
jne 0x59e6d2
mov word [ebx + 0x460], 0xea8
mov word [ebx + 0x462], 0x1608
mov word [ebx + 0x464], 0x14
mov word [ebx + 0x466], 0x3e
jmp case.0x5a090f.4291
mov edi, 0x6b92f8
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e70d
fld dword [ebx + 0x205c8]
fmul qword [0x6c1520]
fstp dword [ebx + 0x205c8]
fld dword [ebx + 0x205d0]
fmul qword [0x6c1518]
fstp dword [ebx + 0x205d0]
jmp case.0x5a090f.4291
mov edi, 0x6b92fc
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e739
fld qword [0x69f210]
add word [ebx + 0x462], 0xfffc
fstp qword [ebx + 0x480]
jmp case.0x5a090f.4291
mov edi, str.D40X
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0a02
mov edi, 0x6b9308
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0a02
mov edi, 0x6b930c
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0a02
mov edi, str.D3000
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0a02
mov edi, 0x6b9318
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a09eb
mov edi, 0x6b931c
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a09eb
mov edi, str.D700
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a09eb
mov esi, eax
mov edi, str.D5000
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e7f3
add word [ebx + 0x462], 0xffd6
jmp case.0x5a090f.4291
mov esi, dword [esp + 0xc]
push 3
push 0x6b9330
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x5a09dd
push 3
push 0x6ad52c
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x5a09dd
push 3
push 0x6b9334
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x5a09dd
mov edi, 0x6b9338
mov ecx, 4
xor edx, edx
mov eax, esi
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e85f
add word [ebx + 0x462], 0xffd6
jmp case.0x5a090f.4291
mov edi, str.D100
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e8bf
cmp dword [ebx + 0x384], 0x8799
jne case.0x5a090f.4291
mov esi, ebx
call fcn.005829f0
test eax, eax
jne case.0x5a090f.4291
add word [ebx + 0x462], 3
movzx eax, word [ebx + 0x462]
or dword [ebx + 0x458], 1
add eax, 3
mov dword [ebx + 0x9692c], 0x585670
mov word [ebx + 0x45e], ax
jmp case.0x5a090f.4291
mov esi, eax
mov edi, str.D200
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e8f2
add word [ebx + 0x462], 0xfffc
mov word [ebx + 0x466], 1
mov dword [ebx + 0x338], 0x94949494
jmp case.0x5a090f.4291
mov esi, dword [esp + 0xc]
push 3
push 0x6b934c
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59e921
add word [ebx + 0x462], 0xfff2
mov word [ebx + 0x466], 6
jmp case.0x5a090f.4291
push 3
push 0x6b9350
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59e95f
movzx eax, word [ebx + 0x462]
cmp ax, 0xcc0
jne 0x59e950
mov word [ebx + 0x462], 0xca0
jmp case.0x5a090f.4291
add eax, 0xfffffff8
mov word [ebx + 0x462], ax
jmp case.0x5a090f.4291
push 4
push str.D300
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59e981
add word [ebx + 0x462], 0xffe0
jmp case.0x5a090f.4291
mov edi, str.COOLPIX_P6000
mov ecx, 0xe
xor edx, edx
mov eax, esi
repe cmpsb byte [esi], byte es:[edi]
jne 0x59e9ac
mov dword [ebx + 0x458], 0x18
mov dword [ebx + 0x338], 0x94949494
jmp case.0x5a090f.4291
mov ecx, dword [esp + 0x18]
cmp ecx, 0x182004
jne 0x59ea20
push 3
mov edx, ebx
mov word [ebx + 0x460], 0x3c3
mov word [ebx + 0x462], 0x507
mov word [ebx + 0x45e], 0x660
mov dword [ebx + 0x3ac], 0x3f4
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0x1e1e1e1e
call fcn.0059c1d0
fld dword [0x6c1514]
mov eax, dword [esp + 0x30]
fstp dword [eax]
fld dword [0x6c1510]
fstp dword [ebx + 0x205dc]
fld dword [0x6c150c]
fstp dword [ebx + 0x205e4]
jmp 0x59ea68
cmp ecx, 0x25a000
jne 0x59ea8b
push 0x6ad564
mov ecx, str.E950
mov edx, ebx
mov word [ebx + 0x460], 0x4b3
mov word [ebx + 0x462], 0x650
mov word [ebx + 0x45e], 0x800
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0x4b4b4b4b
call fcn.0059c070
mov dword [ebx + 0x380], 0xa
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 6
jmp case.0x5a090f.4291
cmp ecx, 0x48d000
jne 0x59eb52
mov ecx, dword [ebx + 0x328]
or ecx, dword [ebx + 0x32c]
mov word [ebx + 0x460], 0x604
mov word [ebx + 0x462], 0x810
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0xe1e1e1e1
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 6
jne 0x59eafe
push ebx
call fcn.00582ac0
test eax, eax
je 0x59eafe
mov edx, dword [str.E995]
mov eax, dword [esp + 0xc]
mov dword [eax], edx
mov cl, byte [0x6b9378]
mov byte [eax + 4], cl
mov esi, dword [esp + 0xc]
mov edi, str.E995
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je case.0x5a090f.4291
push 3
mov edx, ebx
mov dword [ebx + 0x338], 0xb4b4b4b4
call fcn.0059c1d0
fld dword [0x6c1508]
mov eax, dword [esp + 0x30]
fstp dword [eax]
fld dword [0x6c1504]
fstp dword [ebx + 0x205dc]
fld dword [0x6c1500]
fstp dword [ebx + 0x205e0]
jmp case.0x5a090f.4291
mov edi, str.E2100
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59eb9e
mov eax, dword [ebx + 0x328]
or eax, dword [ebx + 0x32c]
jne 0x59eb7d
mov ecx, ebx
call fcn.00582bf0
test eax, eax
je 0x59ebb0
mov word [ebx + 0x460], 0x4b6
mov word [ebx + 0x462], 0x650
mov dword [ebx + 0x458], 0x1e
jmp case.0x5a090f.4291
mov edi, str.E2500
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59ebf2
mov ecx, dword [str.E2500]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov dx, word [0x6b9388]
mov word [eax + 4], dx
mov word [ebx + 0x460], 0x4b4
mov word [ebx + 0x462], 0x650
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0x4b4b4b4b
jmp case.0x5a090f.4291
mov eax, dword [esp + 0x18]
cmp eax, 0x48e000
jne 0x59ed06
mov eax, dword [ebx + 0x328]
or eax, dword [ebx + 0x32c]
mov word [ebx + 0x460], 0x606
mov word [ebx + 0x462], 0x810
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 0x1e
jne 0x59ec3b
push ebx
call fcn.00582d20
mov ecx, dword [esp + 0xc]
cmp byte [ecx], 0x45
jne 0x59ec64
lea edx, [ebx + 0x256]
push edx
call fcn.00608929
add esp, 4
cmp eax, 0xe74
jge 0x59ec64
mov dword [ebx + 0x338], 0x49494949
mov esi, dword [esp + 0xc]
mov edi, str.Optio_33WR
mov ecx, 0xb
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59ec8c
mov dword [ebx + 0x474], 1
mov dword [ebx + 0x338], 0x16161616
mov ecx, dword [esp + 0x14]
cmp byte [ecx], 0x4f
jne case.0x5a090f.4291
push 0x369400
push 0x122400
push 0x20
push 0xc
mov ecx, ebx
call fcn.0059c3b0
call fcn.0066a3f0
push 0x246c48
push 0x246030
push 0x20
push 0xc
mov ecx, ebx
mov esi, eax
call fcn.0059c3b0
call fcn.0066a3f0
mov ecx, eax
cdq
mov edi, eax
xor edi, edx
sub edi, edx
mov eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, edi
jge 0x59ecef
mov esi, ecx
mov dword [ebx + 0x458], 0x18
test esi, esi
jge case.0x5a090f.4291
mov dword [ebx + 0x338], 0x61616161
jmp case.0x5a090f.4291
cmp eax, 0x599000
jne 0x59eda6
mov edx, dword [ebx + 0x328]
or edx, dword [ebx + 0x32c]
mov word [ebx + 0x460], 0x6ae
mov word [ebx + 0x462], 0x8f0
mov dword [ebx + 0x338], 0x16161616
jne 0x59ed7b
mov esi, ebx
call fcn.00582e20
test eax, eax
je 0x59ed7b
mov ecx, dword [0x6b3dd4]
mov eax, dword [esp + 0x14]
mov dword [eax], ecx
mov edx, dword [0x6b3dd8]
mov dword [eax + 4], edx
mov ecx, dword [str.DiMAGE_Z2]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov edx, dword [0x6b939c]
mov dword [eax + 4], edx
mov cx, word [0x6b93a0]
mov word [eax + 8], cx
mov edx, dword [esp + 0x14]
xor eax, eax
cmp byte [edx], 0x4d
mov dword [ebx + 0x9692c], 0x585670
sete al
lea eax, [eax + eax*2]
lea ecx, [eax*8 + 6]
mov dword [ebx + 0x458], ecx
jmp case.0x5a090f.4291
mov eax, dword [esp + 0xc]
mov edi, str.E4500
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59ede7
mov word [ebx + 0x460], 0x6ac
mov word [ebx + 0x462], 0x8f0
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0xb4b4b4b4
jmp case.0x5a090f.4291
mov ecx, dword [esp + 0x18]
cmp ecx, 0x718000
jne 0x59ee1e
mov word [ebx + 0x460], 0x784
mov word [ebx + 0x462], 0xa10
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0xb4b4b4b4
jmp case.0x5a090f.4291
cmp ecx, 0x895000
jne 0x59ee5b
mov word [ebx + 0x460], 0x846
mov word [ebx + 0x462], 0xb10
mov dword [ebx + 0x3ac], 0xf83
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 0x1e
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
xor edx, edx
mov edi, str.FUJIFILM
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
lea ecx, [edx + 6]
jne 0x59eff1
lea eax, [ebx + 0x25c]
mov edi, str.S2Pro
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59eec3
mov ecx, dword [str._S2Pro]
mov dword [eax], ecx
mov dx, word [0x6b93b8]
mov word [eax + 4], dx
mov cl, byte [0x6b93ba]
mov byte [eax + 6], cl
mov word [ebx + 0x460], 0x860
mov word [ebx + 0x462], 0xb40
mov dword [ebx + 0x474], 6
jmp 0x59eed9
cmp dword [ebx + 0x9692c], 0x585670
je 0x59eed9
mov dword [ebx + 0x3ac], 0x3e00
cmp dword [ebx + 0x3c0], 2
jne 0x59eef5
cmp dword [ebx + 0x370], 0
je 0x59eef5
mov dword [ebx + 0x3ac], 0x2f00
movzx edi, word [ebx + 0x45c]
movzx edx, word [ebx + 0x460]
movzx esi, word [ebx + 0x45e]
mov eax, edi
sub eax, edx
cdq
sub eax, edx
sar eax, 1
mov word [ebx + 0x464], ax
movzx eax, word [ebx + 0x462]
movzx edx, ax
movzx ecx, si
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
cmp dword [ebx + 0x3c0], 2
mov word [ebx + 0x466], ax
jne 0x59ef72
cmp dword [ebx + 0x36c], 0
je 0x59ef58
lea eax, [esi + esi]
mov word [ebx + 0x45e], ax
movzx ecx, ax
jmp 0x59ef5d
imul ecx, edi
add ecx, ecx
xor eax, eax
cmp eax, dword [ebx + 0x370]
sbb edx, edx
neg edx
imul edx, ecx
add dword [ebx + 0x348], edx
cmp dword [ebx + 0x9692c], 0x582f00
jne case.0x5a090f.4291
movzx esi, word [ebx + 0x462]
movzx eax, word [ebx + 0x460]
xor ecx, ecx
cmp dword [ebx + 0x36c], ecx
mov dx, si
sete cl
shr dx, cl
movzx ecx, word [ebx + 0x36c]
shr ax, cl
movzx ecx, word [ebx + 0x460]
add ax, dx
mov word [ebx + 0x46e], dx
movzx edx, dl
mov word [ebx + 0x462], ax
not edx
add eax, 0xffffffff
test dl, 1
mov word [ebx + 0x45c], cx
mov word [ebx + 0x460], ax
je case.0x5a090f.4291
mov dword [ebx + 0x338], 0x49494949
jmp case.0x5a090f.4291
mov edi, str.RD175
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f033
mov word [ebx + 0x460], 0x3da
mov word [ebx + 0x462], 0x5fe
mov dword [ebx + 0x348], 0x201
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x9692c], 0x586bf0
jmp case.0x5a090f.4291
mov edi, str.KD_400Z
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f065
mov word [ebx + 0x460], 0x6b0
mov word [ebx + 0x462], 0x908
mov word [ebx + 0x45e], 0x920
jmp 0x59f1ba
mov esi, eax
mov edi, str.KD_510Z
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x59f176
mov ecx, dword [esp + 0x14]
push str.MINOLTA
push ecx
call fcn.00617c59
add esp, 8
test eax, eax
jne 0x59f21a
mov esi, dword [esp + 0xc]
push 8
push str.DiMAGE_A
push esi
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x3ac], 0xfff
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59f0f4
mov edi, str.DiMAGE_A200
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f0db
mov dword [ebx + 0x338], 0x49494949
mov dword [ebx + 0x380], 0xc
mov dword [ebx + 0x9692c], 0x585670
jmp case.0x5a090f.4291
push 5
push str.ALPHA
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x59f1d9
push 5
push str.DYNAX
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x59f1d9
push 6
push str.MAXXUM
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x59f1d9
push 8
push str.DiMAGE_G
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
jne case.0x5a090f.4291
mov al, byte [ebx + 0x25d]
cmp al, 0x34
jne 0x59f172
mov word [ebx + 0x460], 0x6b4
mov word [ebx + 0x462], 0x900
jmp 0x59f1a9
cmp al, 0x35
jne 0x59f193
mov word [ebx + 0x460], 0x7a4
mov word [ebx + 0x462], 0xa2f
mov word [ebx + 0x45e], 0xa40
jmp 0x59f1a9
cmp al, 0x36
jne 0x59f1a9
mov word [ebx + 0x460], 0x858
mov word [ebx + 0x462], 0xb20
add dword [ebx + 0x348], 0xe
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x9692c], fcn.00585b30
mov dword [ebx + 0x3ac], 0x3df
mov word [ebx + 4], 0x4d4d
jmp case.0x5a090f.4291
xor eax, eax
cmp byte [esi], 0x4d
lea edi, [ebx + 0x269]
sete al
lea ecx, [eax + ebx + 0x25b]
push ecx
push str.DYNAX___10s
push edi
call fcn.0061acf0
mov edx, dword [esp + 0x20]
add esp, 0xc
push edx
mov ecx, edi
mov edx, ebx
call fcn.0059c070
mov dword [ebx + 0x9692c], 0x585670
jmp case.0x5a090f.4291
mov eax, dword [esp + 0xc]
mov edi, str.ist_D
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f23f
mov dword [ebx + 0x3cc], 0xffffffff
jmp case.0x5a090f.4291
mov edi, str.ist_DS
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f25f
add word [ebx + 0x460], 0xfffe
jmp case.0x5a090f.4291
mov edi, str.K20D
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f280
mov dword [ebx + 0x338], 0x16161616
jmp case.0x5a090f.4291
mov edi, 0x6b9428
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f2aa
mov word [ebx + 0x462], 0x10d5
mov dword [ebx + 0x338], 0x16161616
jmp case.0x5a090f.4291
mov edi, str.Optio_S
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f341
cmp dword [esp + 0x18], 0x308040
jne 0x59f30d
fld dword [ebx + 0x205c8]
mov word [ebx + 0x460], 0x604
fld qword [0x6a5f30]
mov word [ebx + 0x462], 0x810
fmul st(1), st(0)
mov dword [ebx + 0x9692c], 0x588850
fxch st(1)
fstp dword [ebx + 0x205c8]
fmul dword [ebx + 0x205d0]
fstp dword [ebx + 0x205d0]
jmp case.0x5a090f.4291
mov word [ebx + 0x460], 0x608
mov word [ebx + 0x462], 0x814
mov word [ebx + 0x45e], 0xc40
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x3ac], 0xf7c
jmp case.0x5a090f.4291
cmp dword [esp + 0x18], 0x5d4bc0
jne 0x59f37f
mov word [ebx + 0x460], 0x6c9
mov word [ebx + 0x462], 0x914
mov word [ebx + 0x45e], 0xdc0
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x3ac], 0xf7a
jmp case.0x5a090f.4291
mov edi, str.Optio_750Z
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f3bc
mov word [ebx + 0x460], 0x8fe
mov word [ebx + 0x462], 0xc00
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 0x1e
jmp case.0x5a090f.4291
mov esi, eax
mov edi, str.DC_833m
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f409
mov word [ebx + 0x460], 0x990
mov word [ebx + 0x462], 0xcc0
mov word [ebx + 4], 0x4949
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x3ac], 0xfc00
jmp case.0x5a090f.4291
mov ecx, dword [esp + 0xc]
push 3
push 0x6b9448
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59f475
mov ecx, dword [esp + 0x18]
mov eax, 0xd62b80d7
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov word [ebx + 0x460], 0x990
mov word [ebx + 0x462], 0xcc0
mov word [ebx + 0x45e], ax
mov word [ebx + 4], 0x4d4d
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x3ac], 0xffff
jmp case.0x5a090f.4291
mov eax, dword [esp + 0xc]
mov edi, str.NX10
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f4b4
add word [ebx + 0x460], 0xfffc
add word [ebx + 0x462], 0xfff0
mov word [ebx + 0x464], 4
mov word [ebx + 0x466], 8
jmp case.0x5a090f.4291
mov edi, 0x6b9454
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f51e
add word [ebx + 0x462], 0xfffa
movzx eax, word [ebx + 0x462]
cmp ax, 0xe62
mov word [ebx + 4], 0x4949
mov word [ebx + 0x460], 0xac8
mov word [ebx + 0x464], 2
jbe 0x59f50f
mov word [ebx + 0x460], 0xabe
mov word [ebx + 0x462], 0xe54
mov word [ebx + 0x464], 8
mov dword [ebx + 0x3ac], 0x3e00
jmp case.0x5a090f.4291
mov ecx, dword [esp + 0x18]
cmp ecx, 0x1389c00
jne 0x59f53e
mov word [ebx + 0x460], 0xaf8
mov word [ebx + 0x462], 0xe40
jmp 0x59f558
cmp ecx, 0x16e3600
jne 0x59f594
mov word [ebx + 0x460], 0xbb8
mov word [ebx + 0x462], 0xfa0
mov ecx, dword [str.WB550]
mov dword [eax], ecx
mov dx, word [0x6b945c]
mov word [eax + 4], dx
mov word [ebx + 4], 0x4d4d
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x458], 6
mov dword [ebx + 0x3ac], 0x3df
jmp case.0x5a090f.4291
mov edi, str.STV680_VGA
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f5e5
mov word [ebx + 0x460], 0x1e4
mov word [ebx + 0x462], 0x284
mov dword [ebx + 0x9692c], 0x588850
mov dword [ebx + 0x474], 2
mov dword [ebx + 0x338], 0x16161616
mov dword [ebx + 0x388], 0x10
jmp case.0x5a090f.4291
mov edi, 0x6b946c
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f617
mov ax, word [ebx + 0x45c]
sub ax, 2
mov word [ebx + 0x464], 2
mov word [ebx + 0x460], ax
jmp case.0x5a090f.4291
mov edi, str.531C
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f654
mov word [ebx + 0x460], 0x4b0
mov word [ebx + 0x462], 0x640
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x338], 0x49494949
jmp case.0x5a090f.4291
mov edi, str.F_080C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f687
mov word [ebx + 0x460], 0x300
mov word [ebx + 0x462], 0x400
mov dword [ebx + 0x9692c], 0x588850
jmp case.0x5a090f.4291
mov edi, str.F_145C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f6ba
mov word [ebx + 0x460], 0x410
mov word [ebx + 0x462], 0x570
mov dword [ebx + 0x9692c], 0x588850
jmp case.0x5a090f.4291
mov edi, str.F_201C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f6ed
mov word [ebx + 0x460], 0x4b0
mov word [ebx + 0x462], 0x640
mov dword [ebx + 0x9692c], 0x588850
jmp case.0x5a090f.4291
mov edi, str.F_510C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f74e
mov eax, dword [esp + 0x18]
cmp eax, 0x7270e0
mov word [ebx + 0x460], 0x7a6
mov word [ebx + 0x462], 0xa1c
mov ecx, 0x588850
jl 0x59f726
mov ecx, fcn.00585b30
mov dword [ebx + 0x9692c], ecx
mov ecx, eax
sar ecx, 0x16
imul ecx, ecx, 0x4d5228
sub eax, ecx
mov dword [ebx + 0x348], eax
mov dword [ebx + 0x3ac], 0xfff0
jmp case.0x5a090f.4291
mov edi, str.F_810C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f78b
mov word [ebx + 0x460], 0x9a5
mov word [ebx + 0x462], 0xcc8
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x3ac], 0xfff0
jmp case.0x5a090f.4291
mov edi, str.XCD_SX910CR
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f7eb
cmp dword [esp + 0x18], 0x1e8480
mov word [ebx + 0x460], 0x400
mov word [ebx + 0x462], 0x55f
mov word [ebx + 0x45e], 0x560
mov dword [ebx + 0x338], 0x49494949
mov dword [ebx + 0x3ac], 0x3ff
mov eax, 0x588850
jl 0x59f7e0
mov eax, fcn.00585b30
mov dword [ebx + 0x9692c], eax
jmp case.0x5a090f.4291
mov edi, str.2010
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f842
mov word [ebx + 0x460], 0x4b7
mov word [ebx + 0x462], 0x648
mov word [ebx + 4], 0x4949
mov dword [ebx + 0x338], 0x16161616
mov dword [ebx + 0x348], 0xc8c
mov dword [ebx + 0x3ac], 0x3ff
mov dword [ebx + 0x9692c], 0x585b30
jmp case.0x5a090f.4291
mov edi, str.A782
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f899
cmp dword [esp + 0x18], 0x989680
mov word [ebx + 0x460], 0xbb8
mov word [ebx + 0x462], 0x8a0
mov dword [ebx + 0x338], 0x61616161
mov eax, 0x588850
jl 0x59f884
mov eax, fcn.00585b30
mov dword [ebx + 0x9692c], eax
mov dword [ebx + 0x3ac], 0xffc0
jmp case.0x5a090f.4291
mov edi, str.3320AF
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59f97e
mov eax, dword [ebx]
mov edx, 0x800
mov word [ebx + 0x460], 0x600
mov word [ebx + 0x462], dx
mov word [ebx + 0x45e], dx
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x3ac], 0x3ff
cmp dword [eax + 0x14], 0
je 0x59f913
cmp dword [eax + 0x18], 0xffffffff
je 0x59f926
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x300000
mov dword [eax + 0x18], 0x300000
jbe 0x59f90e
mov ecx, 0x300000
mov dword [eax + 0x18], ecx
jmp 0x59f926
mov eax, dword [eax + 4]
push 0
push 0x300000
push eax
call fcn.006081d8
add esp, 0xc
push ebx
call fcn.0059c240
cmp ax, 0x4d4d
mov word [ebx + 4], ax
jne case.0x5a090f.4291
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
add word [ebx + 0x460], 0xfff0
add word [ebx + 0x462], 0xffe4
mov word [ebx + 0x464], 0x10
mov word [ebx + 0x466], 0x1c
mov dword [ebx + 0x3ac], 0xf5c0
mov dword [ecx], 0x475349
mov byte [edx], 0
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
mov edi, str.Hasselblad
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59fa3e
cmp dword [ebx + 0x9692c], 0x580ff0
jne 0x59f9ac
mov dword [ebx + 0x9692c], 0x584e50
movzx eax, word [ebx + 0x45e]
cmp ax, 0x1c5e
jne 0x59f9ec
mov word [ebx + 0x460], 0x1544
mov word [ebx + 0x462], 0x1c50
mov word [ebx + 0x464], 4
mov word [ebx + 0x466], 7
mov dword [ebx + 0x338], 0x61616161
jmp case.0x5a090f.4291
cmp ax, 0xffa
jne case.0x5a090f.4291
mov ecx, dword [str.V96C]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov dl, byte [0x6b94c8]
add word [ebx + 0x460], 0xfffa
add word [ebx + 0x462], 0xfff6
mov byte [eax + 4], dl
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 3
mov dword [ebx + 0x338], 0x61616161
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
mov edi, 0x6b3ed4
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59fb67
lea eax, [edx + 4]
mov ecx, str.8BPS
lea edx, [esp + 0x9c]
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x59fa7d
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x59fa65
test eax, eax
je 0x59fada
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x59facc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59fada
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x59facc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59fada
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x59facc
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x59fada
movzx esi, byte [edx]
movzx eax, byte [ecx]
sub esi, eax
je 0x59fada
test esi, esi
mov eax, 1
jg 0x59fadc
or eax, 0xffffffff
jmp 0x59fadc
xor eax, eax
test eax, eax
jne 0x59fb45
mov eax, dword [ebx]
cmp dword [eax + 0x14], 0
je 0x59fb07
cmp dword [eax + 0x18], 0xffffffff
je 0x59fb17
mov ecx, dword [eax + 0x1c]
cmp ecx, 0xe
mov dword [eax + 0x18], 0xe
jbe 0x59fb02
mov ecx, 0xe
mov dword [eax + 0x18], ecx
jmp 0x59fb17
mov ecx, dword [eax + 4]
push 0
push 0xe
push ecx
call fcn.006081d8
add esp, 0xc
mov esi, ebx
call fcn.0057e000
mov word [ebx + 0x460], ax
call fcn.0057e000
mov word [ebx + 0x462], ax
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x348], 0x44
cmp dword [ebx + 0x9692c], 0
jne 0x59fb58
mov dword [ebx + 0x9692c], fcn.00585b30
mov dword [ebx + 0x3ac], 0x3fff
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
mov edi, str.Leaf
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59fe46
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x348]
mov dword [ebx + 0x3ac], 0x3fff
cmp dword [eax + 0x14], edx
je 0x59fbad
cmp dword [eax + 0x18], 0xffffffff
je 0x59fbbc
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x59fba8
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x59fbbc
mov eax, dword [eax + 4]
push 0
push ecx
push eax
call fcn.006081d8
add esp, 0xc
push 1
lea ecx, [esp + 0x3c]
push ecx
push ebx
call fcn.00580280
test eax, eax
je 0x59fbde
cmp dword [esp + 0x38], 0xf
jne 0x59fbde
mov dword [ebx + 0x3ac], 0x1fff
mov esi, dword [ebx + 0x37c]
cmp esi, 1
jbe 0x59fbf5
mov dword [ebx + 0x338], 0
jmp 0x59fc04
movzx edx, word [ebx + 0x45c]
cmp dword [ebx + 0x3d4], edx
jae 0x59fc0e
mov dword [ebx + 0x9692c], 0x585100
movzx ecx, word [ebx + 0x462]
movzx eax, word [ebx + 0x460]
mov edi, ecx
or edi, eax
mov edx, 0x800
cmp di, dx
jne 0x59fce0
cmp esi, 1
jne 0x59fca2
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x338], esi
mov ecx, dword [str.RBTG]
mov dword [eax], ecx
movzx edx, byte [0x6b94d8]
mov byte [eax + 4], dl
mov ecx, dword [str.CatchLight]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov edx, dword [0x6b94e0]
mov dword [eax + 4], edx
mov cx, word [0x6b94e4]
mov word [eax + 8], cx
movzx edx, byte [0x6b94e6]
mov byte [eax + 0xa], dl
mov word [ebx + 0x464], 8
mov word [ebx + 0x466], 0x12
mov word [ebx + 0x460], 0x7f0
mov word [ebx + 0x462], 0x7e0
jmp case.0x5a090f.4291
mov ecx, dword [str.DCB2]
mov eax, dword [esp + 0xc]
mov dword [eax], ecx
mov dl, byte [0x6b4fd4]
mov byte [eax + 4], dl
mov word [ebx + 0x464], 0xa
mov word [ebx + 0x466], 0x10
mov word [ebx + 0x460], 0x7ec
mov word [ebx + 0x462], 0x7e6
jmp case.0x5a090f.4291
movzx esi, cx
movzx edi, ax
add esi, edi
cmp esi, 0x1454
jne 0x59fda1
mov esi, dword [esp + 0xc]
cmp byte [esi], 0
jne 0x59fd0e
mov edi, dword [str.Cantare]
mov dword [esi], edi
mov edi, dword [0x6b4fc4]
mov dword [esi + 4], edi
cmp cx, ax
jbe 0x59fd41
mov word [ebx + 0x464], 6
mov word [ebx + 0x466], 0x20
mov word [ebx + 0x460], dx
mov word [ebx + 0x462], 0xc00
mov dword [ebx + 0x338], 0x61616161
jmp 0x59fd6d
mov word [ebx + 0x466], 6
mov word [ebx + 0x464], 0x20
mov word [ebx + 0x462], dx
mov word [ebx + 0x460], 0xc00
mov dword [ebx + 0x338], 0x16161616
fldz
fcomp dword [ebx + 0x205c8]
fnstsw ax
test ah, 0x44
jnp 0x59fd92
cmp byte [esi], 0x56
je 0x59fd92
mov dword [ebx + 0x338], 0
jmp case.0x5a090f.4291
cmp cx, 0x844
jne 0x59fdf1
mov edx, dword [str.Valeo_6]
mov ecx, dword [esp + 0xc]
mov dword [ecx], edx
mov edx, dword [0x6b4fb4]
add eax, 0xffffffc4
add word [ebx + 0x462], 0xff92
mov dword [ecx + 4], edx
mov word [ebx + 0x464], 0x1e
mov word [ebx + 0x460], ax
mov word [ebx + 0x466], 0x37
mov dword [ebx + 0x338], 0x49494949
jmp case.0x5a090f.4291
cmp cx, 0xc63
jne case.0x5a090f.4291
mov edx, dword [str.Valeo_6]
mov ecx, dword [esp + 0xc]
mov dword [ecx], edx
mov edx, dword [0x6b4fb4]
mov dword [ecx + 4], edx
mov ecx, 0x18
add eax, 0xffffffd0
add word [ebx + 0x462], 0xffd0
mov word [ebx + 0x464], cx
mov word [ebx + 0x460], ax
mov word [ebx + 0x466], cx
mov dword [ebx + 0x338], 0x16161616
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
mov edi, str.LEICA
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a04cc
mov esi, dword [esp + 0x14]
mov edi, str.Panasonic
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a04cc
mov edi, str.C770UZ
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59febd
mov word [ebx + 0x460], 0x6b6
mov word [ebx + 0x462], 0x900
mov dword [ebx + 0x338], 0x16161616
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 0x1e
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
mov edi, 0x6b5ff0
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0032
movzx ecx, word [ebx + 0x460]
movzx edx, cl
and edx, 1
add edx, ecx
cmp word [ebx + 0x462], 0x1004
mov ecx, dword [ebx + 0x33c]
mov word [ebx + 0x460], dx
mov dword [ebx + 0x338], ecx
jne 0x59ff0b
mov word [ebx + 0x462], 0x1000
cmp dword [ebx + 0x9692c], fcn.00585b30
jne 0x59ff21
mov dword [ebx + 0x458], 4
mov edi, str.E_300
mov esi, eax
mov ecx, 6
xor edx, edx
mov dword [ebx + 0x380], 0xc
repe cmpsb byte [esi], byte es:[edi]
je 0x59ffd8
mov edi, str.E_500
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x59ffd8
mov edi, str.E_330
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x59ff91
add word [ebx + 0x462], 0xffe2
cmp dword [ebx + 0x9692c], 0x585b30
jne case.0x5a090f.4291
mov esi, eax
mov edi, str.SP550UZ
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne case.0x5a090f.4291
add word [ebx + 0x462], 0xffec
cmp dword [ebx + 0x9692c], 0x585b30
jne case.0x5a090f.4291
xor eax, eax
mov dword [ebx + 0x3ac], 0xfc3
mov dword [ebx + 0x38c], eax
mov dword [ebx + 0x390], eax
mov dword [ebx + 0x394], eax
mov dword [ebx + 0x398], eax
mov dword [ebx + 0x39c], eax
mov dword [ebx + 0x3a0], eax
mov dword [ebx + 0x3a4], eax
mov dword [ebx + 0x3a8], eax
jmp case.0x5a090f.4291
mov edi, str.N_Digital
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0079
mov word [ebx + 0x460], 0x7ff
mov word [ebx + 0x462], 0xc00
mov dword [ebx + 0x338], 0x61616161
mov dword [ebx + 0x348], 0x1a00
mov dword [ebx + 0x9692c], 0x585670
jmp case.0x5a090f.4291
mov edi, str.DSC_F828
mov esi, eax
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a00df
mov eax, dword [esp + 0x2c]
mov word [ebx + 0x462], 0xcd8
mov word [ebx + 0x466], 5
mov dword [ebx + 0x348], 0xd27c0
mov dword [ebx + 0x9692c], 0x589c60
mov dword [ebx + 0x338], 0x9c9c9c9c
mov dword [ebx + 0x47c], 4
mov ecx, dword [str.RGBE]
mov dword [eax], ecx
mov dl, byte [0x6b95a4]
mov byte [eax + 4], dl
jmp case.0x5a090f.4291
mov edi, str.DSC_V3
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a011c
mov word [ebx + 0x462], 0xc25
mov word [ebx + 0x466], 0x3b
mov dword [ebx + 0x348], 0xc03c0
mov dword [ebx + 0x9692c], 0x589c60
jmp case.0x5a090f.4291
mov esi, dword [esp + 0x14]
mov edi, str.SONY
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0160
cmp word [ebx + 0x45e], 0xf90
jne 0x5a0160
push str.SONY
mov ecx, str.DSC_R1
mov edx, ebx
call fcn.0059c070
mov word [ebx + 0x462], 0xf55
mov word [ebx + 4], 0x4d4d
jmp case.0x5a090f.4291
mov edi, str.DSLR_A100
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a01ca
cmp word [ebx + 0x462], 0xf28
jne 0x5a01ab
mov edi, str.DSLR_A350
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a01ea
movzx eax, word [ebx + 0x462]
mov edi, dword [esp + 0x1c]
sub edi, dword [ebx + 0x348]
movzx esi, ax
lea ecx, [esi*8]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, edi
cdq
idiv ecx
movzx ecx, word [ebx + 0x460]
movzx edx, cx
cmp eax, edx
jne 0x5a0517
mov dword [ebx + 0x9692c], 0x5860e0
cmp dword [ebx + 0x9692c], 0
jne 0x5a0534
mov dword [ebx + 0x9692c], fcn.00585b30
mov dword [ebx + 0x458], 4
mov eax, esi
cmp eax, 0xe8c
mov dword [ebx + 0x3b8], 1
jg 0x5a07bc
je 0x5a0789
cmp eax, 0xce8
jg 0x5a066a
je 0x5a0643
cmp eax, 0xc62
jg 0x5a05ef
je 0x5a058a
cmp eax, 0xa08
je 0x5a05d9
add word [ebx + 0x466], 0x12
mov eax, 0x916
cmp word [ebx + 0x460], ax
mov word [ebx + 0x462], 0xc18
jbe 0x5a05c3
sub eax, 0xc69
je 0x5a0610
sub eax, 0x24
jne case.0x5a090f.4291
add word [ebx + 0x462], 0xfff6
push str.Panasonic
mov ecx, str.DMC_L1
mov edx, ebx
mov dword [ebx + 0x458], 2
mov dword [ebx + 0x338], 0x49494949
call fcn.0059c070
jmp case.0x5a090f.4291
movzx eax, word [ebx + 0x462]
add eax, 0xffffffef
push str.Panasonic
mov ecx, str.DMC_FZ30
mov edx, ebx
mov word [ebx + 0x462], ax
call fcn.0059c070
jmp case.0x5a090f.4291
cmp eax, 0xe6a
jg 0x5a0755
je 0x5a06fe
sub eax, 0xd02
je 0x5a068c
sub eax, 0x28
je 0x5a06b0
movzx eax, word [ebx + 0x462]
add eax, 0x2b
mov word [ebx + 0x462], ax
mov word [ebx + 0x466], 0xfffa
mov dword [ebx + 0x3ac], 0xf7f
add word [ebx + 0x462], 0xffae
add word [ebx + 0x466], 0xf
cmp word [ebx + 0x460], 0x9b0
jbe 0x5a06de
add ecx, 0xfffffffe
mov word [ebx + 0x460], cx
mov word [ebx + 0x466], 0xfff2
mov dword [ebx + 0x3ac], 0xf7f0
add word [ebx + 0x460], 0xffff
movzx eax, word [ebx + 0x460]
cmp ax, 0xaee
mov word [ebx + 0x462], 0xe58
jne 0x5a07fc
mov word [ebx + 0x460], 0xac8
mov word [ebx + 0x464], 0xf
jmp 0x5a0806
cmp eax, 0xe7e
jne case.0x5a090f.4291
push str.Panasonic
mov ecx, str.DMC_L10
mov edx, ebx
mov word [ebx + 0x462], 0xe62
mov dword [ebx + 0x338], 0x49494949
call fcn.0059c070
jmp case.0x5a090f.4291
movzx eax, word [ebx + 0x462]
add eax, 0xfffffff2
cmp word [ebx + 0x460], 0x992
mov word [ebx + 0x462], ax
jne 0x5a07ee
add word [ebx + 0x462], 0xffd6
mov word [ebx + 0x460], 0x990
jmp 0x5a087d
cmp eax, 0x104c
jg 0x5a08f8
je case.0x5a090f.4396
cmp eax, 0xf28
jg 0x5a085e
je 0x5a0824
sub eax, 0xeba
je 0x5a071b
sub eax, 0x42
jne case.0x5a090f.4291
add word [ebx + 0x462], 0xffd6
jmp 0x5a087d
mov dword [ebx + 0x338], 0x49494949
add word [ebx + 0x466], 0x11
push str.Panasonic
mov ecx, str.DMC_FZ50
mov edx, ebx
call fcn.0059c070
jmp case.0x5a090f.4291
movzx eax, word [ebx + 0x462]
add eax, 0xffffffea
push str.Panasonic
mov ecx, str.DMC_LX1
mov edx, ebx
mov word [ebx + 0x462], ax
mov word [ebx + 0x466], 6
mov dword [ebx + 0x458], 2
call fcn.0059c070
jmp case.0x5a090f.4291
cmp eax, 0xfdc
jne case.0x5a090f.4291
cmp word [ebx + 0x460], 0x8ca
mov word [ebx + 0x462], 0xf8e
jne 0x5a08aa
mov eax, dword [esp + 0x14]
cmp byte [eax], 0x50
mov dword [ebx + 0x338], 0x16161616
je case.0x5a090f.4291
mov ecx, dword [esp + 0xc]
push 7
push str.DMC_FZ3
push ecx
mov word [ebx + 0x462], 0xfb2
mov dword [ebx + 0x338], 0x16161616
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x59f645
sub eax, 0x10c2
cmp eax, 0xda
ja case.0x5a090f.4291
movzx edx, byte [eax + 0x5a16d4]
jmp dword [edx*4 + 0x5a16c0]
movzx eax, word [ebx + 0x462]
add eax, 0xffffffe4
push str.Panasonic
mov ecx, str.DMC_GH1
mov edx, ebx
mov word [ebx + 0x462], ax
mov dword [ebx + 0x338], 0x49494949
call fcn.0059c070
jmp case.0x5a090f.4291
add ecx, 0x26
mov word [ebx + 0x460], cx
mov word [ebx + 0x466], 0xfff2
mov dword [ebx + 0x338], 0x49494949
add word [ebx + 0x460], 0xffd9
movzx eax, word [ebx + 0x460]
cmp ax, 0x960
mov word [ebx + 0x462], 0x1098
jne 0x5a098c
add ecx, 0xfffffffa
mov word [ebx + 0x460], cx
push str.Panasonic
mov ecx, str.DMC_FX150
mov edx, ebx
mov word [ebx + 0x462], 0x114d
mov dword [ebx + 0x338], 0x16161616
call fcn.0059c070
jmp case.0x5a090f.4291
add word [ebx + 0x462], 0xffff
jmp case.0x5a090f.4291
add word [ebx + 0x462], 0xfffc
mov word [ebx + 0x466], 2
jmp case.0x5a090f.4291
add word [ebx + 0x460], 0xfffd
add word [ebx + 0x462], 0xfffc
jmp case.0x5a090f.4291
fld qword [0x6c14e0]
mov word [ebx + 0x460], 0x305
fstp qword [ebx + 0x480]
mov word [ebx + 0x462], 0x3c0
mov word [ebx + 0x45e], 0x3e0
mov dword [ebx + 0x338], 0x1e4e1e4e
mov dword [ebx + 0x47c], 4
cmp word [ebx + 0x45e], 0x640
mov dword [ebx + 0x380], 0xa
mov dword [ebx + 0x9692c], 0x585670
mov dword [ebx + 0x458], 0x28
jbe case.0x5a090f.4291
mov dword [ebx + 0x3b8], 1
mov eax, dword [esp + 0x14]
push str.KODAK
push eax
call fcn.00617c59
add esp, 8
test eax, eax
jne 0x5a0e35
cmp dword [ebx + 0x338], 0xffffffff
jne 0x5a0ab1
mov dword [ebx + 0x338], 0x61616161
mov ecx, dword [esp + 0xc]
push 6
push str.NC2000
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
je 0x5a0b21
mov eax, dword [esp + 0xc]
mov edi, str.EOSDCS3B
mov esi, eax
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0b21
mov edi, str.EOSDCS1
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0b21
mov esi, eax
mov edi, str.DCS420
mov ecx, 7
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x5a0b21
mov ecx, dword [esp + 0xc]
push 7
push str.DCS460
push ecx
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x5a0b35
mov byte [ebx + 0x25b], al
add word [ebx + 0x462], 0xfffc
mov word [ebx + 0x466], 2
jmp 0x5a0bab
mov eax, dword [esp + 0xc]
mov edi, str.DCS460A
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0b65
add word [ebx + 0x462], 0xfffc
mov word [ebx + 0x466], 2
mov dword [ebx + 0x338], edx
jmp 0x5a0ba1
mov edi, str.DCS660M
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0b89
mov dword [ebx + 0x388], 0xd6
mov dword [ebx + 0x338], edx
jmp 0x5a0ba1
mov esi, eax
mov edi, str.DCS760M
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0bab
mov dword [ebx + 0x338], eax
mov dword [ebx + 0x47c], 1
mov edi, 0x6b9648
lea esi, [ebx + 0x259]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0bd6
mov ecx, dword [str.MYCY]
mov eax, dword [esp + 0x2c]
mov dword [eax], ecx
mov dl, byte [0x6b9650]
mov byte [eax + 4], dl
mov esi, dword [esp + 0xc]
push str.DC25
push esi
call fcn.00607cb0
add esp, 8
test eax, eax
je 0x5a0c06
mov eax, dword [str.DC25]
mov dword [esi], eax
mov cl, byte [0x6b9658]
mov byte [esi + 4], cl
mov dword [ebx + 0x348], 0x3c40
push 3
push 0x6b5934
push esi
call fcn.00609774
add esp, 0xc
test eax, eax
jne 0x5a0cc9
cmp dword [esp + 0x1c], 0x186a0
mov word [ebx + 0x460], 0xf2
jge 0x5a0c4b
fld qword [0x6c14d8]
mov word [ebx + 0x45e], 0x100
mov word [ebx + 0x462], 0xf9
jmp 0x5a0c63
fld qword [0x6c14d0]
mov word [ebx + 0x45e], 0x200
mov word [ebx + 0x462], 0x1f5
movzx edx, word [ebx + 0x45e]
fstp qword [ebx + 0x480]
add edx, 1
add dword [ebx + 0x348], edx
push 1
mov edx, ebx
mov dword [ebx + 0x47c], 4
mov dword [ebx + 0x338], 0x8d8d8d8d
call fcn.0059c1d0
mov dword [ebx + 0x9692c], 0x588850
fld dword [0x6c14c8]
fstp dword [ebx + 0x205dc]
fld dword [0x6c14c4]
fstp dword [ebx + 0x205e0]
fld dword [0x6c14c0]
fstp dword [ebx + 0x205e4]
jmp 0x5a14ad
mov edi, 0x6b965c
mov ecx, 3
xor edx, edx
mov eax, esi
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0d17
mov ecx, dword [str.DC40]
mov dword [eax], ecx
mov dl, byte [0x6b9664]
mov byte [eax + 4], dl
mov word [ebx + 0x460], 0x200
mov word [ebx + 0x462], 0x300
mov dword [ebx + 0x348], 0x480
mov dword [ebx + 0x9692c], 0x5875f0
jmp 0x5a14ad
mov esi, eax
push str.DC50
push esi
call fcn.00607cb0
add esp, 8
test eax, eax
je 0x5a0d66
mov eax, dword [str.DC50]
mov dword [esi], eax
mov cl, byte [0x6b966c]
mov byte [esi + 4], cl
mov word [ebx + 0x460], 0x200
mov word [ebx + 0x462], 0x300
mov dword [ebx + 0x348], 0x4d00
mov dword [ebx + 0x9692c], 0x5875f0
jmp 0x5a14ad
push str.DC120
push esi
call fcn.00607cb0
add esp, 8
test eax, eax
je 0x5a0dc6
cmp dword [ebx + 0x384], 7
fld qword [0x6c14b8]
mov edx, dword [str.DC120]
mov dword [esi], edx
mov ax, word [0x6b9674]
fstp qword [ebx + 0x480]
mov word [esi + 4], ax
mov word [ebx + 0x460], 0x3d0
mov word [ebx + 0x462], 0x350
mov eax, fcn.005eb220
je 0x5a0dbb
mov eax, 0x5886b0
mov dword [ebx + 0x9692c], eax
jmp 0x5a14ad
mov edi, str.DCS200
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a14ad
mov word [ebx + 0x472], 0x80
mov word [ebx + 0x470], 0xc0
mov dword [ebx + 0x34c], 0x1800
mov dword [ebx + 0x364], 0x168
mov word [ebx + 0x460], 0x400
mov word [ebx + 0x462], 0x600
mov dword [ebx + 0x348], 0x13800
mov dword [ebx + 0x9692c], 0x588850
mov dword [ebx + 0x388], 0x11
jmp 0x5a14ad
mov eax, dword [esp + 0xc]
mov edi, str.Fotoman_Pixtura
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0e89
push 2
mov edx, ebx
mov word [ebx + 0x460], 0x200
mov word [ebx + 0x462], 0x300
mov dword [ebx + 0x348], 0xe30
mov dword [ebx + 0x9692c], 0x5875f0
mov dword [ebx + 0x338], 0x61616161
call fcn.0059c1d0
jmp 0x5a14ad
mov edi, str.QuickTake_100
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a0fa8
mov eax, dword [ebx]
cmp dword [eax + 0x14], edx
je 0x5a0ec8
cmp dword [eax + 0x18], 0xffffffff
je 0x5a0edb
mov ecx, dword [eax + 0x1c]
cmp ecx, 0x220
mov dword [eax + 0x18], 0x220
jbe 0x5a0ec3
mov ecx, 0x220
mov dword [eax + 0x18], ecx
jmp 0x5a0edb
mov eax, dword [eax + 4]
push 0
push 0x220
push eax
call fcn.006081d8
add esp, 0xc
mov esi, ebx
call fcn.0057df50
mov word [ebx + 0x460], ax
call fcn.0057df50
mov word [ebx + 0x462], ax
call fcn.0057e000
call fcn.0057df50
movzx edx, word [ebx + 0x462]
xor ecx, ecx
cmp ax, 0x1e
movzx eax, word [ebx + 0x460]
sete cl
cmp ax, dx
lea ecx, [ecx + ecx + 0x2e0]
mov dword [ebx + 0x348], ecx
jbe 0x5a0f8f
add eax, edx
mov word [ebx + 0x460], ax
sub ax, word [ebx + 0x462]
add ecx, 0xfffffffa
sub word [ebx + 0x460], ax
mov word [ebx + 0x462], ax
mov eax, dword [ebx]
cmp dword [eax + 0x14], 0
je 0x5a0f68
cmp dword [eax + 0x18], 0xffffffff
je 0x5a0f77
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5a0f63
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5a0f77
push 0
push ecx
mov ecx, dword [eax + 4]
push ecx
call fcn.006081d8
add esp, 0xc
mov esi, ebx
call fcn.0057df50
not eax
and al, 3
neg al
sbb eax, eax
add eax, 6
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x9692c], 0x586f10
mov dword [ebx + 0x338], 0x61616161
jmp 0x5a14ad
mov edi, str.QuickTake_150
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a100a
mov al, byte [esp + 0xa1]
movsx ecx, al
mov edx, 0x2e2
sub edx, ecx
test al, al
mov dword [ebx + 0x348], edx
je 0x5a0fdf
mov dword [ebx + 0x25f], 0x303032
mov dword [ebx + 0x9692c], 0x5875f0
mov word [ebx + 0x460], 0x1e0
mov word [ebx + 0x462], 0x280
mov dword [ebx + 0x338], 0x61616161
jmp 0x5a14ad
mov esi, dword [esp + 0x14]
mov edi, str.Rollei
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a10a2
cmp dword [ebx + 0x9692c], edx
jne 0x5a10a2
movzx eax, word [ebx + 0x45e]
cmp eax, 0x524
je 0x5a1065
cmp eax, 0xa08
jne 0x5a1089
mov word [ebx + 0x460], 0x7a8
mov word [ebx + 0x462], 0xa00
mov word [ebx + 0x464], 2
mov word [ebx + 0x466], 8
jmp 0x5a1089
mov word [ebx + 0x460], 0x406
mov word [ebx + 0x462], 0x514
mov word [ebx + 0x464], 1
mov word [ebx + 0x466], 6
mov dword [ebx + 0x338], 0x16161616
mov dword [ebx + 0x9692c], 0x5830e0
jmp 0x5a14ad
mov edi, str.PC_CAM_600
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a10e8
mov eax, 0x400
mov word [ebx + 0x460], 0x300
mov word [ebx + 0x462], ax
mov dword [ebx + 0x348], eax
mov dword [ebx + 0x338], 0x49494949
mov dword [ebx + 0x9692c], 0x588850
jmp 0x5a14ad
mov edi, str.QV_2000UX
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a1125
mov word [ebx + 0x460], 0x4b8
mov word [ebx + 0x462], 0x660
mov dword [ebx + 0x348], 0xcc0
mov dword [ebx + 0x9692c], 0x588850
jmp 0x5a14ad
cmp dword [esp + 0x18], 0x311960
jne 0x5a1159
mov word [ebx + 0x460], 0x60a
mov word [ebx + 0x462], 0x816
mov word [ebx + 0x45e], 0x820
mov dword [ebx + 0x9692c], 0x588850
jmp 0x5a14ad
mov edi, str.QV_4000
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a1196
mov word [ebx + 0x460], 0x6a4
mov word [ebx + 0x462], 0x8d4
mov dword [ebx + 0x9692c], 0x585b30
mov dword [ebx + 0x3ac], 0xffff
jmp 0x5a14ad
mov edi, str.QV_5700
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a11d2
mov word [ebx + 0x460], 0x784
mov word [ebx + 0x462], 0xa10
mov word [ebx + 0x45e], 0xca0
mov dword [ebx + 0x380], 0xa
jmp 0x5a14ad
mov edi, str.QV_R41
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a120d
mov word [ebx + 0x460], 0x6b8
mov word [ebx + 0x462], 0x908
mov word [ebx + 0x45e], 0xdc0
mov word [ebx + 0x466], 2
jmp 0x5a14ad
mov edi, str.QV_R51
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a123f
mov word [ebx + 0x460], 0x786
mov word [ebx + 0x462], 0xa14
mov word [ebx + 0x45e], 0xf40
jmp 0x5a14ad
mov edi, str.EX_S20
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a127b
mov word [ebx + 0x460], 0x4b8
mov word [ebx + 0x462], 0x654
mov word [ebx + 0x45e], 0x980
mov dword [ebx + 0x474], 3
jmp 0x5a14ad
mov edi, str.EX_S100
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a12ad
mov word [ebx + 0x460], 0x608
mov word [ebx + 0x462], 0x80a
mov word [ebx + 0x45e], 0xc40
jmp 0x5a14ad
mov edi, str.EX_Z50
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a12ca
mov word [ebx + 0x460], 0x78b
jmp 0x5a12e5
mov edi, str.EX_Z55
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a12fc
mov word [ebx + 0x460], 0x7a8
mov word [ebx + 0x462], 0xa0a
mov word [ebx + 0x45e], 0xf40
jmp 0x5a14ad
mov edi, str.EX_Z60
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a1342
mov word [ebx + 0x460], 0x861
mov word [ebx + 0x462], 0xb11
mov word [ebx + 0x45e], 0xe00
mov dword [ebx + 0x338], 0x16161616
mov dword [ebx + 0x380], 0xa
jmp 0x5a14ad
mov edi, str.EX_Z75
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a1375
mov word [ebx + 0x460], 0x911
mov word [ebx + 0x462], 0xc11
mov dword [ebx + 0x3ac], 0xfff
jmp 0x5a14a4
mov edi, str.EX_Z750
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a13a8
mov word [ebx + 0x460], 0x90f
mov word [ebx + 0x462], 0xc0f
mov dword [ebx + 0x3ac], 0xfff
jmp 0x5a14a4
mov edi, str.EX_Z850
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a13e4
mov word [ebx + 0x460], 0x9a4
mov word [ebx + 0x462], 0xccf
mov word [ebx + 0x45e], 0x1340
mov dword [ebx + 0x3ac], 0xfff
jmp 0x5a14ad
mov edi, str.EX_Z1050
mov esi, eax
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a1420
mov word [ebx + 0x460], 0xac0
mov word [ebx + 0x462], 0xe58
mov word [ebx + 0x45e], 0x1600
mov dword [ebx + 0x3ac], 0xffc
jmp 0x5a14ad
mov edi, str.EX_P505
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a1459
mov word [ebx + 0x460], 0x788
mov word [ebx + 0x462], 0xa08
mov word [ebx + 0x45e], 0xf0c
mov dword [ebx + 0x3ac], 0xfff
jmp 0x5a14ad
cmp dword [esp + 0x18], 0x8e1d00
jne 0x5a1480
mov word [ebx + 0x460], 0x85e
mov word [ebx + 0x462], 0xb1c
mov word [ebx + 0x45e], 0x10c0
jmp 0x5a14ad
mov esi, eax
mov edi, str.EX_P700
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x5a14ad
mov word [ebx + 0x460], 0x90e
mov word [ebx + 0x462], 0xc0a
mov word [ebx + 0x45e], 0x1240
mov ecx, dword [esp + 0xc]
cmp byte [ecx], 0
jne 0x5a14d4
movzx edx, word [ebx + 0x460]
movzx eax, word [ebx + 0x462]
push edx
push eax
push str._dx_d
push ecx
call fcn.0061acf0
add esp, 0x10
cmp dword [ebx + 0x338], 0xffffffff
jne 0x5a14e7
mov dword [ebx + 0x338], 0x94949494
cmp dword [ebx + 0x3b4], 0
je 0x5a1500
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
push edx
mov edx, ebx
call fcn.0059c070
cmp dword [ebx + 0x9692c], 0x5875f0
jne 0x5a1526
cmp dword [ebx + 0x3b4], 0
je 0x5a1526
push str.Apple
mov ecx, str.Quicktake
mov edx, ebx
call fcn.0059c070
mov ebx, dword [ebx + 0x34c]
test ebx, ebx
je 0x5a159b
mov eax, dword [esp + 0x10]
cmp word [eax + 0x472], 0
jne 0x5a159b
mov esi, eax
mov eax, dword [esi]
cmp dword [eax + 0x14], 0
je 0x5a155f
cmp dword [eax + 0x18], 0xffffffff
je 0x5a156e
mov ecx, dword [eax + 0x1c]
cmp ecx, ebx
mov dword [eax + 0x18], ebx
jbe 0x5a155a
mov ecx, ebx
mov dword [eax + 0x18], ecx
jmp 0x5a156e
mov ecx, dword [eax + 4]
push 0
push ebx
push ecx
call fcn.006081d8
add esp, 0xc
push 1
lea edx, [esp + 0x3c]
push edx
push esi
call fcn.00580280
test eax, eax
je 0x5a159b
mov cx, word [esp + 0x40]
mov dx, word [esp + 0x3c]
mov eax, esi
mov word [eax + 0x470], cx
mov word [eax + 0x472], dx
jmp 0x5a159f
mov esi, dword [esp + 0x10]
xor ebx, ebx
cmp dword [esi + 0x380], ebx
jne 0x5a15b3
mov dword [esi + 0x380], 0xc
cmp dword [esi + 0x3ac], ebx
jne 0x5a15d1
mov ecx, dword [esi + 0x380]
mov eax, 1
shl eax, cl
sub eax, 1
mov dword [esi + 0x3ac], eax
mov eax, dword [esi + 0x9692c]
cmp eax, ebx
je 0x5a15e5
cmp word [esi + 0x460], 0x16
jae 0x5a15eb
mov dword [esi + 0x3c0], ebx
cmp eax, fcn.005eb220
jne 0x5a15f8
mov dword [esi + 0x3c0], ebx
mov ecx, dword [esp + 0x2c]
cmp byte [ecx], 0
jne 0x5a1622
cmp dword [esi + 0x47c], 3
mov edx, 0x6ad518
je 0x5a1614
mov edx, str.GMCY
mov al, byte [edx]
mov byte [ecx], al
add edx, 1
add ecx, 1
test al, al
jne 0x5a1614
cmp word [esi + 0x45c], bx
jne 0x5a1639
mov cx, word [esi + 0x460]
mov word [esi + 0x45c], cx
cmp word [esi + 0x45e], bx
jne 0x5a1650
mov dx, word [esi + 0x462]
mov word [esi + 0x45e], dx
mov eax, dword [esi + 0x338]
cmp eax, ebx
je 0x5a1689
cmp dword [esi + 0x47c], 3
jne 0x5a1689
mov ecx, eax
and ecx, 0xe2222222
add ecx, ecx
mov edx, eax
shr edx, 2
add ecx, ecx
and edx, 0x22222222
or ecx, edx
lea edx, [eax + eax]
and ecx, edx
or ecx, eax
mov dword [esi + 0x338], ecx
or eax, 0xffffffff
cmp dword [esi + 0x474], eax
jne 0x5a16aa
mov ecx, dword [esi + 0x478]
cmp ecx, eax
mov dword [esi + 0x474], ecx
jne 0x5a16aa
mov dword [esi + 0x474], ebx
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00607d6d
mov esp, ebp
pop ebp
ret