Function at 0x10093e50
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x1b0
push ebx
push ebp
mov eax, 0xc3a
mov word [esp + 0x40], ax
xor eax, eax
mov word [esp + 0x46], ax
push esi
mov esi, ecx
mov ecx, 0x6cf
mov word [esp + 0x46], cx
mov edx, 4
mov word [esp + 0x48], dx
xor edx, edx
mov word [esp + 0x4e], dx
mov ecx, 0xfffffffa
mov word [esp + 0x4c], cx
mov eax, 0xc3a
mov word [esp + 0x50], ax
xor eax, eax
mov word [esp + 0x56], ax
mov ecx, 0x807
mov word [esp + 0x52], cx
mov edx, 4
mov word [esp + 0x54], dx
xor edx, edx
mov word [esp + 0x5a], dx
mov ecx, 0xfffffffa
mov word [esp + 0x58], cx
mov eax, 0xc3a
mov word [esp + 0x5c], ax
xor eax, eax
mov word [esp + 0x62], ax
mov ecx, 0x90f
mov word [esp + 0x5e], cx
mov edx, 4
mov word [esp + 0x60], dx
xor edx, edx
mov word [esp + 0x66], dx
mov ecx, 0xfffffffa
mov word [esp + 0x64], cx
mov eax, 0xc62
mov word [esp + 0x68], ax
xor eax, eax
mov word [esp + 0x6e], ax
mov ecx, 0x837
mov word [esp + 0x6a], cx
mov edx, 0x12
mov word [esp + 0x6c], dx
mov ecx, 0xffffffd6
mov word [esp + 0x70], cx
mov edx, 0x14
mov eax, 0xc62
mov word [esp + 0x74], ax
mov word [esp + 0x72], dx
mov ecx, 0x93f
mov word [esp + 0x76], cx
mov edx, 0x12
mov eax, 0xd
mov word [esp + 0x7a], ax
mov word [esp + 0x78], dx
mov ecx, 0xffffffd6
mov edx, 0xffffffeb
mov eax, 0xc69
mov word [esp + 0x7c], cx
mov word [esp + 0x80], ax
xor eax, eax
mov word [esp + 0x7e], dx
xor edx, edx
mov ecx, 0x93f
push edi
mov word [esp + 0x86], cx
or edi, 0xffffffff
mov ecx, edi
mov word [esp + 0x8a], ax
mov word [esp + 0x8c], cx
mov eax, 0xce8
mov ecx, 0x99a
mov word [esp + 0x88], dx
mov word [esp + 0x8e], dx
mov word [esp + 0x90], ax
mov word [esp + 0x92], cx
xor eax, eax
mov word [esp + 0x96], ax
mov word [esp + 0x94], dx
mov word [esp + 0x9a], dx
mov ecx, edi
mov word [esp + 0x98], cx
mov eax, 0xd02
mov word [esp + 0x9c], ax
xor eax, eax
mov word [esp + 0xa2], ax
mov ecx, 0x99f
mov word [esp + 0x9e], cx
mov edx, 9
mov word [esp + 0xa0], dx
xor edx, edx
mov word [esp + 0xa6], dx
mov ecx, 0xfffffffb
mov word [esp + 0xa4], cx
mov eax, 0xd02
mov word [esp + 0xa8], ax
xor eax, eax
mov word [esp + 0xae], ax
mov ecx, 0x9af
mov word [esp + 0xaa], cx
mov edx, 9
mov word [esp + 0xac], dx
mov ecx, 0xffffffef
mov word [esp + 0xb0], cx
mov edx, 4
mov word [esp + 0xb2], dx
mov eax, 0xd2a
mov word [esp + 0xb4], ax
xor eax, eax
mov word [esp + 0xba], ax
mov ecx, 0x76b
mov word [esp + 0xb6], cx
mov edx, 0xf
mov word [esp + 0xb8], dx
mov ecx, 0xffffffd4
mov word [esp + 0xbc], cx
mov edx, 0x14
mov word [esp + 0xbe], dx
mov eax, 0xd2a
mov word [esp + 0xc0], ax
xor eax, eax
mov ecx, 0x8bb
mov word [esp + 0xc2], cx
mov word [esp + 0xc6], ax
mov edx, 0xf
mov word [esp + 0xc4], dx
mov ecx, 0xffffffd4
mov word [esp + 0xc8], cx
mov edx, 0x14
mov word [esp + 0xca], dx
mov eax, 0xd2a
mov word [esp + 0xcc], ax
mov ecx, 0x9cf
mov word [esp + 0xce], cx
mov edx, 0xf
mov eax, 0xa
mov word [esp + 0xd0], dx
mov word [esp + 0xd2], ax
mov ecx, 0xffffffd4
mov word [esp + 0xd4], cx
mov edx, 0xffffffeb
mov eax, 0xe6a
mov word [esp + 0xd6], dx
mov word [esp + 0xd8], ax
mov ecx, 0xabf
mov edx, 3
xor eax, eax
mov word [esp + 0xda], cx
mov ecx, 0xfffffff8
mov word [esp + 0xdc], dx
mov word [esp + 0xde], ax
mov edx, 0xfffffffd
mov eax, 0xe7e
mov word [esp + 0xe0], cx
mov word [esp + 0xe2], dx
mov word [esp + 0xe4], ax
mov ecx, 0xabf
xor eax, eax
mov word [esp + 0xe6], cx
mov word [esp + 0xea], ax
xor edx, edx
mov ecx, 0xfffffffd
mov word [esp + 0xec], cx
mov word [esp + 0xe8], dx
mov word [esp + 0xee], dx
mov eax, 0xe8c
mov word [esp + 0xf0], ax
xor eax, eax
mov word [esp + 0xf6], ax
mov word [esp + 0xf4], dx
mov ecx, 0x992
mov word [esp + 0xf2], cx
xor ecx, ecx
mov word [esp + 0xf8], cx
mov eax, 0xeba
mov word [esp + 0xfc], ax
xor eax, eax
mov word [esp + 0x102], ax
mov ecx, 0x9b7
mov word [esp + 0xfe], cx
mov edx, 0xfffffffe
mov word [esp + 0xfa], dx
mov ecx, 0xffffffd4
mov word [esp + 0x104], cx
mov edx, 0x11
mov word [esp + 0x100], dx
mov eax, 0xeba
mov word [esp + 0x108], ax
mov ecx, 0xaef
mov word [esp + 0x10a], cx
mov edx, 0x13
mov word [esp + 0x106], dx
mov eax, 0xf
mov word [esp + 0x10e], ax
mov ecx, 0xffffffd4
mov word [esp + 0x110], cx
mov edx, 0x11
mov word [esp + 0x10c], dx
mov eax, 0xf28
mov word [esp + 0x114], ax
xor eax, eax
mov ecx, 0x87a
mov word [esp + 0x116], cx
mov word [esp + 0x11a], ax
mov edx, 0xffffffed
mov word [esp + 0x112], dx
mov ecx, 0xfffffffa
mov word [esp + 0x11c], cx
mov edx, 6
mov word [esp + 0x118], dx
xor edx, edx
mov eax, 0xfdc
mov word [esp + 0x120], ax
xor eax, eax
mov ecx, 0xbca
mov word [esp + 0x122], cx
xor ecx, ecx
mov word [esp + 0x11e], dx
mov word [esp + 0x124], dx
mov word [esp + 0x126], ax
mov word [esp + 0x128], cx
mov edx, 0xfffffffe
mov eax, 0x10c2
mov word [esp + 0x12a], dx
mov word [esp + 0x12c], ax
mov ecx, 0x957
mov edx, 3
xor eax, eax
mov word [esp + 0x12e], cx
mov ecx, 0xfffffff8
mov word [esp + 0x130], dx
mov word [esp + 0x132], ax
mov edx, edi
mov eax, 0x10ea
mov word [esp + 0x134], cx
mov word [esp + 0x136], dx
mov word [esp + 0x138], ax
mov ecx, 0x987
mov word [esp + 0x13a], cx
mov eax, 0xf
mov word [esp + 0x13e], ax
mov edx, 0x11
mov word [esp + 0x13c], dx
mov eax, 0x119c
mov word [esp + 0x144], ax
xor eax, eax
mov ecx, 0xffffffd4
mov word [esp + 0x140], cx
mov edx, 0xffffffed
mov word [esp + 0x142], dx
xor edx, edx
mov ecx, 0xb92
mov word [esp + 0x14a], ax
mov word [esp + 0x146], cx
mov word [esp + 0x148], dx
mov eax, 0x119c
mov ecx, 0xfffffffd
mov edx, 0xfffffffc
mov word [esp + 0x150], ax
xor eax, eax
mov word [esp + 0x14c], cx
mov word [esp + 0x14e], dx
xor edx, edx
mov ecx, 0xd02
mov word [esp + 0x156], ax
mov eax, dword [esi + 0x46c8c]
mov word [esp + 0x152], cx
mov word [esp + 0x154], dx
xor ebp, ebp
mov ecx, 0xfffffffd
mov edx, 0xfffffffa
mov word [esp + 0x158], cx
mov word [esp + 0x15a], dx
cmp eax, ebp
je 0x100944c4
mov ecx, dword [esi + 0x46c90]
push 2
push ebp
push 2
push ecx
call eax
add esp, 0x10
test eax, eax
je 0x100944c4
push 0x102419c0
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], 6
call fcn.101525f9
fldz
xor edx, edx
push 0x190
fst dword [esi + 0x202b4]
xor eax, eax
fst dword [esi + 0x202b0]
xor ecx, ecx
fst dword [esi + 0x202ac]
mov word [esi + 0xaa], dx
fstp dword [esi + 0x202a8]
mov word [esi + 0xb0], dx
mov byte [esi + 0x20258], dl
mov byte [esi + 0x48], dl
mov byte [esi + 8], dl
mov byte [esi + 0x20544], dl
mov byte [esi + 0x20344], dl
mov byte [esi + 0x9c], dl
lea edx, [esi + 0x46a68]
push ebp
push edx
mov dword [esi + 0x98], edi
mov dword [esi + 0xc0], edi
mov dword [esi + 0x409f8], edi
mov word [esi + 0x40a0a], ax
mov dword [esi + 0x40a3c], ebp
mov word [esi + 0x409de], cx
mov word [esi + 0xa8], ax
mov word [esi + 0xb2], cx
mov word [esi + 0xae], ax
mov word [esi + 0xac], cx
mov dword [esi + 0x20220], ebp
mov dword [esi + 0x409f0], ebp
mov dword [esi + 0x409f4], ebp
call fcn.101527d0
push 0x80
lea eax, [esi + 0x202c4]
push ebp
push eax
call fcn.101527d0
xor eax, eax
mov dword [esi + 0x20200], eax
mov dword [esi + 0x20204], eax
mov dword [esi + 0x20208], eax
mov dword [esi + 0x2020c], eax
mov dword [esi + 0x20210], eax
push 0x80
mov dword [esi + 0x20214], eax
lea ecx, [esi + 0xcc]
push ebp
mov dword [esi + 0x20218], eax
push ecx
mov dword [esi + 0x2021c], eax
call fcn.101527d0
xor edx, edx
add esp, 0x24
xor eax, eax
mov word [esi + 0x2058e], dx
mov word [esi + 0x2058c], ax
mov dword [esi + 0x20590], ebp
mov dword [esi + 0x409c8], ebp
mov dword [esi + 0x409cc], ebp
mov dword [esi + 0x46ca4], ebp
mov dword [esi + 0x46ca0], ebp
mov dword [esi + 0x46c98], 0x100907b0
mov dword [esi + 0x40a48], ebp
mov dword [esi + 0x40a44], ebp
mov dword [esi + 0x40a34], ebp
mov dword [esi + 0x40a20], ebp
mov dword [esi + 0x40a24], ebp
mov dword [esi + 0x40a58], ebp
mov dword [esi + 0x8c], ebp
mov dword [esi + 0x40a4c], ebp
mov dword [esi + 0x40a10], ebp
mov dword [esi + 0x90], ebp
mov dword [esi + 0x201fc], ebp
mov dword [esi + 0x40a40], ebp
mov dword [esi + 0x202c0], ebp
mov dword [esi + 0x202b8], ebp
mov dword [esi + 0x202bc], ebp
mov dword [esi + 0x409d8], ebp
mov dword [esi + 0x40a5c], ebp
fld1
mov eax, 0x7fffffff
mov ebx, 1
fstp qword [esi + 0xb8]
fldz
mov dword [esi + 0x40a54], eax
mov dword [esi + 0x40a50], eax
mov dword [esi + 0x2029c], ebp
mov dword [esi + 0x409d0], ebp
mov dword [esi + 0x409d4], ebx
mov dword [esi + 0x88], ebx
xor eax, eax
lea ecx, [esi + 0x15c]
xor edx, edx
cmp eax, ebx
sete dl
mov edi, 3
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
xor edx, edx
cmp eax, 3
setl dl
fstp dword [ecx - 0x10]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
lea edx, [ecx + 0x10]
fstp dword [ecx]
fst dword [edx]
add edx, 0x10
sub edi, ebx
jne 0x100946db
xor edx, edx
cmp eax, ebp
sete dl
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
xor edx, edx
cmp eax, ebx
sete dl
fstp dword [ecx + 0x40]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
xor edx, edx
cmp eax, 2
sete dl
fstp dword [ecx + 0x50]
add eax, ebx
add ecx, 4
cmp eax, 4
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp dword [ecx + 0x5c]
jl 0x100946af
mov eax, dword [esi + 0xc8]
fstp st(0)
and eax, 0xffff924f
or eax, 0x1248
mov dword [esi + 0xc8], eax
mov dword [esi + 0x94], 3
xor eax, eax
lea ecx, [esi + 0x1fc]
nop
mov word [ecx], ax
add eax, ebx
add ecx, 2
cmp eax, 0x4000
jl 0x10094750
mov ecx, dword [esi + 0xc8]
and ecx, 0xfffffff9
or ecx, ebx
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x409b0]
push 2
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push ebx
lea eax, [esp + 0x24]
push eax
call edx
movzx cx, byte [esp + 0x1d]
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x100947b5
movzx dx, byte [esp + 0x1c]
shl cx, 8
or cx, dx
movzx eax, cx
jmp 0x100947c5
movzx ax, byte [esp + 0x1c]
shl ax, 8
or ax, cx
movzx eax, ax
mov ecx, dword [esi + 0x409b0]
push 4
mov word [esi + 0x40a00], ax
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push ebx
lea eax, [esp + 0x24]
push eax
call edx
mov eax, 0x4949
cmp word [esi + 0x40a00], ax
jne 0x10094819
movzx ebx, byte [esp + 0x1f]
movzx ecx, byte [esp + 0x1e]
movzx edx, byte [esp + 0x1d]
movzx eax, byte [esp + 0x1c]
jmp 0x1009482d
movzx ebx, byte [esp + 0x1c]
movzx ecx, byte [esp + 0x1d]
movzx edx, byte [esp + 0x1e]
movzx eax, byte [esp + 0x1f]
shl ebx, 8
or ebx, ecx
mov ecx, dword [esi + 0x409b0]
shl ebx, 8
or ebx, edx
mov edx, dword [ecx]
push ebp
shl ebx, 8
push ebp
or ebx, eax
mov eax, dword [edx + 0xc]
push ebp
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 0x20
push 1
lea eax, [esp + 0x30]
push eax
call edx
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push 2
push ebp
push ebp
call edx
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
push 4
mov edi, eax
push str.MMMM
lea eax, [esp + 0x30]
push 0x20
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], edi
call fcn.100762b0
add esp, 0x10
cmp eax, ebp
jne 0x100951f3
push 4
push str.IIII
lea ecx, [esp + 0x30]
push 0x20
push ecx
call fcn.100762b0
add esp, 0x10
cmp eax, ebp
jne 0x100951f3
movzx eax, word [esi + 0x40a00]
mov edx, 0x4949
cmp ax, dx
je 0x100951b8
mov ecx, 0x4d4d
cmp ax, cx
je 0x100951b8
mov ebx, dword [esp + 0x28]
cmp ebx, 0xe1ffd8ff
jne 0x10094974
cmp dword [esp + 0x2e], 0x66697845
jne 0x10094974
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push ebp
push 4
call eax
mov ecx, esi
call fcn.10076330
mov ecx, dword [esi + 0x409b0]
movzx eax, ax
add eax, 4
cdq
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], edx
mov eax, dword [esi + 0x40a24]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push ebp
push eax
mov eax, dword [esi + 0x40a20]
push eax
call edx
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
cmp eax, 0xff
je 0x10094963
push 0xc
mov ecx, esi
call fcn.100937e0
mov dword [esi + 0x409c8], ebp
mov dword [esi + 0x409cc], ebp
jmp 0x1009521a
cmp dword [esp + 0x41], 0x43455241
jne 0x10094a51
cmp byte [esp + 0x45], 0x4f
jne 0x10094a51
cmp byte [esp + 0x46], 0x59
jne 0x10094a51
cmp byte [esp + 0x47], 0x4b
jne 0x10094a51
mov eax, dword [str.Contax]
mov dword [esi + 8], eax
mov cx, word [0x1017f4cc]
mov word [esi + 0xc], cx
mov dl, byte [0x1017f4ce]
mov byte [esi + 0xe], dl
mov eax, dword [str.N_Digital]
mov dword [esi + 0x48], eax
mov ecx, dword [0x1017de28]
mov dword [esi + 0x4c], ecx
mov dx, word [0x1017de2c]
mov ecx, dword [esi + 0x409b0]
push ebp
mov word [esi + 0x50], dx
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push ebp
push 0x21
call edx
push 1
mov ecx, esi
call fcn.100889a0
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push ebp
push ebp
push 0x3c
call edx
xor edi, edi
mov ecx, esi
call fcn.100763f0
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
test eax, eax
jge 0x10094a21
fadd dword [0x1023ab98]
mov eax, edi
sar eax, 1
xor eax, edi
inc edi
fstp dword [esi + eax*4 + 0x14c]
cmp edi, 4
jl 0x10094a08
mov ecx, dword [esi + 0xc8]
and ecx, 0xffffbfff
or ecx, 0x3000
mov dword [esi + 0xc8], ecx
jmp 0x1009521a
mov ecx, 0x1017f4c4
lea eax, [esp + 0x28]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10094a80
test dl, dl
je 0x10094a7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10094a80
add eax, 2
add ecx, 2
test dl, dl
jne 0x10094a60
xor eax, eax
jmp 0x10094a85
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x10094acb
mov edx, dword [str.Logitech]
mov dword [esi + 8], edx
mov eax, dword [0x1017f4bc]
mov dword [esi + 0xc], eax
mov cl, byte [0x1017f4c0]
mov byte [esi + 0x10], cl
mov edx, dword [str.Fotoman_Pixtura]
mov dword [esi + 0x48], edx
mov eax, dword [0x1017dce0]
mov dword [esi + 0x4c], eax
mov ecx, dword [0x1017dce4]
mov dword [esi + 0x50], ecx
mov edx, dword [0x1017dce8]
mov dword [esi + 0x54], edx
jmp 0x1009521a
mov ecx, str.qktk
lea eax, [esp + 0x28]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10094af4
test dl, dl
je 0x10094af0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10094af4
add eax, 2
add ecx, 2
test dl, dl
jne 0x10094ad4
xor eax, eax
jmp 0x10094af9
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x10094b44
mov eax, dword [str.Apple]
mov dword [esi + 8], eax
mov cx, word [0x1017f4ac]
mov word [esi + 0xc], cx
mov edx, dword [str.QuickTake_100]
mov dword [esi + 0x48], edx
mov eax, dword [0x1017f49c]
mov dword [esi + 0x4c], eax
mov ecx, dword [0x1017f4a0]
mov dword [esi + 0x50], ecx
mov dx, word [0x1017f4a4]
mov word [esi + 0x54], dx
mov dword [esi + 0x46ca0], 0x1007d810
jmp 0x1009521a
mov ecx, str.qktn
lea eax, [esp + 0x28]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10094b70
test dl, dl
je 0x10094b6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10094b70
add eax, 2
add ecx, 2
test dl, dl
jne 0x10094b50
xor eax, eax
jmp 0x10094b75
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebp
jne 0x10094bc0
mov eax, dword [str.Apple]
mov dword [esi + 8], eax
mov cx, word [0x1017f4ac]
mov word [esi + 0xc], cx
mov edx, dword [str.QuickTake_150]
mov dword [esi + 0x48], edx
mov eax, dword [0x1017f484]
mov dword [esi + 0x4c], eax
mov ecx, dword [0x1017f488]
mov dword [esi + 0x50], ecx
mov dx, word [0x1017f48c]
mov word [esi + 0x54], dx
mov dword [esi + 0x46ca0], 0x1007dc60
jmp 0x1009521a
mov eax, 8
xor ecx, ecx
jmp 0x10094bd0
mov edx, dword [esp + ecx + 0x28]
cmp edx, dword [ecx + str.FUJIFILM]
jne 0x10094da9
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x10094bd0
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push ebp
push 0x54
call eax
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x24]
push eax
call edx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.10076390
mov ecx, dword [esi + 0x409b0]
push 4
mov dword [esi + 0x409c8], eax
mov dword [esi + 0x409cc], ebp
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x24]
push eax
call edx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.10076390
mov ecx, dword [esi + 0x409b0]
push ebp
mov dword [esi + 0x20590], eax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push 0x5c
call eax
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x24]
push eax
call edx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.10076390
push eax
mov ecx, esi
call fcn.1008beb0
cmp dword [esi + 0x409cc], ebp
jl 0x10094d1a
jg 0x10094cdc
cmp dword [esi + 0x409c8], 0x78
jbe 0x10094d1a
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push ebp
push 0x78
call eax
mov ecx, esi
call fcn.100763f0
xor ecx, ecx
cmp eax, ebp
setne cl
add dword [esi + 0x88], ecx
cmp dword [esi + 0x88], 2
jne 0x10094d1a
cmp dword [esi + 0x408e8], ebp
je 0x10094d1a
push eax
mov ecx, esi
call fcn.1008beb0
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
xor edx, edx
cmp edx, dword [esi + 0x408e8]
push ebp
sbb eax, eax
neg eax
lea edx, [eax*8]
sub edx, eax
lea eax, [edx*4 + 0x64]
cdq
push edx
push eax
mov eax, dword [edi + 0xc]
call eax
mov ecx, dword [esi + 0x409b0]
push 4
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push 1
lea eax, [esp + 0x24]
push eax
call edx
lea eax, [esp + 0x1c]
push eax
mov ecx, esi
call fcn.10076390
mov ecx, eax
push ecx
mov ecx, esi
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], ebp
call fcn.100937e0
mov edx, dword [esi + 0x409c8]
add edx, 0xc
push edx
mov ecx, esi
call fcn.100937e0
jmp 0x10095213
cmp ebx, 0x46464952
jne 0x10094dcd
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push ebp
push ebp
push ebp
call edx
mov ecx, esi
call fcn.1008c170
jmp 0x1009521a
mov edx, dword [esp + 0x2c]
cmp ebx, 0x1000100
jne 0x10094e94
test dl, dl
jne 0x10094e94
cmp dh, 0x40
jne 0x10094e94
mov ecx, dword [esi + 0x409b0]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push ebp
push ebp
push 6
call edx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 8
push 1
lea eax, [esi + 8]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 8
push 1
lea eax, [esi + 0x48]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 0x10
push 1
lea eax, [esi + 0x20258]
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, esi
call fcn.10076330
movzx eax, ax
cdq
mov ecx, esi
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], edx
call fcn.10076330
mov ecx, esi
call fcn.10076330
mov ecx, esi
mov word [esi + 0xaa], ax
call fcn.10076330
mov word [esi + 0xa8], ax
mov dword [esi + 0x46ca0], 0x1007cc20
mov dword [esi + 0x98], 0x61616161
jmp 0x1009521a
mov eax, 8
xor ecx, ecx
jmp 0x10094ea0
mov edi, dword [esp + ecx + 0x28]
cmp edi, dword [ecx + str.NOKIARAW]
jne 0x10094f7f
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x10094ea0
mov eax, dword [str.NOKIA]
mov dword [esi + 8], eax
mov cx, word [0x1017f470]
mov word [esi + 0xc], cx
mov dx, word [0x1017f468]
mov word [esi + 0x48], dx
mov al, byte [0x1017f46a]
mov ecx, 0x4949
mov word [esi + 0x40a00], cx
mov ecx, dword [esi + 0x409b0]
push ebp
mov byte [esi + 0x4a], al
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push 0x12c
call eax
mov ecx, esi
call fcn.100763f0
mov ecx, esi
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], ebp
call fcn.100763f0
mov ecx, esi
mov edi, eax
call fcn.10076330
mov ecx, esi
mov word [esi + 0xae], ax
call fcn.10076330
mov cx, ax
movzx eax, word [esi + 0xae]
lea eax, [eax + eax*4]
cdq
and edx, 3
add edx, eax
sar edx, 2
movzx eax, cx
imul edx, eax
mov eax, edi
sub eax, edx
cdq
add dword [esi + 0x40a20], eax
mov word [esi + 0xac], cx
mov dword [esi + 0x46ca0], 0x1007cc20
adc dword [esi + 0x40a24], edx
mov dword [esi + 0x98], 0x61616161
jmp 0x1009521a
cmp ebx, 0x49525241
jne 0x10095032
mov ecx, 0x4949
mov word [esi + 0x40a00], cx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
push ebp
push ebp
push 0x14
call eax
mov ecx, esi
call fcn.100763f0
mov ecx, esi
mov word [esi + 0xae], ax
call fcn.100763f0
mov word [esi + 0xac], ax
mov ecx, dword [0x1017f460]
mov dword [esi + 8], ecx
mov dl, byte [0x1017f464]
mov ecx, dword [esi + 0x409b0]
push ebp
mov byte [esi + 0xc], dl
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push ebp
push 0x29c
call edx
mov ecx, dword [esi + 0x409b0]
mov edx, dword [ecx]
push 0x40
push 1
lea eax, [esi + 0x48]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esi + 0x40a20], 0x1000
mov dword [esi + 0x40a24], ebp
mov dword [esi + 0x46ca0], 0x1007c740
mov dword [esi + 0x40a58], 0x58
mov dword [esi + 0x98], 0x61616161
jmp 0x1009521a
cmp edx, 0x31444552
jne 0x1009508c
mov ecx, esi
mov dword [esi + 8], 0x444552
mov dword [esi + 0x48], 0x454e4f
call fcn.1008cb30
fld qword [0x1017f458]
push 0xfff
push 1
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [0x1017f450]
mov dword [esi + 0x46ca0], 0x10080db0
fstp qword [esp]
call fcn.10080dc0
mov dword [esi + 0x98], 0x49494949
jmp 0x1009521a
mov eax, 9
mov ecx, str.DSC_Image
lea edx, [esp + 0x28]
lea ebx, [ebx]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x100950c6
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x100950a0
mov cl, byte [ecx]
cmp cl, byte [edx]
jne 0x100950c6
mov ecx, esi
call fcn.1008b0d0
jmp 0x1009521a
cmp ebx, 0x44415750
jne 0x100950da
mov ecx, esi
call fcn.1008b420
jmp 0x1009521a
cmp ebx, 0x4d524d00
jne 0x100950ef
push ebp
mov ecx, esi
call fcn.10089e60
jmp 0x1009521a
cmp ebx, 0x62564f46
jne 0x10095141
mov ecx, esi
call fcn.100a2ac0
push 0x1017f438
lea ebx, [esi + 8]
push ebx
call fcn.10154109
add esp, 8
test eax, eax
jne 0x1009521a
push 8
push str.SIGMA_DP
lea edi, [esi + 0x48]
push edi
call fcn.1016e1a3
add esp, 0xc
test eax, eax
jne 0x1009521a
mov byte [edi], al
mov byte [ebx], al
mov dword [esi + 0x90], ebp
jmp 0x1009521a
cmp bl, 0x43
jne 0x10095157
cmp bh, 0x49
jne 0x10095157
mov ecx, esi
call fcn.1008c580
jmp 0x1009521a
lea ebp, [esi + 0x48]
mov ebx, 0x1017e764
lea edi, [esi + 8]
sub ebp, 0x1017e770
sub edi, ebx
mov dword [esp + 0x20], 0x5b
mov edx, dword [esp + 0x1c]
cmp edx, dword [ebx - 4]
jne 0x100951a6
mov eax, ebx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x10095180
lea eax, [ebx + 0xc]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + ebp], cl
inc eax
test cl, cl
jne 0x10095190
cmp byte [ebx + 0x1f], cl
je 0x100951a6
mov ecx, esi
call fcn.100938e0
sub edi, 0x24
sub ebp, 0x24
add ebx, 0x24
sub dword [esp + 0x20], 1
jne 0x10095172
jmp 0x1009521e
mov eax, 8
xor ecx, ecx
nop
mov edx, dword [esp + ecx + 0x2e]
cmp edx, dword [ecx + str.HEAPCCDR]
jne 0x10095207
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x100951c0
sub edi, ebx
mov eax, ebx
cdq
push edi
push ebx
mov ecx, esi
mov dword [esi + 0x40a20], eax
mov dword [esi + 0x40a24], edx
call fcn.1008a340
jmp 0x1009521a
mov edi, eax
lea eax, [esp + 0x28]
sub edi, eax
push edi
mov ecx, esi
call fcn.1008b740
cmp edi, ebp
je 0x1009521a
push ebp
mov ecx, esi
call fcn.100937e0
test eax, eax
je 0x1009521a
mov ecx, esi
call fcn.100897f0
mov dword [esp + 0x1c], ebp
cmp byte [esi + 8], 0
jne 0x1009524b
mov ecx, dword [esp + 0x24]
push ecx
push 0
mov ecx, esi
call fcn.1008c450
cmp byte [esi + 8], 0
jne 0x1009524b
push 0
mov ecx, esi
mov dword [esi + 0x88], 0
call fcn.10093b60
xor edi, edi
lea ecx, [ecx]
mov eax, dword [edi + 0x1028e890]
push eax
lea ebp, [esi + 8]
push ebp
call fcn.101519e0
add esp, 8
test eax, eax
je 0x1009527a
mov ecx, dword [edi + 0x1028e890]
mov edx, ebp
nop
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x10095270
add edi, 4
cmp edi, 0x44
jb 0x10095250
push 5
push str.KODAK
lea ebp, [esi + 8]
push ebp
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x100952d5
push str._DIGITAL_CAMERA
lea edi, [esi + 0x48]
push edi
call fcn.101519e0
add esp, 8
test eax, eax
jne 0x100952d2
push str._Digital_Camera
push edi
call fcn.101519e0
add esp, 8
test eax, eax
jne 0x100952d2
push str.FILE_VERSION
push edi
call fcn.101519e0
add esp, 8
test eax, eax
je 0x100952d5
mov byte [eax], 0
mov eax, ebp
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100952e0
sub eax, edx
cmp byte [eax + esi + 7], 0x20
lea eax, [eax + esi + 7]
jne 0x100952fd
mov byte [eax], 0
dec eax
cmp byte [eax], 0x20
je 0x100952f4
lea eax, [esi + 0x48]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10095303
sub eax, edx
cmp byte [eax + esi + 0x47], 0x20
lea eax, [eax + esi + 0x47]
jne 0x10095320
mov byte [eax], 0
dec eax
cmp byte [eax], 0x20
je 0x10095317
lea eax, [esi + 8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10095326
sub eax, edx
mov edi, eax
push edi
lea eax, [esi + 8]
push eax
lea ebp, [esi + 0x48]
push ebp
call fcn.1016e1a3
add esp, 0xc
test eax, eax
jne 0x10095366
mov dl, byte [edi + esi + 0x48]
inc edi
cmp dl, 0x20
jne 0x10095366
mov eax, 0x40
sub eax, edi
push eax
lea ecx, [edi + esi + 0x48]
push ecx
push ebp
call fcn.10152190
add esp, 0xc
push 8
push str.FinePix
push ebp
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x1009538b
lea eax, [esi + 0x50]
mov edx, ebp
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x10095381
push 0xf
push str.Digital_Camera
lea edi, [esi + 0x48]
push edi
call fcn.101512b3
add esp, 0xc
test eax, eax
jne 0x100953ba
lea eax, [esi + 0x57]
mov edx, edi
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x100953b0
cmp dword [esi + 0x88], 0
mov byte [esi + 0x20297], 0
mov byte [esi + 0x87], 0
mov byte [esi + 0x47], 0
mov byte [esi + 0x20583], 0
mov byte [esi + 0x20543], 0
je 0x100993c1
cmp word [esi + 0xac], 0
jne 0x100953ff
mov dx, word [esi + 0xa8]
mov word [esi + 0xac], dx
cmp word [esi + 0xae], 0
jne 0x10095417
mov ax, word [esi + 0xaa]
mov word [esi + 0xae], ax
cmp word [esi + 0x409de], 0
je 0x10095456
movzx eax, word [esi + 0xaa]
fld1
movzx ecx, word [esi + 0xac]
fstp qword [esi + 0xb8]
inc eax
cdq
sub eax, edx
sar eax, 1
add cx, ax
mov word [esi + 0xae], cx
mov word [esi + 0x409de], ax
dec ecx
mov word [esi + 0xac], cx
mov ecx, 0xa40
cmp word [esi + 0xac], cx
jne 0x1009548a
mov edx, 0xf60
cmp word [esi + 0xae], dx
jne 0x1009548a
mov eax, 0xa38
mov ecx, 0xf38
mov word [esi + 0xac], ax
mov word [esi + 0xae], cx
mov edx, 0xc40
mov edi, 0x16161616
cmp word [esi + 0xac], dx
jne 0x100954c9
mov eax, 0x1300
cmp word [esi + 0xae], ax
jne 0x100954c9
mov ecx, 0xc34
mov edx, 0x1250
mov word [esi + 0xac], cx
mov word [esi + 0xae], dx
mov dword [esi + 0x98], edi
mov eax, 0x1100
cmp word [esi + 0xae], ax
jne 0x1009554c
mov ecx, 0x1017e704
lea eax, [esi + 0x48]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095500
test dl, dl
je 0x100954fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095500
add eax, 2
add ecx, 2
test dl, dl
jne 0x100954e0
xor eax, eax
jmp 0x10095505
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009553a
mov ecx, 0x1017e700
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095531
test dl, dl
je 0x1009552d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095531
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095511
xor eax, eax
jmp 0x10095536
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1009554c
mov ecx, 0x10d5
mov word [esi + 0xae], cx
mov dword [esi + 0x98], edi
mov edx, 0x1360
cmp word [esi + 0xae], dx
jb 0x100955a9
mov ecx, 0x1017e6fc
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095582
test dl, dl
je 0x1009557e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095582
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095562
xor eax, eax
jmp 0x10095587
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100955a9
mov eax, 0xa
mov ecx, 0x1356
mov word [esi + 0xb2], ax
mov word [esi + 0xae], cx
mov dword [esi + 0x98], edi
mov edx, 0x1280
cmp word [esi + 0xae], dx
jne 0x10095613
mov ecx, 0x1017e6f8
lea eax, [esi + 0x48]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100955e0
test dl, dl
je 0x100955dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100955e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100955c0
xor eax, eax
jmp 0x100955e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095613
mov eax, 0xc32
mov ecx, 0x124c
mov edx, 2
mov word [esi + 0xac], ax
mov word [esi + 0xae], cx
mov dword [esi + 0x98], edi
mov word [esi + 0xb0], dx
mov eax, 0x1d00
cmp word [esi + 0xae], ax
jne 0x10095693
mov ecx, str.645D
lea eax, [esi + 0x48]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095650
test dl, dl
je 0x1009564c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095650
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095630
xor eax, eax
jmp 0x10095655
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095693
mov ecx, 0x157e
mov word [esi + 0xac], cx
mov edx, 0x1ca0
mov eax, 0x1d
mov ecx, 0x30
mov word [esi + 0xae], dx
mov dword [esi + 0x98], 0x61616161
mov word [esi + 0xb0], ax
mov word [esi + 0xb2], cx
movzx ebp, word [esi + 0xac]
mov edx, 0xbc6
cmp bp, dx
jne 0x100956be
mov eax, 0x1000
cmp word [esi + 0xae], ax
jne 0x100956be
mov ecx, 0xfae
mov word [esi + 0xae], cx
cmp dword [esi + 0x8c], 0
je 0x1009572a
cmp dword [esi + 0x98], 0xffffffff
jne 0x100956da
mov dword [esi + 0x98], 0
cmp dword [esi + 0x98], 0
je 0x100956f1
mov edx, dword [esi + 0x40a40]
mov dword [esi + 0x88], edx
jmp 0x100956fd
mov eax, dword [esi + 0x40a40]
mov dword [esi + 0x94], eax
mov eax, dword [esi + 0x40a48]
cmp eax, 1
jne 0x10095712
mov dword [esi + 0x46ca0], 0x10079540
cmp eax, 7
jne 0x10099284
mov dword [esi + 0x46ca0], 0x100792d0
jmp 0x10099284
mov ecx, str.Canon
lea eax, [esi + 8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095752
test dl, dl
je 0x1009574e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095752
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095732
xor eax, eax
jmp 0x10095757
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
sete cl
mov edi, ecx
test edi, edi
je 0x10095792
mov eax, 8
xor ecx, ecx
jmp 0x10095770
mov edx, dword [esp + ecx + 0x2e]
cmp edx, dword [ecx + str.HEAPCCDR]
jne 0x100957c0
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x10095770
mov eax, 0x10077880
mov dword [esi + 0x46ca0], eax
mov ecx, str.NIKON
lea eax, [esi + 8]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100957c7
test dl, dl
je 0x100957bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100957c7
add eax, 2
add ecx, 2
test dl, dl
jne 0x100957a0
xor eax, eax
jmp 0x100957cc
mov eax, 0x10078700
jmp 0x1009578c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x1009580f
cmp dword [esi + 0x46ca0], eax
jne 0x100957e2
mov dword [esi + 0x46ca0], 0x1007c740
cmp byte [esi + 0x48], 0x45
jne 0x1009580f
mov eax, dword [esi + 0x40a20]
or eax, dword [esi + 0x40a24]
jne 0x100957fd
mov eax, 1
jmp 0x100957ff
xor eax, eax
lea ecx, [eax*4]
or ecx, 2
or dword [esi + 0x40a58], ecx
mov ecx, 0x1017e6e8
lea eax, [esi + 8]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095837
test dl, dl
je 0x10095833
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095837
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095817
xor eax, eax
jmp 0x1009583c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095854
mov dword [esi + 0x46ca0], 0x1007c740
mov dword [esi + 0x20220], 0xf7f
cmp dword [esi + 0x90], 0
mov ebx, 0x94949494
je 0x100958b4
movzx eax, word [esi + 0xae]
movzx edx, bp
movzx ecx, ax
add edx, edx
cmp edx, ecx
jge 0x10095881
fld qword [0x1023a7b8]
fstp qword [esi + 0xb8]
cmp bp, ax
jbe 0x10095892
fld qword [0x1023a780]
fstp qword [esi + 0xb8]
push 0
mov ecx, esi
mov dword [esi + 0x98], 0
mov dword [esi + 0x46ca0], 0x100a2ab0
call fcn.1008cfb0
jmp 0x100991af
test edi, edi
je 0x1009590c
cmp dword [esi + 0x40a44], 0xf
jne 0x1009590c
movzx eax, word [esi + 0xae]
movzx ecx, ax
cmp ecx, 0xd10
je 0x100958dd
cmp ecx, 0xf20
je 0x100958e7
jmp 0x100958f3
add eax, 0xffffffbe
mov word [esi + 0xae], ax
mov edx, 0xfffa
add word [esi + 0xae], dx
mov dword [esi + 0x98], 0
mov dword [esi + 0x46ca0], 0x10078be0
jmp 0x100991af
mov ecx, 0x1017e6d8
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095934
test dl, dl
je 0x10095930
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095934
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095914
xor eax, eax
jmp 0x10095939
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095990
fld qword [0x1017e6d0]
mov eax, 0x265
mov ecx, 0x356
fstp qword [esi + 0xb8]
mov edx, 0x380
mov word [esi + 0xac], ax
mov word [esi + 0xae], cx
mov word [esi + 0xaa], dx
mov dword [esi + 0x94], 4
mov dword [esi + 0x98], 0xe1e4e1e4
mov dword [esi + 0x46ca0], 0x10076f50
jmp 0x100991af
mov ecx, str.PowerShot_A5
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100959b8
test dl, dl
je 0x100959b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100959b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095998
xor eax, eax
jmp 0x100959bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10099135
mov ecx, str.PowerShot_A5_Zoom
lea eax, [esi + 0x48]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100959f0
test dl, dl
je 0x100959ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100959f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100959d0
xor eax, eax
jmp 0x100959f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10099135
mov ecx, str.PowerShot_A50
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095a25
test dl, dl
je 0x10095a21
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095a25
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095a05
xor eax, eax
jmp 0x10095a2a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095a61
mov eax, 0x3c8
mov ecx, 0x50a
mov edx, 0x528
mov word [esi + 0xac], ax
mov word [esi + 0xae], cx
mov word [esi + 0xaa], dx
mov dword [esi + 0x98], 0x1b4e4b1e
jmp 0x1009916f
mov ecx, str.PowerShot_Pro70
lea eax, [esi + 0x48]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095a90
test dl, dl
je 0x10095a8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095a90
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095a70
xor eax, eax
jmp 0x10095a95
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095ac0
mov eax, 0x400
mov ecx, 0x610
mov word [esi + 0xac], ax
mov word [esi + 0xae], cx
mov dword [esi + 0x98], 0x1e4b4e1b
jmp 0x1009916f
mov ecx, 0x1017e67c
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095ae8
test dl, dl
je 0x10095ae4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095ae8
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095ac8
xor eax, eax
jmp 0x10095aed
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095b16
mov edx, 0x6d8
mov eax, 0x928
mov word [esi + 0xac], dx
lea ecx, [edx + 0xe]
mov word [esi + 0xae], ax
lea edx, [eax + 0x38]
mov eax, 0xc
jmp 0x10095b70
mov ecx, 0x1017e66c
lea eax, [esi + 0x48]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095b40
test dl, dl
je 0x10095b3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095b40
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095b20
xor eax, eax
jmp 0x10095b45
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095b93
mov edx, 0x7a8
mov eax, 0xa38
mov word [esi + 0xac], dx
mov word [esi + 0xae], ax
mov ecx, 0x7b0
mov edx, 0xa68
mov eax, 4
mov word [esi + 0xa8], cx
mov ecx, eax
mov word [esi + 0xaa], dx
mov word [esi + 0xb0], ax
mov word [esi + 0xb2], cx
jmp 0x10099179
mov ecx, 0x1017e65c
lea eax, [esi + 0x48]
jmp 0x10095ba0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095bc0
test dl, dl
je 0x10095bbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095bc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095ba0
xor eax, eax
jmp 0x10095bc5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095c16
mov edx, 0x7c0
mov eax, 0xa3c
mov ecx, 0x7c8
mov word [esi + 0xac], dx
mov word [esi + 0xae], ax
mov word [esi + 0xa8], cx
mov edx, 0xa70
mov eax, 6
mov ecx, 0xa
mov word [esi + 0xaa], dx
mov word [esi + 0xb0], ax
mov word [esi + 0xb2], cx
jmp 0x10099179
mov ecx, 0x1017e64c
lea eax, [esi + 0x48]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095c40
test dl, dl
je 0x10095c3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095c40
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095c20
xor eax, eax
jmp 0x10095c45
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095c8f
mov ecx, esi
call fcn.10077530
test eax, eax
je 0x10095c67
mov edx, dword [str.S2_IS]
mov dword [esi + 0x52], edx
mov ax, word [0x1017e648]
mov word [esi + 0x56], ax
mov ecx, 0x7a8
mov edx, 0xa38
mov word [esi + 0xac], cx
lea eax, [ecx + 8]
mov word [esi + 0xae], dx
lea ecx, [edx + 0x38]
mov edx, 8
jmp 0x10095e4e
mov ecx, 0x1017e634
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095cb7
test dl, dl
je 0x10095cb3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095cb7
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095c97
xor eax, eax
jmp 0x10095cbc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095cf4
mov ecx, 0x918
mov edx, 0xc28
mov word [esi + 0xac], cx
mov eax, 0x924
mov word [esi + 0xae], dx
lea ecx, [edx + 0x28]
mov edx, 0xc
mov word [esi + 0xa8], ax
lea eax, [edx + 0x18]
jmp 0x10095e5a
mov ecx, 0x1017e624
lea eax, [esi + 0x48]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095d20
test dl, dl
je 0x10095d1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095d20
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095d00
xor eax, eax
jmp 0x10095d25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095d45
mov ecx, 0x918
mov edx, 0xc18
mov word [esi + 0xac], cx
lea eax, [ecx + 0x12]
lea ecx, [edx + 0x38]
jmp 0x10095e42
mov ecx, 0x1017e610
lea eax, [esi + 0x48]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095d70
test dl, dl
je 0x10095d6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095d70
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095d50
xor eax, eax
jmp 0x10095d75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095dad
mov ecx, 0x9a8
mov edx, 0xce2
mov word [esi + 0xac], cx
mov eax, 0x9b0
mov word [esi + 0xae], dx
lea ecx, [edx + 0x26]
mov edx, 5
mov word [esi + 0xa8], ax
lea eax, [edx + 1]
jmp 0x10095e5a
mov ecx, 0x1017e600
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095dd5
test dl, dl
je 0x10095dd1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095dd5
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095db5
xor eax, eax
jmp 0x10095dda
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095df7
mov ecx, 0x9a8
mov edx, 0xcd8
mov word [esi + 0xac], cx
lea eax, [ecx + 0xc]
lea ecx, [edx + 0x38]
jmp 0x10095e42
mov ecx, 0x1017e5f0
lea eax, [esi + 0x48]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095e20
test dl, dl
je 0x10095e1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095e20
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095e00
xor eax, eax
jmp 0x10095e25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095e74
mov ecx, 0xac8
mov edx, 0xe58
mov word [esi + 0xac], cx
mov eax, 0xad4
lea ecx, [edx + 0x40]
mov word [esi + 0xae], dx
mov edx, 6
mov word [esi + 0xa8], ax
mov eax, 0xc
mov word [esi + 0xaa], cx
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jmp 0x10099179
mov ecx, 0x1017e5e0
lea eax, [esi + 0x48]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095ea0
test dl, dl
je 0x10095e9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095ea0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095e80
xor eax, eax
jmp 0x10095ea5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095ef6
mov ecx, 0xbd0
mov edx, 0xfc0
mov eax, 0xbe8
mov word [esi + 0xac], cx
mov word [esi + 0xae], dx
mov word [esi + 0xa8], ax
mov ecx, 0x1008
mov edx, 0xc
mov eax, 0x30
mov word [esi + 0xaa], cx
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jmp 0x10099179
mov ecx, 0x1017e5d0
lea eax, [esi + 0x48]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095f20
test dl, dl
je 0x10095f1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095f20
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095f00
xor eax, eax
jmp 0x10095f25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10095f76
mov ecx, 0x850
mov edx, 0xb18
mov eax, 0x858
mov word [esi + 0xac], cx
mov word [esi + 0xae], dx
mov word [esi + 0xa8], ax
mov ecx, 0xb48
mov edx, 8
mov eax, 0x2c
mov word [esi + 0xaa], cx
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jmp 0x10099179
mov ecx, 0x1017e5bc
lea eax, [esi + 0x48]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10095fa0
test dl, dl
je 0x10095f9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10095fa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10095f80
xor eax, eax
jmp 0x10095fa5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096008
mov ecx, 0xac8
mov eax, 0xad4
mov edx, 0xe64
mov word [esi + 0xac], cx
mov word [esi + 0xa8], ax
lea ecx, [edx + 0x24]
mov eax, 6
mov word [esi + 0xae], dx
mov edx, 0xc
mov word [esi + 0xb0], dx
mov word [esi + 0xaa], cx
mov word [esi + 0xb2], ax
mov dword [esi + 0x46ca0], 0x1007c740
mov dword [esi + 0x40a58], 0x28
jmp 0x100991a5
mov ecx, 0x1017e5a8
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096030
test dl, dl
je 0x1009602c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096030
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096010
xor eax, eax
jmp 0x10096035
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100960a4
mov ecx, 0xab6
mov edx, 0xe50
mov eax, 0xada
mov word [esi + 0xac], cx
mov word [esi + 0xae], dx
mov word [esi + 0xa8], ax
mov ecx, 0xe90
mov edx, 0x12
mov eax, 0x10
mov word [esi + 0xaa], cx
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
mov dword [esi + 0x98], 0x49494949
mov dword [esi + 0x46ca0], 0x1007c740
mov dword [esi + 0x40a58], 0x28
jmp 0x100991a5
mov ecx, 0x1017e594
lea eax, [esi + 0x48]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100960d0
test dl, dl
je 0x100960cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100960d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100960b0
xor eax, eax
jmp 0x100960d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096103
mov ecx, 0xbd0
mov eax, 0xbe8
mov edx, 0xfc0
mov word [esi + 0xac], cx
mov word [esi + 0xa8], ax
lea ecx, [edx + 0x30]
mov eax, 0x18
jmp 0x10095fce
mov ecx, 0x1017e580
lea eax, [esi + 0x48]
jmp 0x10096110
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096130
test dl, dl
je 0x1009612c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096130
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096110
xor eax, eax
jmp 0x10096135
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096182
mov ecx, 0xbe3
mov word [esi + 0xac], cx
mov edx, 0xfe8
mov eax, 0xbf4
mov ecx, 0x1048
mov word [esi + 0xae], dx
mov word [esi + 0xa8], ax
mov word [esi + 0xaa], cx
mov dword [esi + 0x46ca0], 0x1007c740
mov dword [esi + 0x40a58], 8
jmp 0x100991a5
mov ecx, 0x1017e56c
lea eax, [esi + 0x48]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100961b0
test dl, dl
je 0x100961ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100961b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096190
xor eax, eax
jmp 0x100961b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096210
mov edx, 0xcb6
mov eax, 0x110e
mov ecx, 0xccc
mov word [esi + 0xac], dx
mov word [esi + 0xae], ax
mov word [esi + 0xa8], cx
mov edx, 0x1170
mov eax, 0xa
mov ecx, 0x19
mov word [esi + 0xaa], dx
mov word [esi + 0xb0], ax
mov word [esi + 0xb2], cx
mov dword [esi + 0x98], 0x16161616
jmp 0x10095fef
mov ecx, str.PowerShot_Pro90_IS
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096238
test dl, dl
je 0x10096234
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096238
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096218
xor eax, eax
jmp 0x1009623d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096266
mov edx, 0x768
mov word [esi + 0xae], dx
mov dword [esi + 0x94], 4
mov dword [esi + 0x98], 0xb4b4b4b4
jmp 0x100991af
test edi, edi
je 0x10096453
movzx eax, word [esi + 0xaa]
mov ecx, 0x860
cmp ax, cx
jne 0x10096306
mov edx, 0x60e
mov eax, 0x828
mov ecx, 8
mov word [esi + 0xac], dx
mov edx, 4
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
mov ecx, str.PowerShot_G1
lea eax, [esi + 0x48]
jmp 0x100962c0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100962e0
test dl, dl
je 0x100962dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100962e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100962c0
xor eax, eax
jmp 0x100962e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100991af
mov dword [esi + 0x94], 4
mov dword [esi + 0x98], 0xb4b4b4b4
jmp 0x100991af
mov ecx, 0x8b0
cmp ax, cx
jne 0x10096322
lea eax, [ecx - 0x30]
mov edx, 0x5a8
mov ecx, 6
jmp 0x10096662
mov ecx, 0x948
cmp ax, cx
jne 0x10096336
mov edx, 0x6b8
lea eax, [ecx - 0x40]
jmp 0x1009634a
mov ecx, 0xa70
cmp ax, cx
jne 0x10096375
mov edx, 0x7a8
mov eax, 0xa38
mov word [esi + 0xac], dx
mov ecx, 6
mov edx, 0xc
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0xc50
cmp ax, cx
jne 0x100963d5
cmp dword [esi + 0x409f0], 0x80000170
mov edx, 0x808
mov word [esi + 0xac], dx
mov eax, 0xc10
mov ecx, 0xc
mov edx, 0x40
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jne 0x100991af
push str.EOS_300D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100991af
mov ecx, 0xc58
cmp ax, cx
jne 0x10096414
mov edx, 0x918
mov word [esi + 0xac], dx
mov eax, 0xc28
mov ecx, 0xc
mov edx, 0x2c
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0xd10
cmp ax, cx
jne 0x10096453
mov edx, 0x9a8
mov word [esi + 0xac], dx
mov eax, 0xcd8
mov ecx, 6
mov edx, 4
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, str.EOS_D2000C
lea eax, [esi + 0x48]
jmp 0x10096460
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096480
test dl, dl
je 0x1009647c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096480
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096460
xor eax, eax
jmp 0x10096485
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100964a5
movzx eax, word [esi + 0x38c]
mov dword [esi + 0x98], 0x61616161
mov dword [esi + 0x201fc], eax
jmp 0x100991af
test edi, edi
je 0x10096a3f
movzx eax, word [esi + 0xaa]
mov ecx, 0xdbc
cmp ax, cx
jne 0x100964fc
cmp dword [esi + 0x409f0], 0x80000189
mov edx, 0xe
mov eax, 0x2a
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jne 0x100969df
push str.EOS_350D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100969df
mov ecx, 0xe0c
cmp ax, cx
jne 0x10096513
mov edx, 0xc
lea eax, [edx + 0x3e]
jmp 0x100969d1
mov ecx, 0xea0
cmp ax, cx
jne 0x1009657a
cmp dword [esi + 0x409f0], 0x2720000
mov edx, 0xac8
mov word [esi + 0xac], dx
mov eax, 0xe64
mov ecx, 0x10
mov edx, 8
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jbe 0x100991af
mov eax, 0xc
mov ecx, 0x34
mov word [esi + 0xb0], ax
mov word [esi + 0xb2], cx
jmp 0x100991af
mov edx, 0xf68
cmp ax, dx
jne 0x100965b9
mov eax, 0xa2a
mov word [esi + 0xac], ax
mov ecx, 0xf44
mov edx, 0x12
mov eax, 0x1e
mov word [esi + 0xae], cx
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jmp 0x100991af
mov ecx, 0xf6c
cmp ax, cx
jne 0x10096628
add ebp, 0xfffffffe
cmp dword [esi + 0x409f0], 0x80000236
mov edx, 0x12
mov eax, 0x2a
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
mov word [esi + 0xac], bp
jne 0x10096602
push str.EOS_400D
push str.Canon
mov ecx, esi
call fcn.1008ce40
cmp dword [esi + 0x409f0], 0x80000254
jne 0x100969df
push str.EOS_1000D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100969df
mov ecx, 0xf90
cmp ax, cx
jne 0x10096649
mov edx, 0x14
add ebp, 0xfffffffe
lea eax, [edx + 0x38]
mov word [esi + 0xac], bp
jmp 0x100969d1
mov ecx, 0x1008
cmp ax, cx
jne 0x10096688
mov edx, 0xbd0
mov eax, 0xfc0
mov ecx, 0xc
mov word [esi + 0xac], dx
mov edx, 0x30
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0x1038
cmp ax, cx
jne 0x100966a1
mov edx, 0xc
mov eax, 0xc0
jmp 0x100969d1
mov ecx, 0x1040
cmp ax, cx
jne 0x100966e0
mov edx, 0xbe8
mov word [esi + 0xac], dx
mov eax, 0xfd0
mov ecx, 0xb
mov edx, 0x68
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0x10d8
cmp ax, cx
jne 0x10096732
add ebp, 0xfffffffe
cmp dword [esi + 0x409f0], 0x80000176
mov edx, 0x12
mov eax, 0x16
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
mov word [esi + 0xac], bp
jne 0x100969df
push str.EOS_450D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100969df
mov ecx, 0x1100
cmp ax, cx
jne 0x1009677a
cmp dword [esi + 0x409f0], 0x80000288
mov edx, 0x12
mov eax, 0x3e
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jne 0x100969df
push str.EOS_1100D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100969df
mov ecx, 0x117c
cmp ax, cx
jne 0x10096791
mov edx, 0x22
lea eax, [edx + 0x38]
jmp 0x100969d1
mov ecx, 0x1180
cmp ax, cx
jne 0x100967da
mov edx, 0xcfe
mov word [esi + 0xac], dx
mov eax, 0x1150
mov ecx, 0xa
mov edx, 0xc
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
mov dword [esi + 0x98], 0x49494949
jmp 0x100991af
mov ecx, 0x1190
cmp ax, cx
jne 0x10096819
mov edx, 0xcf4
mov word [esi + 0xac], dx
mov eax, 0x1134
mov ecx, 0x32
mov edx, 0x50
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0x12e0
cmp ax, cx
jne 0x1009686f
mov eax, dword [esi + 0x409f0]
mov edx, eax
sub edx, 0x80000261
neg edx
sbb edx, edx
and edx, 0xffffffe7
add edx, 0x33
mov ecx, 0x3e
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], cx
cmp eax, 0x80000252
jne 0x100969df
push str.EOS_500D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100969df
mov edx, 0x13f4
cmp ax, dx
jne 0x10096896
mov eax, 0xd
mov ecx, 0x62
mov word [esi + 0xb0], ax
mov word [esi + 0xb2], cx
jmp 0x100969df
mov edx, 0x1400
cmp ax, dx
jne 0x100968d3
mov eax, 0x2d
add ebp, 0xffffffd3
mov ecx, 0x8e
mov edx, 0x1334
mov word [esi + 0xb0], ax
mov word [esi + 0xac], bp
mov word [esi + 0xb2], cx
mov word [esi + 0xae], dx
jmp 0x100991af
mov ecx, 0x14e0
cmp ax, cx
jne 0x10096974
cmp dword [esi + 0x409f0], 0x80000269
mov edx, 0x33
mov eax, 0x8e
mov word [esi + 0xb0], dx
mov word [esi + 0xb2], ax
jne 0x10096938
mov ecx, 0x64
push str.EOS_1D_X
mov word [esi + 0xb0], cx
mov edx, 0x7e
add ebp, 0xfffffffe
push str.Canon
mov ecx, esi
mov word [esi + 0xb2], dx
mov word [esi + 0xac], bp
call fcn.1008ce40
cmp dword [esi + 0x409f0], 0x80000270
jne 0x10096955
push str.EOS_550D
push str.Canon
mov ecx, esi
call fcn.1008ce40
cmp dword [esi + 0x409f0], 0x80000286
jne 0x100969df
push str.EOS_600D
push str.Canon
mov ecx, esi
call fcn.1008ce40
jmp 0x100969df
mov ecx, 0x14f0
cmp ax, cx
je 0x100969c7
mov ecx, 0x1650
cmp ax, cx
jne 0x100969bd
mov edx, 0xea8
mov word [esi + 0xac], dx
mov eax, 0x1608
mov ecx, 0x14
mov edx, 0x3e
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0x16a0
cmp ax, cx
jne 0x10096a00
mov eax, 0x9e
mov edx, 0x33
mov word [esi + 0xb2], ax
mov word [esi + 0xb0], dx
mov cx, word [esi + 0xb0]
mov dx, word [esi + 0xb2]
sub word [esi + 0xac], cx
sub word [esi + 0xae], dx
jmp 0x100991af
mov ecx, 0x1720
cmp ax, cx
jne 0x10096a3f
mov edx, 0xf1e
mov word [esi + 0xac], dx
mov eax, 0x16a4
mov ecx, 0x50
mov edx, 0x7a
mov word [esi + 0xae], ax
mov word [esi + 0xb0], cx
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, 0x1017e4c0
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096a67
test dl, dl
je 0x10096a63
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096a67
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096a47
xor eax, eax
jmp 0x10096a6c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096a99
fld dword [esi + 0x14c]
fmul qword [0x1017e4b8]
fstp dword [esi + 0x14c]
fld dword [esi + 0x154]
fmul qword [0x1017e4b0]
fstp dword [esi + 0x154]
jmp 0x100991af
mov ecx, 0x1017e4ac
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096ac1
test dl, dl
je 0x10096abd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096ac1
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096aa1
xor eax, eax
jmp 0x10096ac6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096ae7
fld qword [0x1023a7b8]
mov eax, 0xfffc
add word [esi + 0xae], ax
fstp qword [esi + 0xb8]
jmp 0x100991af
mov ecx, str.D40X
lea eax, [esi + 0x48]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096b10
test dl, dl
je 0x10096b0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096b10
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096af0
xor eax, eax
jmp 0x10096b15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009911d
mov ecx, 0x1017e4a0
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096b45
test dl, dl
je 0x10096b41
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096b45
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096b25
xor eax, eax
jmp 0x10096b4a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009911d
mov ecx, 0x1017e49c
lea eax, [esi + 0x48]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096b80
test dl, dl
je 0x10096b7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096b80
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096b60
xor eax, eax
jmp 0x10096b85
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009911d
mov ecx, str.D3000
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096bb5
test dl, dl
je 0x10096bb1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096bb5
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096b95
xor eax, eax
jmp 0x10096bba
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x1009911d
mov ecx, 0x1017e490
lea eax, [esi + 0x48]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096bf0
test dl, dl
je 0x10096bec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096bf0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096bd0
xor eax, eax
jmp 0x10096bf5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10099100
mov ecx, 0x1017e48c
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096c25
test dl, dl
je 0x10096c21
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096c25
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096c05
xor eax, eax
jmp 0x10096c2a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10099100
mov ecx, str.D700
lea eax, [esi + 0x48]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096c60
test dl, dl
je 0x10096c5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096c60
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096c40
xor eax, eax
jmp 0x10096c65
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10099100
mov ecx, str.D3100
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096c95
test dl, dl
je 0x10096c91
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096c95
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096c75
xor eax, eax
jmp 0x10096c9a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096cbb
mov ecx, 0xffe4
add word [esi + 0xae], cx
mov edx, 6
mov word [esi + 0xb2], dx
jmp 0x100991af
mov ecx, str.D5000
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096ce3
test dl, dl
je 0x10096cdf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096ce3
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096cc3
xor eax, eax
jmp 0x10096ce8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100990ef
mov ecx, 0x1017e470
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096d18
test dl, dl
je 0x10096d14
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096d18
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096cf8
xor eax, eax
jmp 0x10096d1d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100990ef
mov ecx, str.D5100
lea eax, [esi + 0x48]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096d50
test dl, dl
je 0x10096d4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096d50
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096d30
xor eax, eax
jmp 0x10096d55
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100990de
mov ecx, str.D7000
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096d85
test dl, dl
je 0x10096d81
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096d85
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096d65
xor eax, eax
jmp 0x10096d8a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100990de
mov ecx, str.D3200
lea eax, [esi + 0x48]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096dc0
test dl, dl
je 0x10096dbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096dc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096da0
xor eax, eax
jmp 0x10096dc5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100990cd
mov ecx, str.D800
lea eax, [esi + 0x48]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096df5
test dl, dl
je 0x10096df1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096df5
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096dd5
xor eax, eax
jmp 0x10096dfa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100990cd
mov ecx, 0x1017e44c
lea eax, [esi + 0x48]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096e30
test dl, dl
je 0x10096e2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10096e30
add eax, 2
add ecx, 2
test dl, dl
jne 0x10096e10
xor eax, eax
jmp 0x10096e35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x10096e56
mov eax, 0xffcc
add word [esi + 0xae], ax
mov ecx, 2
mov word [esi + 0xb2], cx
jmp 0x100991af
push 3
push 0x1017e448
lea edi, [esi + 0x48]
push edi
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x100990bc
push 3
push 0x102350f0
push edi
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x100990bc
push 3
push 0x1017e444
push edi
call fcn.101512b3
add esp, 0xc
test eax, eax
je 0x100990bc
mov ecx, str.D100
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10096ec8
mov eax, 0xffff
add word [esi + 0xae], ax
jmp 0x100991af
mov ecx, 0xffd2
add word [esi + 0xae], cx
jmp 0x100991af
mov edx, 0xffd4
add word [esi + 0xae], dx
jmp 0x100991af
mov eax, 0xffd6
add word [esi + 0xae], ax
jmp 0x100991af
mov ecx, 0xfffc
add word [esi + 0xae], cx
mov edx, 2
mov word [esi + 0xb2], dx
jmp 0x100991af
add ebp, 0xfffffffd
mov eax, 0xfffc
add word [esi + 0xae], ax
mov word [esi + 0xac], bp
jmp 0x100991af
fld qword [0x1017e238]
mov ecx, 0x305
mov edx, 0x3c0
fstp qword [esi + 0xb8]
mov eax, 0x3e0
mov word [esi + 0xac], cx
mov word [esi + 0xae], dx
mov word [esi + 0xaa], ax
mov dword [esi + 0x98], 0x1e4e1e4e
mov dword [esi + 0x94], 4
mov ecx, 0x640
mov dword [esi + 0x40a44], 0xa
mov dword [esi + 0x46ca0], 0x1007c740
mov dword [esi + 0x40a58], 0x28
cmp word [esi + 0xaa], cx
jbe 0x100991af
mov dword [esi + 0x409d8], 1
cmp byte [esi + 0x48], 0
lea edi, [esi + 0x48]
jne 0x100991d6
movzx edx, word [esi + 0xac]
movzx eax, word [esi + 0xae]
push edx
push eax
push str._dx_d
push edi
call fcn.1014ffd1
add esp, 0x10
cmp dword [esi + 0x98], 0xffffffff
jne 0x100991e9
mov dword [esi + 0x98], 0x94949494
cmp dword [esi + 0x409d4], 0
je 0x100991fe
push edi
lea eax, [esi + 8]
push eax
mov ecx, esi
call fcn.1008ce40
cmp dword [esi + 0x46ca0], 0x1007dc60
jne 0x10099224
cmp dword [esi + 0x409d4], 0
je 0x10099224
push str.Quicktake
push str.Apple
mov ecx, esi
call fcn.1008ce40
mov eax, dword [esi + 0x409c8]
mov edx, dword [esi + 0x409cc]
mov ecx, eax
or ecx, edx
je 0x10099284
cmp word [esi + 0x2058e], 0
jne 0x10099284
mov ecx, dword [esi + 0x409b0]
mov edi, dword [ecx]
push 0
push edx
mov edx, dword [edi + 0xc]
push eax
call edx
push 1
lea eax, [esp + 0x164]
push eax
mov ecx, esi
call fcn.10077da0
test eax, eax
je 0x10099284
mov cx, word [esp + 0x168]
mov dx, word [esp + 0x164]
mov word [esi + 0x2058c], cx
mov word [esi + 0x2058e], dx
xor edi, edi
cmp word [esi + 0x409de], di
jne 0x100992bd
movzx eax, word [esi + 0xac]
cmp word [esi + 0xa8], ax
jae 0x100992a6
mov word [esi + 0xa8], ax
movzx eax, word [esi + 0xae]
cmp word [esi + 0xaa], ax
jae 0x100992bd
mov word [esi + 0xaa], ax
cmp dword [esi + 0x40a44], edi
jne 0x100992cf
mov dword [esi + 0x40a44], 0xc
cmp dword [esi + 0x20220], edi
jne 0x100992eb
mov ecx, dword [esi + 0x40a44]
mov eax, 1
shl eax, cl
dec eax
mov dword [esi + 0x20220], eax
mov eax, dword [esi + 0x46ca0]
cmp eax, edi
je 0x100992ff
cmp word [esi + 0xac], 0x16
jae 0x10099305
mov dword [esi + 0x88], edi
cmp eax, 0x10080db0
jne 0x10099319
or dword [esi + 4], 0x800
mov dword [esi + 0x88], edi
cmp eax, 0x1007e5d0
jne 0x1009932a
or dword [esi + 4], 0x10
mov dword [esi + 0x88], edi
cmp byte [esi + 0x9c], 0
lea ecx, [esi + 0x9c]
jne 0x1009935a
cmp dword [esi + 0x94], 3
mov edx, str.RGBG
je 0x10099350
mov edx, str.GMCY
lea esp, [esp]
mov al, byte [edx]
mov byte [ecx], al
inc edx
inc ecx
test al, al
jne 0x10099350
cmp word [esi + 0xa8], di
jne 0x10099371
mov cx, word [esi + 0xac]
mov word [esi + 0xa8], cx
cmp word [esi + 0xaa], di
jne 0x10099388
mov dx, word [esi + 0xae]
mov word [esi + 0xaa], dx
mov eax, dword [esi + 0x98]
cmp eax, edi
je 0x100993c1
cmp dword [esi + 0x94], 3
jne 0x100993c1
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 + 0x98], ecx
or eax, 0xffffffff
cmp dword [esi + 0xc0], eax
jne 0x100993e6
mov ecx, dword [esi + 0x409f8]
mov dword [esi + 0xc0], ecx
cmp ecx, eax
jne 0x100993e6
mov dword [esi + 0xc0], 0
mov eax, dword [esi + 0x46c8c]
test eax, eax
je 0x1009941d
mov edx, dword [esi + 0x46c90]
push 2
push 1
push 2
push edx
call eax
add esp, 0x10
test eax, eax
je 0x1009941d
push 0x102419c0
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 6
call fcn.101525f9
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret