Function at 0x10102c70
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
sub esp, 0x94
xor eax, eax
mov dword [esp + 4], 1
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ebx, [ebp + 0x248e8]
mov dword [ebp + 0x188], 0xffffffff
mov dword [ebp + 0x30], 0xffffffff
mov dword [ebp + 0x492d4], 0xffffffff
mov word [ebp + 0x492e2], ax
mov dword [ebp + 0x49314], eax
mov word [ebp + 0x492be], ax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x18], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x24788], eax
mov byte [ebx], al
mov byte [ebp + 0xf8], al
mov byte [ebp + 0xb8], al
mov byte [ebp + 0x24d24], al
mov byte [ebp + 0x24b24], al
mov byte [ebp + 0x1d4], al
push 0x1e0
push eax
mov dword [ebp + 0x492cc], eax
mov dword [ebp + 0x24a64], eax
mov dword [ebp + 0x24a60], eax
mov dword [ebp + 0x24a5c], eax
mov dword [ebp + 0x24a58], eax
mov dword [ebp + 0x492d0], eax
lea eax, [ebp + 0x4f348]
push eax
call fcn.101f9320
push 0x80
lea eax, [ebp + 0x24a74]
push 0
push eax
call fcn.101f9320
push 0x4018
lea eax, [ebp + 0x20768]
push 0
push eax
call fcn.101f9320
push 0x80
lea eax, [ebp + 0x2478c]
push 0
push eax
call fcn.101f9320
push 0x80
lea eax, [ebp + 0x34]
push 0
push eax
call fcn.101f9320
add esp, 0x3c
mov dword [ebp + 0x4f5d0], 0x1010f350
xor eax, eax
mov dword [ebp + 0x24d6c], eax
mov dword [ebp + 0x24d70], eax
mov dword [ebp + 0x49298], eax
mov dword [ebp + 0x4929c], eax
mov dword [ebp + 0x4f5dc], eax
mov dword [ebp + 0x4f5d8], eax
mov dword [ebp + 0x49320], eax
mov dword [ebp + 0x4931c], eax
mov dword [ebp + 0x4930c], eax
mov dword [ebp + 0x49300], eax
mov dword [ebp + 0x49304], eax
mov dword [ebp + 0x492f8], eax
mov dword [ebp + 0x492fc], eax
mov dword [ebp + 0x49330], eax
mov dword [ebp + 0x17c], eax
mov dword [ebp + 0x49324], eax
mov dword [ebp + 0x492e8], eax
mov dword [ebp + 0x180], eax
mov dword [ebp + 0x24780], eax
mov dword [ebp + 0x49318], eax
mov dword [ebp + 0x24a70], eax
mov dword [ebp + 0x24a68], eax
mov dword [ebp + 0x24a6c], eax
movsd xmm0, qword [0x103d7ce0]
lea ecx, [ebp + 0x2481c]
mov dword [ebp + 0x492b8], eax
xor edx, edx
mov dword [ebp + 0x49334], eax
mov dword [ebp + 0x2492c], eax
mov dword [ebp + 0x492b0], eax
mov dword [ebp + 0x492b4], 1
mov dword [ebp + 0x178], 1
movsd qword [ebp + 0x28], xmm0
mov dword [ebp + 0x4932c], eax
mov dword [ebp + 0x49328], eax
nop
xor eax, eax
lea ecx, [ecx + 4]
cmp edx, 1
sete al
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
cmp edx, 3
setl al
movss dword [ecx - 0x14], xmm0
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
test edx, edx
sete al
movss dword [ecx - 4], xmm0
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
cmp edx, 1
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x1c], 0
sete al
mov dword [ecx + 0x2c], 0
movss dword [ecx + 0x3c], xmm0
movd xmm0, eax
xor eax, eax
cvtdq2ps xmm0, xmm0
cmp edx, 2
sete al
inc edx
movss dword [ecx + 0x4c], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ecx + 0x5c], xmm0
cmp edx, 4
jl 0x10102e50
mov dword [ebp + 0x184], 3
lea ecx, [ebp + 0x768]
xor eax, eax
mov word [ecx], ax
lea ecx, [ecx + 2]
inc eax
cmp eax, 0x10000
jl 0x10102ee7
mov ecx, ebp
call fcn.101120a0
mov ecx, ebp
mov word [ebp + 0x492d8], ax
call fcn.1010f760
mov ecx, dword [ebp + 0x49280]
mov edi, eax
push 0
push 0
push 0
mov edx, dword [ecx]
call dword [edx + 0xc]
mov ecx, dword [ebp + 0x49280]
lea edx, [esp + 0x1c]
push 0x20
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp + 0x49280]
push 2
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push 4
push str.MMMM
mov dword [esp + 0x18], eax
lea eax, [esp + 0x24]
push 0x20
push eax
call fcn.10129950
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10103dc9
push 4
push str.IIII
lea eax, [esp + 0x24]
push 0x20
push eax
call fcn.10129950
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x10103dc9
movzx eax, word [ebp + 0x492d8]
mov esi, 0x4949
cmp ax, si
je 0x10103d75
mov ecx, 0x4d4d
cmp ax, cx
je 0x10103d75
lea eax, [esp + 0x1c]
cmp dword [eax], 0xe1ffd8ff
jne 0x10103048
lea eax, [esp + 0x22]
cmp dword [eax], 0x66697845
jne 0x10103048
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 4
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.101120a0
mov ecx, dword [ebp + 0x49280]
movzx eax, ax
cdq
add eax, 4
push 0
adc edx, 0
mov dword [ebp + 0x492f8], eax
mov dword [ebp + 0x492fc], edx
mov eax, dword [ecx]
push edx
push dword [ebp + 0x492f8]
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xff
je 0x1010302f
push 0xc
mov ecx, ebp
call fcn.10126f70
mov dword [ebp + 0x49298], 0
mov dword [ebp + 0x4929c], 0
jmp 0x10103def
lea ecx, [esp + 0x35]
cmp dword [ecx], 0x43455241
jne 0x10103341
cmp word [ecx + 4], 0x594f
jne 0x10103341
cmp byte [ecx + 6], 0x4b
jne 0x10103341
mov eax, dword [str.Contax]
lea ebx, [ebp + 0xf8]
mov ecx, dword [ebp + 0x49280]
mov dword [ebp + 0xb8], eax
movzx eax, word [0x102ab194]
mov word [ebp + 0xbc], ax
mov al, byte [0x102ab196]
mov byte [ebp + 0xbe], al
movq xmm0, qword [str.N_Digital]
movq qword [ebx], xmm0
movzx eax, word [0x102ab1a0]
push 0
mov word [ebx + 8], ax
mov eax, dword [ecx]
push 0
push 0x21
call dword [eax + 0xc]
push 1
mov ecx, ebp
call fcn.101283a0
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0x34
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
add eax, 0xfffffff9
cmp eax, 0xc
ja case.default.0x101030ed
jmp dword [eax*4 + 0x10108088]
mov dword [ebp + 0x24a58], 0x41c80000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42000000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42200000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42480000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42800000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42a00000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42c80000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x42fa0000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x43200000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x43480000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x437a0000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x43a00000
jmp case.default.0x101030ed
mov dword [ebp + 0x24a58], 0x43c80000
mov ecx, ebp
call fcn.1010f760
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103d8710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a50]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
fdiv dword [0x102abb80]
add esp, 8
xor esi, esi
fstp dword [ebp + 0x24a5c]
mov ecx, ebp
call fcn.1010f760
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103d8710]
mov eax, esi
sar eax, 1
xor eax, esi
inc esi
cvtpd2ps xmm0, xmm0
movss dword [ebp + eax*4 + 0x2480c], xmm0
cmp esi, 4
jl 0x101031e1
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0x58
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103d8710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a2c]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
mov ecx, dword [ebp + 0x49280]
add esp, 8
fstp dword [ebp + 0x24a60]
mov eax, dword [ecx]
push 0
push 0
push 0x70
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
mov ecx, dword [ebp + 0x49280]
push 0
push 0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
push 0x68
addsd xmm0, qword [eax*8 + 0x103d8710]
cvtpd2ps xmm0, xmm0
movss dword [ebp + 0x24a64], xmm0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103d8710]
cvtpd2ps xmm0, xmm0
mulss xmm0, dword [0x103d7a2c]
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10129bc0
mov ecx, dword [ebp + 0x49280]
add esp, 8
fstp dword [ebp + 0x438]
mov eax, dword [ecx]
push 0
push 0
push 0x7c
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
lea esi, [ebp + 0x320]
push 1
push 0x20
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, 0x15
mov word [ebp + 0x3aa], ax
cmp byte [esi], 0
je 0x10103df5
mov word [ebp + 0x3a2], ax
jmp 0x10103df5
mov ecx, 0x102ab1a4
lea eax, [esp + 0x1c]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10103370
test dl, dl
je 0x1010336c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10103370
add eax, 2
add ecx, 2
test dl, dl
jne 0x10103350
xor eax, eax
jmp 0x10103375
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101033a9
movq xmm0, qword [str.Logitech]
lea ebx, [ebp + 0xf8]
movq qword [ebp + 0xb8], xmm0
mov al, byte [0x102ab1b0]
mov byte [ebp + 0xc0], al
movups xmm0, xmmword [str.Fotoman_Pixtura]
movups xmmword [ebx], xmm0
jmp 0x10103df5
mov ecx, str.qktk
lea eax, [esp + 0x1c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101033d2
test dl, dl
je 0x101033ce
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101033d2
add eax, 2
add ecx, 2
test dl, dl
jne 0x101033b2
xor eax, eax
jmp 0x101033d7
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10103428
mov eax, dword [str.Apple]
lea ebx, [ebp + 0xf8]
mov dword [ebp + 0xb8], eax
movzx eax, word [0x102ab1d0]
mov word [ebp + 0xbc], ax
movq xmm0, qword [str.QuickTake_100]
movq qword [ebx], xmm0
mov eax, dword [0x102ab1dc]
mov dword [ebx + 8], eax
movzx eax, word [0x102ab1e0]
mov word [ebx + 0xc], ax
mov dword [ebp + 0x4f5d8], 0x101197d0
jmp 0x10103df5
mov ecx, str.qktn
lea eax, [esp + 0x1c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10103451
test dl, dl
je 0x1010344d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10103451
add eax, 2
add ecx, 2
test dl, dl
jne 0x10103431
xor eax, eax
jmp 0x10103456
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101034a7
mov eax, dword [str.Apple]
lea ebx, [ebp + 0xf8]
mov dword [ebp + 0xb8], eax
movzx eax, word [0x102ab1d0]
mov word [ebp + 0xbc], ax
movq xmm0, qword [str.QuickTake_150]
movq qword [ebx], xmm0
mov eax, dword [0x102ab1f4]
mov dword [ebx + 8], eax
movzx eax, word [0x102ab1f8]
mov word [ebx + 0xc], ax
mov dword [ebp + 0x4f5d8], 0x10119bc0
jmp 0x10103df5
lea eax, [esp + 0x1c]
cmp dword [eax], 0x494a5546
jne 0x101035cb
cmp dword [eax + 4], 0x4d4c4946
jne 0x101035cb
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0x54
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
mov ecx, ebp
mov dword [ebp + 0x49298], eax
mov dword [ebp + 0x4929c], 0
call fcn.1010f760
mov ecx, dword [ebp + 0x49280]
push 0
mov dword [ebp + 0x24d70], eax
push 0
mov eax, dword [ecx]
push 0x5c
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
push eax
mov ecx, ebp
call fcn.10115f00
cmp dword [ebp + 0x4929c], 0
jl 0x1010356c
jg 0x1010352d
cmp dword [ebp + 0x49298], 0x78
jbe 0x1010356c
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0x78
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
xor ecx, ecx
test eax, eax
setne cl
add dword [ebp + 0x178], ecx
cmp dword [ebp + 0x178], 2
jne 0x1010356c
cmp dword [ebp + 0x668], 0
je 0x1010356c
push eax
mov ecx, ebp
call fcn.10115f00
mov ecx, dword [ebp + 0x49280]
xor eax, eax
cmp eax, dword [ebp + 0x668]
push 0
sbb eax, eax
mov dword [ebp + 0x4f5d8], fcn.10117e20
mov edx, dword [ecx]
and eax, 0x1c
add eax, 0x64
push 0
push eax
call dword [edx + 0xc]
mov ecx, ebp
call fcn.1010f760
push eax
mov ecx, ebp
mov dword [ebp + 0x492f8], eax
mov dword [ebp + 0x492fc], 0
call fcn.10126f70
mov eax, dword [ebp + 0x49298]
mov ecx, ebp
add eax, 0xc
push eax
call fcn.10126f70
jmp 0x10103de8
lea eax, [esp + 0x1c]
cmp dword [eax], 0x46464952
jne 0x101035f4
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1011ac50
jmp 0x10103def
lea eax, [esp + 0x20]
cmp dword [eax], 0x70797466
jne 0x1010363b
cmp dword [eax + 4], 0x20207471
jne 0x1010363b
cmp byte [eax + 8], 0x20
jne 0x1010363b
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.10128290
mov dword [ebp + 0x178], 0
jmp 0x10103def
lea eax, [esp + 0x1c]
cmp dword [eax], 0x1000100
jne 0x101036f1
cmp word [eax + 4], 0x4000
jne 0x101036f1
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 6
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
lea edx, [ebp + 0xb8]
push 8
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp + 0x49280]
lea esi, [ebp + 0xf8]
push 8
push 1
push esi
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp + 0x49280]
push 0x10
push 1
push ebx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, ebp
call fcn.101120a0
movzx eax, ax
mov ecx, ebp
cdq
mov dword [ebp + 0x492f8], eax
mov dword [ebp + 0x492fc], edx
call fcn.101120a0
mov ecx, ebp
call fcn.101120a0
mov ecx, ebp
mov word [ebp + 0x12], ax
call fcn.101120a0
mov word [ebp + 0x10], ax
mov dword [ebp + 0x4f5d8], 0x10118990
mov dword [ebp + 0x188], 0x61616161
jmp 0x10103def
lea eax, [esp + 0x1c]
cmp dword [eax], 0x494b4f4e
jne 0x101037e5
cmp dword [eax + 4], 0x57415241
jne 0x101037e5
mov eax, dword [str.NOKIA]
mov ecx, dword [ebp + 0x49280]
mov dword [ebp + 0xb8], eax
mov ax, word [0x102ab200]
push 0
mov word [ebp + 0xbc], ax
mov word [ebp + 0x492d8], si
mov eax, dword [ecx]
push 0
push 0x12c
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
mov ecx, ebp
mov dword [ebp + 0x492f8], eax
mov dword [ebp + 0x492fc], 0
call fcn.1010f760
mov ecx, ebp
mov edi, eax
call fcn.101120a0
mov ecx, ebp
mov word [ebp + 0x16], ax
call fcn.101120a0
movzx ebx, word [ebp + 0x16]
movzx esi, ax
mov eax, esi
mov word [ebp + 0x14], si
mov ecx, eax
lea eax, [edi*8]
imul ecx, ebx
cdq
idiv ecx
mov ecx, eax
mov dword [ebp + 0x4931c], ecx
sub eax, 8
je 0x101037ad
sub eax, 2
jne 0x101037b7
mov dword [ebp + 0x4f5d8], 0x10118990
jmp 0x101037b7
mov dword [ebp + 0x4f5d8], 0x1011a460
imul ecx, ebx
xor edx, edx
mov eax, edi
shr ecx, 3
div ecx
sub eax, esi
mov word [ebp + 0x18], ax
add eax, esi
mov word [ebp + 0x10], ax
mov dword [ebp + 0x40], 1
mov dword [ebp + 0x188], 0x61616161
jmp 0x10103def
lea eax, [esp + 0x1c]
cmp dword [eax], 0x49525241
jne 0x1010389a
mov ecx, dword [ebp + 0x49280]
push 0
mov word [ebp + 0x492d8], si
push 0
mov eax, dword [ecx]
push 0x14
call dword [eax + 0xc]
mov ecx, ebp
call fcn.1010f760
mov ecx, ebp
mov word [ebp + 0x16], ax
call fcn.1010f760
mov ecx, dword [ebp + 0x49280]
mov word [ebp + 0x14], ax
mov eax, dword [str.ARRI]
mov dword [ebp + 0xb8], eax
mov al, byte [0x102ab208]
push 0
mov byte [ebp + 0xbc], al
mov eax, dword [ecx]
push 0
push 0x29c
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
lea ebx, [ebp + 0xf8]
push 0x40
push 1
push ebx
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp + 0x492f8], 0x1000
mov dword [ebp + 0x492fc], 0
mov dword [ebp + 0x4f5d8], 0x10117920
mov dword [ebp + 0x49330], 0x58
mov dword [ebp + 0x188], 0x61616161
jmp 0x10103df5
lea eax, [esp + 0x1c]
cmp dword [eax], 0x53445058
jne 0x10103962
mov ecx, dword [ebp + 0x49280]
push 0
mov word [ebp + 0x492d8], si
push 0
mov eax, dword [ecx]
push 0x800
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
lea edx, [ebp + 0xb8]
push 0x29
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, ebp
call fcn.101120a0
mov ecx, ebp
mov word [ebp + 0x10], ax
call fcn.101120a0
mov ecx, dword [ebp + 0x49280]
push 1
mov word [ebp + 0x12], ax
push 0
mov eax, dword [ecx]
push 0x38
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
lea ebx, [ebp + 0xf8]
push 0x1e
push 1
push ebx
mov eax, dword [ecx]
call dword [eax + 8]
movsd xmm0, qword [0x102abae8]
mov ecx, ebp
push 0x3ff
push 1
sub esp, 0x10
mov dword [ebp + 0x492f8], 0x10000
mov dword [ebp + 0x492fc], 0
mov dword [ebp + 0x4f5d8], 0x10118f20
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
call fcn.1010f7e0
jmp 0x10103df5
lea eax, [esp + 0x20]
cmp dword [eax], 0x31444552
jne 0x101039c2
lea edx, [ebp + 0xb8]
mov ecx, ebp
lea ebx, [ebp + 0xf8]
mov dword [edx], 0x646552
mov dword [ebx], 0x656e4f
call fcn.10116100
movaps xmm0, xmmword [0x102abbd0]
mov ecx, ebp
push 0xfff
push 1
sub esp, 0x10
mov dword [ebp + 0x4f5d8], 0x10116280
movups xmmword [esp], xmm0
call fcn.1010f7e0
mov dword [ebp + 0x188], 0x49494949
jmp 0x10103df5
lea eax, [esp + 0x1c]
cmp dword [eax], 0x2d435344
jne 0x101039e9
cmp dword [eax + 4], 0x67616d49
jne 0x101039e9
cmp byte [eax + 8], 0x65
jne 0x101039e9
mov ecx, ebp
call fcn.101163a0
jmp 0x10103def
lea eax, [esp + 0x1c]
cmp dword [eax], 0x44415750
jne 0x10103a01
mov ecx, ebp
call fcn.10117ef0
jmp 0x10103def
lea eax, [esp + 0x1c]
cmp dword [eax], 0x4d524d00
jne 0x10103a1b
push 0
mov ecx, ebp
call fcn.1011d060
jmp 0x10103def
lea eax, [esp + 0x1c]
cmp dword [eax], 0x62564f46
jne 0x10103a33
mov ecx, ebp
call fcn.101310e0
jmp 0x10103def
lea ecx, [esp + 0x1c]
mov eax, 0x4943
cmp word [ecx], ax
jne 0x10103a4d
mov ecx, ebp
call fcn.1011aed0
jmp 0x10103def
mov eax, dword [esp + 0x10]
lea esi, [ebp + 0xf8]
lea edx, [ebp + 0xb8]
mov dword [esp + 0x14], 0
sub esi, str.F_080C
sub edx, 0x102a9dd8
xor ebx, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ebx
nop
cmp eax, dword [ebx + 0x102a9dc8]
jne 0x10103d52
lea ecx, [ebx + 0x102a9dd8]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x10103a92
mov ecx, str.Canon
lea eax, [ebp + 0xb8]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10103ad0
test dl, dl
je 0x10103acc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10103ad0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10103ab0
xor eax, eax
jmp 0x10103ad5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10103aec
mov eax, 0x63
mov word [ebp + 0x3aa], ax
mov word [ebp + 0x3a2], ax
lea ecx, [ebx + str.F_080C]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x10103af2
movzx eax, byte [ebx + 0x102a9dd7]
shr eax, 2
mov dword [ebp + 0x30], eax
movzx eax, byte [ebx + 0x102a9dd7]
and eax, 2
mov dword [ebp + 0x492b8], eax
test byte [ebx + 0x102a9dd7], 1
je 0x10103b2c
mov ecx, ebp
call fcn.10128480
movzx eax, word [ebx + 0x102a9df6]
cdq
mov dword [ebp + 0x492f8], eax
mov esi, edx
mov dword [ebp + 0x492fc], edx
mov edx, 8
movzx eax, word [ebx + 0x102a9dcc]
mov word [ebp + 0x12], ax
movzx eax, word [ebx + 0x102a9dce]
movzx ecx, word [ebp + 0x12]
mov word [ebp + 0x10], ax
movzx eax, byte [ebx + 0x102a9dd0]
mov word [ebp + 0x1a], ax
movzx eax, byte [ebx + 0x102a9dd1]
mov word [ebp + 0x18], ax
movzx eax, byte [ebx + 0x102a9dd2]
sub cx, ax
sub cx, word [ebp + 0x1a]
mov word [ebp + 0x16], cx
movzx eax, byte [ebx + 0x102a9dd3]
movzx ecx, word [ebp + 0x10]
sub cx, ax
sub cx, word [ebp + 0x18]
mov word [ebp + 0x14], cx
movzx eax, byte [ebx + 0x102a9dd5]
imul eax, eax, 0x1010101
mov ecx, eax
mov dword [ebp + 0x188], eax
shr ecx, 1
and ecx, eax
and ecx, 0x5555
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 3
mov dword [ebp + 0x184], ecx
movzx eax, byte [ebx + 0x102a9dd4]
mov ecx, dword [ebp + 0x492f8]
mov dword [ebp + 0x49330], eax
mov eax, dword [esp + 0x10]
imul edx
shld esi, ecx, 3
mov ebx, eax
mov edi, edx
movzx eax, word [ebp + 0x10]
shl ecx, 3
sub ebx, ecx
movzx ecx, word [ebp + 0x12]
sbb edi, esi
imul eax, ecx
cdq
push edx
push eax
push edi
push ebx
call fcn.101f6cd0
mov esi, eax
mov dword [ebp + 0x4931c], esi
lea ecx, [esi - 6]
cmp ecx, 0xa
ja case.0x10103c25.7
movzx ecx, byte [ecx + 0x101080d4]
jmp dword [ecx*4 + 0x101080bc]
mov dword [ebp + 0x4f5d8], 0x10119640
jmp case.0x10103c25.7
mov dword [ebp + 0x4f5d8], 0x1011a460
jmp case.0x10103c25.7
mov eax, dword [esp + 0x10]
cdq
mov esi, eax
mov ecx, edx
movzx eax, word [ebp + 0x10]
sub esi, dword [ebp + 0x492f8]
cdq
sbb ecx, dword [ebp + 0x492fc]
push edx
push eax
push ecx
push esi
call fcn.101f6cd0
mov ebx, eax
mov edi, edx
movzx eax, word [ebp + 0x12]
mov ecx, ebx
mov esi, edi
cdq
shld esi, ecx, 1
add ecx, ecx
add ebx, ecx
adc edi, esi
shld edx, eax, 2
shl eax, 2
cmp edi, edx
jl 0x10103ca4
jg 0x10103c95
cmp ebx, eax
jb 0x10103ca4
mov dword [ebp + 0x4f5d8], 0x10118c00
jmp case.0x10103c25.7
test byte [ebp + 0x49330], 1
je case.0x10103c25.12
mov dword [ebp + 0x4f5d8], 0x10118e30
jmp case.0x10103c25.7
or dword [ebp + 0x49330], 0x80
mov dword [ebp + 0x4f5d8], 0x10117920
jmp case.0x10103c25.7
mov cx, word [ebp + 0x49330]
mov eax, 0x404
and cx, 1
cwde
movsx ecx, cx
imul ecx, eax
mov eax, 0x4949
mov dword [ebp + 0x4f5d8], fcn.10117e20
or cx, ax
mov word [ebp + 0x492d8], cx
mov ecx, dword [ebp + 0x49330]
mov eax, ecx
shr eax, 4
shr ecx, 1
sub esi, eax
and ecx, 7
mov dword [ebp + 0x4931c], esi
sub dword [ebp + 0x4931c], ecx
mov dword [ebp + 0x49330], ecx
mov ebx, dword [esp + 0x3c]
mov eax, 1
mov esi, dword [esp + 0x18]
mov edx, eax
mov cl, byte [ebx + 0x102a9dd6]
shl edx, cl
mov ecx, dword [ebp + 0x4931c]
shl eax, cl
sub eax, edx
mov edx, dword [esp + 0x40]
mov dword [ebp + 0x24788], eax
mov eax, dword [esp + 0x10]
add ebx, 0x30
sub edx, 0x30
sub esi, 0x30
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], edx
mov dword [esp + 0x18], esi
cmp ebx, 0x1380
jb 0x10103a80
jmp 0x10103def
lea eax, [esp + 0x22]
cmp dword [eax], 0x50414548
jne 0x10103ddb
cmp dword [eax + 4], 0x52444343
jne 0x10103ddb
mov eax, edi
mov ecx, ebp
cdq
mov dword [ebp + 0x492f8], eax
mov eax, 0x63
mov word [ebp + 0x3aa], ax
mov word [ebp + 0x3a2], ax
mov eax, dword [esp + 0x10]
push 0
sub eax, edi
mov dword [ebp + 0x492fc], edx
push eax
push edi
call fcn.10113030
mov dword [ebp + 0x4f5d8], 0x101143d0
jmp 0x10103def
lea eax, [esp + 0x1c]
mov ecx, ebp
sub esi, eax
push esi
call fcn.10118110
test esi, esi
je 0x10103def
push 0
mov ecx, ebp
call fcn.10126f70
test eax, eax
je 0x10103def
mov ecx, ebp
call fcn.10127010
lea ebx, [ebp + 0xf8]
mov ecx, dword [esp + 0x10]
lea eax, [ebp + 0xb8]
xor edi, edi
cmp dword [esp + 0x14], edi
cmove edi, ecx
cmp byte [eax], 0
mov dword [esp + 0x14], edi
jne 0x10103f78
push ecx
push 0
mov ecx, ebp
call fcn.1011b1b0
cmp byte [ebp + 0xb8], 0
lea eax, [ebp + 0xb8]
jne 0x10103f78
push 0
mov ecx, ebp
call fcn.1011b2b0
mov ecx, dword [ebp + 0x49280]
push 2
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, dword [ebp + 0x49280]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push 2
push 0x102ab20c
push ebx
mov esi, eax
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10103e87
push 5
push str.RP_OV
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10103f6e
cmp esi, 0x61b800
jl 0x10103f6e
mov ecx, dword [ebp + 0x49280]
push 2
push 0xffffffffffffffff
push 0xff9e4800
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x10103f6e
mov ecx, dword [ebp + 0x49280]
lea edx, [esp + 0x1c]
push 0x20
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x10103f6e
mov ecx, str.BRCMn
lea eax, [esp + 0x1c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10103ef4
test dl, dl
je 0x10103ef0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10103ef4
add eax, 2
add ecx, 2
test dl, dl
jne 0x10103ed4
xor eax, eax
jmp 0x10103ef9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10103f6e
movq xmm0, qword [str.OmniVision]
mov ecx, dword [ebp + 0x49280]
movq qword [ebp + 0xb8], xmm0
movzx eax, word [0x1029d6d0]
mov word [ebp + 0xc0], ax
mov al, byte [0x1029d6d2]
mov byte [ebp + 0xc2], al
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
add eax, 0x7fe0
mov dword [ebp + 0x4f5d8], 0x10118990
mov dword [ebp + 0x492f8], eax
movzx eax, word [ebp + 0x12]
adc edx, 0
mov word [ebp + 0x16], ax
mov eax, 0xa33
mov dword [ebp + 0x492fc], edx
mov word [ebp + 0x12], ax
mov dword [ebp + 0x188], 0x16161616
jmp 0x10103f78
mov dword [ebp + 0x178], 0
xor esi, esi
lea edi, [ebp + 0xb8]
push dword [esi + 0x103ffe88]
push edi
call fcn.101299d0
add esp, 8
test eax, eax
je 0x10103fad
mov ecx, dword [esi + 0x103ffe88]
mov edx, edi
sub edx, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x10103fa0
add esi, 4
cmp esi, 0x54
jb 0x10103f80
mov edi, dword [esp + 0x14]
lea esi, [ebp + 0xb8]
mov ecx, 0x1029f9cc
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10103fe6
test dl, dl
je 0x10103fe2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10103fe6
add eax, 2
add ecx, 2
test dl, dl
jne 0x10103fc6
xor eax, eax
jmp 0x10103feb
sbb eax, eax
or eax, 1
test eax, eax
je 0x1010401f
mov ecx, str.Leica
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104016
test dl, dl
je 0x10104012
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104016
add eax, 2
add ecx, 2
test dl, dl
jne 0x10103ff6
xor eax, eax
jmp 0x1010401b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104046
push str._DIGITAL_CAMERA
push ebx
call fcn.101299d0
add esp, 8
test eax, eax
jne 0x10104043
push str.FILE_VERSION
push ebx
call fcn.101f8950
add esp, 8
test eax, eax
je 0x10104046
mov byte [eax], 0
push 6
push str.PENTAX
push ebx
call fcn.1020f800
add esp, 0xc
test eax, eax
jne 0x10104073
mov eax, dword [str.Pentax]
mov dword [esi], eax
mov ax, word [0x103d1be0]
mov word [esi + 4], ax
mov al, byte [0x103d1be2]
mov byte [esi + 6], al
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10104078
sub ecx, edx
lea eax, [ebp + 0xb7]
add eax, ecx
cmp byte [eax], 0x20
jne 0x1010409b
nop
mov byte [eax], 0
lea eax, [eax - 1]
cmp byte [eax], 0x20
je 0x10104090
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101040a0
sub ecx, edx
lea eax, [ebp + 0xf7]
add eax, ecx
cmp byte [eax], 0x20
jne 0x101040c1
mov byte [eax], 0
lea eax, [eax - 1]
cmp byte [eax], 0x20
je 0x101040b6
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x101040c4
sub esi, ecx
lea eax, [ebp + 0xb8]
push esi
push eax
push ebx
call fcn.1020f800
add esp, 0xc
mov ecx, 0x40
test eax, eax
jne 0x10104108
mov al, byte [esi + ebp + 0xf8]
inc esi
cmp al, 0x20
jne 0x10104108
sub ecx, esi
lea eax, [ebp + 0xf8]
push ecx
add eax, esi
push eax
push ebx
call fcn.101f81e0
add esp, 0xc
push 8
push str.FinePix
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10104133
lea ecx, [ebp + 0x100]
mov edx, ebx
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x10104126
push 0xf
push str.Digital_Camera
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x1010415e
lea ecx, [ebp + 0x107]
mov edx, ebx
sub edx, ecx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x10104151
mov byte [ebp + 0x24927], 0
mov byte [ebp + 0x137], 0
mov byte [ebp + 0xf7], 0
mov byte [ebp + 0x24d63], 0
mov byte [ebp + 0x24d23], 0
cmp dword [ebp + 0x178], 0
je 0x10107fe9
cmp word [ebp + 0x14], 0
jne 0x1010419d
mov ax, word [ebp + 0x10]
mov word [ebp + 0x14], ax
cmp word [ebp + 0x16], 0
jne 0x101041ac
mov ax, word [ebp + 0x12]
mov word [ebp + 0x16], ax
mov eax, 0xa40
cmp word [ebp + 0x14], ax
jne 0x101041c9
mov eax, 0xf60
cmp word [ebp + 0x16], ax
jne 0x101041c9
mov dword [ebp + 0x14], 0xf380a38
mov eax, 0xc40
cmp word [ebp + 0x14], ax
jne 0x101041f0
mov eax, 0x1300
cmp word [ebp + 0x16], ax
jne 0x101041f0
mov dword [ebp + 0x14], 0x12500c34
mov dword [ebp + 0x188], 0x16161616
mov eax, 0x1100
cmp word [ebp + 0x16], ax
jne 0x1010426e
mov ecx, 0x102ab25c
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104222
test dl, dl
je 0x1010421e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104222
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104202
xor eax, eax
jmp 0x10104227
sbb eax, eax
or eax, 1
test eax, eax
je 0x1010425b
mov ecx, 0x102ab260
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104252
test dl, dl
je 0x1010424e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104252
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104232
xor eax, eax
jmp 0x10104257
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1010426e
mov eax, 0x10d5
mov dword [ebp + 0x188], 0x16161616
mov word [ebp + 0x16], ax
mov eax, 0x1360
mov esi, 0xa
cmp word [ebp + 0x16], ax
jb 0x101042a9
push 3
push 0x102ab264
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x101042a9
mov eax, 0x1356
mov word [ebp + 0x1a], si
mov word [ebp + 0x16], ax
mov dword [ebp + 0x188], 0x16161616
mov eax, 0x1280
mov esi, 2
cmp word [ebp + 0x16], ax
jne 0x101042fd
mov ecx, 0x102ab268
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101042df
test dl, dl
je 0x101042db
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101042df
add eax, 2
add ecx, esi
test dl, dl
jne 0x101042c0
xor eax, eax
jmp 0x101042e4
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101042fd
mov dword [ebp + 0x14], 0x124c0c32
mov dword [ebp + 0x188], 0x16161616
mov word [ebp + 0x18], si
mov eax, 0x17c0
mov esi, 4
cmp word [ebp + 0x16], ax
jne 0x1010434a
mov ecx, 0x102ab26c
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104334
test dl, dl
je 0x10104330
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104334
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104314
xor eax, eax
jmp 0x10104339
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1010434a
mov eax, 0x1798
mov word [ebp + 0x1a], si
mov word [ebp + 0x16], ax
mov eax, 0x1d00
cmp word [ebp + 0x16], ax
jne 0x101043a1
mov ecx, str.645D
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104380
test dl, dl
je 0x1010437c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104380
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104360
xor eax, eax
jmp 0x10104385
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101043a1
mov dword [ebp + 0x14], 0x1ca0157e
mov dword [ebp + 0x188], 0x61616161
mov dword [ebp + 0x18], 0x30001d
mov eax, 0xbc6
mov ecx, 0x1000
cmp word [ebp + 0x14], ax
jne 0x101043c0
cmp word [ebp + 0x16], cx
jne 0x101043c0
mov eax, 0xfae
mov word [ebp + 0x16], ax
cmp dword [ebp + 0x17c], 0
je 0x10104532
cmp dword [ebp + 0x188], 0xffffffff
jne 0x101043e0
mov dword [ebp + 0x188], 0
cmp dword [ebp + 0x188], 0
mov eax, dword [ebp + 0x49318]
je 0x101043f7
mov dword [ebp + 0x178], eax
jmp 0x101043fd
mov dword [ebp + 0x184], eax
mov eax, dword [ebp + 0x49320]
cmp eax, 7
ja 0x10104427
je 0x1010441b
cmp eax, 1
ja 0x1010442e
mov dword [ebp + 0x4f5d8], 0x10115230
jmp 0x10104444
mov dword [ebp + 0x4f5d8], 0x10115080
jmp 0x10104444
cmp eax, 0x884c
je 0x1010443a
mov dword [ebp + 0x4f5d8], 0
jmp 0x10104444
mov dword [ebp + 0x4f5d8], 0x10115360
lea edi, [ebp + 0xb8]
mov ecx, str.Canon
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104471
test dl, dl
je 0x1010446d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104471
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104451
xor eax, eax
jmp 0x10104476
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101044cd
mov esi, dword [ebp + 0x492cc]
test esi, esi
je 0x101044cd
xor edx, edx
xor ecx, ecx
nop dword [eax + eax]
movzx eax, word [ecx + 0x102a9540]
sub eax, 0x80000000
cmp esi, eax
je 0x101044ae
add ecx, 0x16
inc edx
cmp ecx, 0x39c
jb 0x10104490
jmp 0x101044cd
imul eax, edx, 0x16
mov edx, ebx
lea ecx, [eax + str.EOS_1D]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x101044c0
push str.Sony
push edi
call fcn.1020f71e
add esp, 8
test eax, eax
jne 0x10105ba6
mov esi, dword [ebp + 0x492cc]
test esi, esi
je 0x10105ba6
xor edx, edx
xor ecx, ecx
movzx eax, word [ecx + 0x102a98e0]
cmp esi, eax
je 0x10104511
add ecx, 0x16
inc edx
cmp ecx, 0x4e6
jb 0x101044f5
jmp 0x10105ba6
imul eax, edx, 0x16
mov edx, ebx
lea ecx, [eax + str.DSC_R1]
sub edx, ecx
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x10104520
jmp 0x10105ba6
mov ecx, str.Canon
lea eax, [ebp + 0xb8]
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104560
test dl, dl
je 0x1010455c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104560
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104540
xor eax, eax
jmp 0x10104565
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1010465c
test edi, edi
jne 0x1010465c
cmp dword [ebp + 0x4931c], 0xf
je 0x1010465c
cmp dword [ebp + 0x4f5d8], edi
jne 0x10104594
mov dword [ebp + 0x4f5d8], 0x101146f0
xor edx, edx
nop word [eax + eax]
movzx edi, word [ebp + 0x12]
cmp di, word [edx + 0x102a91d0]
jne 0x10104634
movzx esi, word [ebp + 0x10]
cmp si, word [edx + 0x102a91d2]
jne 0x10104634
movzx eax, word [edx + 0x102a91d4]
movzx ecx, word [edx + 0x102a91d6]
sub di, word [edx + 0x102a91d8]
sub si, word [edx + 0x102a91da]
sub di, ax
mov word [ebp + 0x1a], ax
sub si, cx
movzx eax, word [edx + 0x102a91dc]
mov word [ebp + 0x18], cx
mov word [ebp + 0x16], di
mov word [ebp + 0x14], si
mov dword [ebp + 0x38], eax
movzx eax, word [edx + 0x102a91de]
neg eax
mov dword [ebp + 0x40], eax
movzx eax, word [edx + 0x102a91e0]
mov dword [ebp + 0x48], eax
movzx eax, word [edx + 0x102a91e2]
neg eax
mov dword [ebp + 0x50], eax
movzx eax, word [edx + 0x102a91e4]
test ax, ax
je 0x10104634
imul eax, eax, 0x1010101
mov dword [ebp + 0x188], eax
add edx, 0x16
cmp edx, 0x370
jb 0x101045a0
mov eax, dword [ebp + 0x492cc]
or eax, 0x20000
cmp eax, 0x2720000
jne 0x1010465c
mov dword [ebp + 0x18], 0x80010
lea edi, [ebp + 0xb8]
mov ecx, str.Canon
mov eax, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104690
test dl, dl
je 0x1010468c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104690
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104670
xor eax, eax
jmp 0x10104695
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101046f7
cmp dword [ebp + 0x492cc], eax
je 0x101046f7
mov esi, ebx
mov edi, str.EOS_1D
sub esi, edi
lea ebx, [eax + 0x2a]
nop dword [eax]
movzx eax, word [edi - 2]
sub eax, 0x80000000
cmp dword [ebp + 0x492cc], eax
jne 0x101046e0
mov eax, dword [ebp]
mov ecx, ebp
push 0
push edi
push str.Canon
call dword [eax + 0x14]
mov ecx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x101046d3
sub esi, 0x16
add edi, 0x16
sub ebx, 1
jne 0x101046b0
lea ebx, [ebp + 0xf8]
lea edi, [ebp + 0xb8]
push str.Sony
push edi
call fcn.1020f71e
add esp, 8
test eax, eax
jne 0x1010475e
cmp dword [ebp + 0x492cc], eax
je 0x1010475e
mov esi, ebx
mov edi, str.DSC_R1
sub esi, edi
lea ebx, [eax + 0x39]
nop dword [eax]
movzx eax, word [edi - 2]
cmp dword [ebp + 0x492cc], eax
jne 0x1010474d
mov eax, dword [ebp]
mov ecx, ebp
push 0
push edi
push str.Sony
call dword [eax + 0x14]
mov ecx, edi
nop
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x10104740
sub esi, 0x16
add edi, 0x16
sub ebx, 1
jne 0x10104720
lea edi, [ebp + 0xb8]
mov ecx, str.Nikon
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104785
test dl, dl
je 0x10104781
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104785
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104765
xor eax, eax
jmp 0x1010478a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101047cf
cmp dword [ebp + 0x4f5d8], eax
jne 0x101047a0
mov dword [ebp + 0x4f5d8], 0x10117920
cmp byte [ebp + 0xf8], 0x45
lea ebx, [ebp + 0xf8]
jne 0x101047d5
mov eax, dword [ebp + 0x492f8]
or eax, dword [ebp + 0x492fc]
mov eax, 6
je 0x101047c7
mov eax, 2
or dword [ebp + 0x49330], eax
jmp 0x101047d5
lea ebx, [ebp + 0xf8]
mov ecx, str.KAI_0340
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104800
test dl, dl
je 0x101047fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104800
add eax, 2
add ecx, 2
test dl, dl
jne 0x101047e0
xor eax, eax
jmp 0x10104805
sbb eax, eax
or eax, 1
mov esi, 0x1e0
test eax, eax
jne 0x10104859
push 0x1400
push 0xf00
push 0x10
push 0x10
mov ecx, ebp
call fcn.10117c00
movss xmm0, dword [0x102abb5c]
fstp dword [esp + 0x18]
comiss xmm0, dword [esp + 0x18]
jbe 0x10104859
xor eax, eax
mov word [ebp + 0x14], si
mov dword [ebp + 0x188], 0
mov word [ebp + 0x18], ax
mov eax, dword [str.C603]
mov dword [ebx], eax
mov al, byte [0x102ab288]
mov byte [ebx + 4], al
cmp dword [ebp + 0x180], 0
je 0x101048a0
movzx edx, word [ebp + 0x14]
movzx esi, word [ebp + 0x16]
mov ecx, edx
add ecx, ecx
cmp ecx, esi
jae 0x1010487f
movsd xmm0, qword [0x103d7c40]
movsd qword [ebp + 0x28], xmm0
cmp dx, si
jbe 0x10104891
movsd xmm0, qword [0x103d7d60]
movsd qword [ebp + 0x28], xmm0
mov dword [ebp + 0x188], 0
jmp 0x10105ad0
mov ecx, str.Canon
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101048c7
test dl, dl
je 0x101048c3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101048c7
add eax, 2
add ecx, 2
test dl, dl
jne 0x101048a7
xor eax, eax
jmp 0x101048cc
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104953
cmp dword [ebp + 0x4931c], 0xf
jne 0x10104953
movzx ecx, word [ebp + 0x16]
mov eax, ecx
cmp eax, 0xd10
je 0x101048f3
cmp eax, 0xf20
je 0x101048fa
jmp 0x10104903
lea eax, [ecx - 0x42]
mov word [ebp + 0x16], ax
mov eax, 0xfffa
add word [ebp + 0x16], ax
movzx edx, word [ebp + 0x16]
movzx eax, word [ebp + 0x14]
cmp ax, dx
jbe 0x10104926
add eax, edx
movzx ecx, ax
mov eax, ecx
sub eax, edx
movzx eax, ax
sub ecx, eax
mov word [ebp + 0x16], ax
mov word [ebp + 0x14], cx
mov dword [ebp + 0x188], 0
mov dword [ebp + 0x184], 3
mov dword [ebp + 0x49318], 3
mov dword [ebp + 0x4f5d8], 0x10114930
jmp 0x10105ad0
mov ecx, str.PowerShot_600
mov eax, ebx
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104980
test dl, dl
je 0x1010497c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104980
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104960
xor eax, eax
jmp 0x10104985
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101049bc
mov eax, 0x380
mov dword [ebp + 0x14], 0x3560265
mov word [ebp + 0x12], ax
mov dword [ebp + 0x184], 4
mov dword [ebp + 0x188], 0xe1e4e1e4
mov dword [ebp + 0x4f5d8], 0x10112d60
jmp 0x10105ad0
mov ecx, str.PowerShot_A5
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101049e3
test dl, dl
je 0x101049df
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101049e3
add eax, 2
add ecx, 2
test dl, dl
jne 0x101049c3
xor eax, eax
jmp 0x101049e8
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107d03
mov ecx, str.PowerShot_A5_Zoom
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104a17
test dl, dl
je 0x10104a13
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104a17
add eax, 2
add ecx, 2
test dl, dl
jne 0x101049f7
xor eax, eax
jmp 0x10104a1c
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107d03
mov ecx, str.PowerShot_A50
mov eax, ebx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104a50
test dl, dl
je 0x10104a4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104a50
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104a30
xor eax, eax
jmp 0x10104a55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104a74
mov dword [ebp + 0x14], 0x50a03c8
mov eax, 0x528
mov dword [ebp + 0x188], 0x1b4e4b1e
jmp 0x10107d26
mov ecx, str.PowerShot_Pro70
mov eax, ebx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104aa0
test dl, dl
je 0x10104a9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104aa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104a80
xor eax, eax
jmp 0x10104aa5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104abf
mov dword [ebp + 0x14], 0x6100400
mov dword [ebp + 0x188], 0x1e4b4e1b
jmp 0x10107d2a
mov ecx, str.PowerShot_Pro90_IS
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104ae6
test dl, dl
je 0x10104ae2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104ae6
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104ac6
xor eax, eax
jmp 0x10104aeb
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cea
mov ecx, str.PowerShot_G1
mov eax, ebx
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104b20
test dl, dl
je 0x10104b1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104b20
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104b00
xor eax, eax
jmp 0x10104b25
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cea
mov ecx, str.PowerShot_A610
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104b54
test dl, dl
je 0x10104b50
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104b54
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104b34
xor eax, eax
jmp 0x10104b59
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104b89
mov ecx, ebp
call fcn.10112fe0
test eax, eax
je 0x10105ad0
mov eax, dword [str.S2_IS]
mov dword [ebp + 0x102], eax
mov ax, word [0x102ab318]
mov word [ebp + 0x106], ax
jmp 0x10105ad0
mov ecx, str.PowerShot_SX220_HS
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104bb0
test dl, dl
je 0x10104bac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104bb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104b90
xor eax, eax
jmp 0x10104bb5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104bcc
mov dword [ebp + 0x50], 0xfffffffc
mov dword [ebp + 0x18], 0x5c0010
jmp 0x10105ad0
mov ecx, str.PowerShot_S120
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104bf3
test dl, dl
je 0x10104bef
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104bf3
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104bd3
xor eax, eax
jmp 0x10104bf8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104c38
mov dword [ebp + 0x14], 0xfb60bc8
mov dword [ebp + 0x18], 0x78001f
mov dword [ebp + 0x10], 0x10600bf6
mov dword [ebp + 0x34], 0x1f
movzx ecx, word [ebp + 0x18]
movzx eax, word [ebp + 0x14]
add ecx, eax
mov dword [ebp + 0x38], 0x17
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x40], 0x48
jmp 0x10105ad0
mov ecx, str.PowerShot_G16
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104c60
test dl, dl
je 0x10104c5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104c60
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104c40
xor eax, eax
jmp 0x10104c65
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104ca5
mov dword [ebp + 0x34], eax
mov ecx, 0xa8
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], 0x50
mov dword [ebp + 0x40], 0x10
movzx eax, word [ebp + 0x12]
sub ax, cx
mov dword [ebp + 0x18], 0x78001d
mov word [ebp + 0x16], ax
movzx eax, word [ebp + 0x10]
sub ax, 0x2b
mov word [ebp + 0x14], ax
jmp 0x10105ad0
mov ecx, str.PowerShot_SX50_HS
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104cd0
test dl, dl
je 0x10104ccc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104cd0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104cb0
xor eax, eax
jmp 0x10104cd5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104ce7
mov eax, 0x11
mov word [ebp + 0x18], ax
jmp 0x10105ad0
mov ecx, str.EOS_D2000C
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104d10
test dl, dl
je 0x10104d0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104d10
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104cf0
xor eax, eax
jmp 0x10104d15
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104d35
mov dword [ebp + 0x188], 0x61616161
movzx eax, word [ebp + 0x8f8]
mov dword [ebp + 0x24780], eax
jmp 0x10105ad0
mov ecx, 0x102ab370
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104d60
test dl, dl
je 0x10104d5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104d60
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104d40
xor eax, eax
jmp 0x10104d65
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104dac
movss xmm0, dword [ebp + 0x2480c]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x102aba58]
cvtpd2ps xmm0, xmm0
movss dword [ebp + 0x2480c], xmm0
movss xmm0, dword [ebp + 0x24814]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x102aba68]
cvtpd2ps xmm0, xmm0
movss dword [ebp + 0x24814], xmm0
jmp 0x10105ad0
mov ecx, 0x102ab374
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104dd3
test dl, dl
je 0x10104dcf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104dd3
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104db3
xor eax, eax
jmp 0x10104dd8
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104df7
movsd xmm0, qword [0x103d7c40]
mov eax, 0xfffc
add word [ebp + 0x16], ax
movsd qword [ebp + 0x28], xmm0
jmp 0x10105ad0
mov ecx, str.D40X
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104e20
test dl, dl
je 0x10104e1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104e20
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104e00
xor eax, eax
jmp 0x10104e25
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cd3
mov ecx, 0x102ab380
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104e54
test dl, dl
je 0x10104e50
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104e54
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104e34
xor eax, eax
jmp 0x10104e59
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cd3
mov ecx, 0x102ab384
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104e88
test dl, dl
je 0x10104e84
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104e88
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104e68
xor eax, eax
jmp 0x10104e8d
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cd3
mov ecx, str.D3000
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104ec0
test dl, dl
je 0x10104ebc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104ec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104ea0
xor eax, eax
jmp 0x10104ec5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cd3
mov ecx, 0x102ab390
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104ef4
test dl, dl
je 0x10104ef0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104ef4
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104ed4
xor eax, eax
jmp 0x10104ef9
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cbc
mov ecx, 0x102ab394
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104f28
test dl, dl
je 0x10104f24
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104f28
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104f08
xor eax, eax
jmp 0x10104f2d
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cbc
mov ecx, str.D700
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104f60
test dl, dl
je 0x10104f5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104f60
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104f40
xor eax, eax
jmp 0x10104f65
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cbc
mov ecx, str.D3100
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104f94
test dl, dl
je 0x10104f90
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104f94
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104f74
xor eax, eax
jmp 0x10104f99
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10104fb4
mov eax, 0xffe4
add word [ebp + 0x16], ax
mov eax, 6
mov word [ebp + 0x1a], ax
jmp 0x10105ad0
mov ecx, str.D5000
mov eax, ebx
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10104fe0
test dl, dl
je 0x10104fdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10104fe0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104fc0
xor eax, eax
jmp 0x10104fe5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cae
mov ecx, 0x102ab3b0
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105014
test dl, dl
je 0x10105010
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105014
add eax, 2
add ecx, 2
test dl, dl
jne 0x10104ff4
xor eax, eax
jmp 0x10105019
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107cae
mov ecx, str.D5100
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105048
test dl, dl
je 0x10105044
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105048
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105028
xor eax, eax
jmp 0x1010504d
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107ca0
mov ecx, str.D7000
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105080
test dl, dl
je 0x1010507c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105080
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105060
xor eax, eax
jmp 0x10105085
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107ca0
mov ecx, str.COOLPIX_A
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101050b4
test dl, dl
je 0x101050b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101050b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105094
xor eax, eax
jmp 0x101050b9
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107ca0
mov ecx, str.D3200
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101050e8
test dl, dl
je 0x101050e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101050e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x101050c8
xor eax, eax
jmp 0x101050ed
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107c92
push 2
push 0x102ab3d8
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10107c92
push 4
push str.D800
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10107c92
mov ecx, 0x102ab3e4
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105150
test dl, dl
je 0x1010514c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105150
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105130
xor eax, eax
jmp 0x10105155
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107c7b
mov ecx, 0x102ab3e8
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105184
test dl, dl
je 0x10105180
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105184
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105164
xor eax, eax
jmp 0x10105189
sbb eax, eax
or eax, 1
test eax, eax
je 0x10107c7b
push 3
push 0x102ab3ec
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10107c6d
push 3
push 0x103d2484
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10107c6d
push 3
push 0x102ab3f0
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
je 0x10107c6d
mov ecx, str.D100
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105200
test dl, dl
je 0x101051fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105200
add eax, 2
add ecx, 2
test dl, dl
jne 0x101051e0
xor eax, eax
jmp 0x10105205
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1010522c
cmp dword [ebp + 0x49330], eax
je 0x10105ad0
movzx eax, word [ebp + 0x16]
add eax, 3
mov word [ebp + 0x16], ax
add eax, 3
mov word [ebp + 0x12], ax
jmp 0x10105ad0
mov ecx, str.D200
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105253
test dl, dl
je 0x1010524f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105253
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105233
xor eax, eax
jmp 0x10105258
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1010527d
mov eax, 1
mov dword [ebp + 0x188], 0x94949494
mov word [ebp + 0x1a], ax
mov eax, 0xfffc
add word [ebp + 0x16], ax
jmp 0x10105ad0
push 3
push 0x102ab404
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x101052a8
mov eax, 6
mov word [ebp + 0x1a], ax
mov eax, 0xfff2
add word [ebp + 0x16], ax
jmp 0x10105ad0
push 3
push 0x102ab408
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x101052e4
movzx eax, word [ebp + 0x16]
mov ecx, 0xcc0
cmp ax, cx
jne 0x101052d8
mov eax, 0xca0
mov word [ebp + 0x16], ax
jmp 0x10105ad0
add eax, 0xfffffff8
mov word [ebp + 0x16], ax
jmp 0x10105ad0
push 4
push str.D300
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x10105306
mov eax, 0xffe0
add word [ebp + 0x16], ax
jmp 0x10105ad0
mov ecx, str.Nikon
mov eax, edi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105330
test dl, dl
je 0x1010532c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105330
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105310
xor eax, eax
jmp 0x10105335
sbb eax, eax
or eax, 1
mov esi, 0xfc0
test eax, eax
jne 0x10105448
cmp word [ebp + 0x12], si
jne 0x10105448
mov ecx, str.COOLPIX_P7700
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105373
test dl, dl
je 0x1010536f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105373
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105353
xor eax, eax
jmp 0x10105378
sbb eax, eax
or eax, 1
test eax, eax
jne 0x101053a9
mov eax, dword [ebp]
mov ecx, ebp
push 0
push str.COOLPIX_P7700
push str.Nikon
call dword [eax + 0x14]
mov dword [ebp + 0x24788], 0xffe0
mov dword [ebp + 0x49330], 0
jmp 0x10105ad0
mov ecx, str.COOLPIX_P7800
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101053d0
test dl, dl
je 0x101053cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101053d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x101053b0
xor eax, eax
jmp 0x101053d5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10105406
mov eax, dword [ebp]
mov ecx, ebp
push 0
push str.COOLPIX_P7800
push str.Nikon
call dword [eax + 0x14]
mov dword [ebp + 0x24788], 0xffe0
mov dword [ebp + 0x49330], 0
jmp 0x10105ad0
mov ecx, str.COOLPIX_P340
mov eax, ebx
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105430
test dl, dl
je 0x1010542c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105430
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105410
xor eax, eax
jmp 0x10105435
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10105ad0
mov dword [ebp + 0x49330], eax
jmp 0x10105ad0
push 9
push str.COOLPIX_P
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x101054a7
cmp word [ebp + 0x12], si
je 0x101054a7
mov dword [ebp + 0x49330], 0x18
mov dword [ebp + 0x188], 0x94949494
cmp byte [ebp + 0x101], 0x37
jne 0x10105ad0
movss xmm0, dword [ebp + 0x24a58]
comiss xmm0, dword [0x102abb70]
jb 0x10105ad0
mov dword [ebp + 0x24780], 0xff
jmp 0x10105ad0
push 2
push 0x102ab450
push ebx
call fcn.10201aa0
add esp, 0xc
test eax, eax
jne 0x101054c9
mov eax, 0xfffe
add word [ebp + 0x14], ax
jmp 0x10105ad0
mov eax, dword [esp + 0x14]
cmp eax, 0x182004
jne 0x10105500
push 3
mov ecx, ebp
call fcn.1011d5d0
mov dword [ebp + 0x2481c], 0x3f9ab021
mov dword [ebp + 0x24820], 0x3f8c1206
mov dword [ebp + 0x24828], 0x3f8e1e4f
jmp 0x10105ad0
cmp eax, 0x308040
jne 0x1010553c
movss xmm0, dword [ebp + 0x2480c]
mulss xmm0, dword [0x103d7ee8]
movss dword [ebp + 0x2480c], xmm0
movss xmm0, dword [ebp + 0x24814]
mulss xmm0, dword [0x103d7ee8]
movss dword [ebp + 0x24814], xmm0
jmp 0x10105ad0
cmp eax, 0x48d000
jne 0x101055d9
mov eax, dword [ebp + 0x24a68]
or eax, dword [ebp + 0x24a6c]
jne 0x1010556f
mov ecx, ebp
call fcn.10115cb0
test eax, eax
je 0x1010556f
mov eax, dword [str.E995]
mov dword [ebx], eax
mov al, byte [0x102ab458]
mov byte [ebx + 4], al
mov ecx, str.E995
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105596
test dl, dl
je 0x10105592
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105596
add eax, 2
add ecx, 2
test dl, dl
jne 0x10105576
xor eax, eax
jmp 0x1010559b
sbb eax, eax
or eax, 1
test eax, eax
je 0x10105ad0
push 3
mov ecx, ebp
mov dword [ebp + 0x188], 0xb4b4b4b4
call fcn.1011d5d0
mov dword [ebp + 0x2481c], 0x3f991687
mov dword [ebp + 0x24820], 0x3f9f7cee
mov dword [ebp + 0x24824], 0x3f824dd3
jmp 0x10105ad0
cmp eax, 0x2ce000
jne 0x1010566e
mov eax, dword [ebp + 0x24a68]
or eax, dword [ebp + 0x24a6c]
jne 0x1010560e
mov ecx, ebp
call fcn.10115d40
test eax, eax
jne 0x1010560e
mov eax, dword [str.E2500]
mov dword [ebx], eax
mov ax, word [0x102ab460]
mov word [ebx + 4], ax
mov ecx, str.E2500
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105635
test dl, dl
je 0x10105631
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10105635
xor eax, eax
jmp 0x1010563a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10105ad0
mov eax, 0xfffe
mov dword [ebp + 0x49330], 6
add word [ebp + 0x14], ax
mov dword [ebp + 0x184], 4
mov dword [ebp + 0x188], 0x4b4b4b4b
jmp 0x10105ad0
cmp eax, 0x48e000
jne 0x1010577e
mov eax, dword [ebp + 0x24a68]
or eax, dword [ebp + 0x24a6c]
jne 0x1010568e
mov ecx, ebp
call fcn.10115dd0
cmp byte [ebx], 0x45
jne 0x101056b3
lea eax, [ebp + 0xf9]
push eax
call fcn.1020b786
add esp, 4
cmp eax, 0xe74
jge 0x101056b3
mov ecx, str.Optio_33WR
mov eax, ebx
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101056e0
cmp eax, 0x599000
jne 0x101057de
mov eax, dword [ebp + 0x24a68]
or eax, dword [ebp + 0x24a6c]
jne 0x101057c3
mov ecx, ebp
call fcn.10115e70
test eax, eax
je 0x101057c3
cmp byte [edi], 0x4d
mov eax, 6
mov ecx, 0x1e
cmove eax, ecx
mov dword [ebp + 0x49330], eax
jmp 0x10105ad0
cmp eax, 0x600000
jne 0x1010584b
mov ecx, dword [ebp + 0x49280]
push 0
push 0
push 0x300000
mov eax, dword [ecx]
call dword [eax + 0xc]
push 0x10000
mov ecx, ebp
call fcn.10128810
mov ecx, 0x4d4d
mov word [ebp + 0x492d8], ax
cmp ax, cx
jne 0x10105ad0
mov ecx, str.Fujifilm
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10105872
cmp dword [ebp + 0x4f5d8], 0
je 0x10108025
movzx edx, word [ebp + 0x14]
cmp edx, 0x16
jb 0x10108025
movzx ecx, word [ebp + 0x16]
cmp ecx, 0x16
jb 0x10108025
cmp dword [ebp + 0x4931c], 0x10
ja 0x10108025
cmp dword [ebp + 0x49318], 4
ja 0x10108025
mov eax, dword [ebp + 0x184]
cmp eax, 4
jg 0x10108025
cmp eax, 1
jl 0x10108025
cmp byte [ebx], 0
jne 0x10105b3e
push edx
push ecx
push str._dx_d
push ebx
call fcn.100142e0
add esp, 0x10
cmp dword [ebp + 0x188], 0xffffffff
jne 0x10105b51
mov dword [ebp + 0x188], 0x94949494
mov esi, dword [ebp + 0x49298]
mov eax, esi
mov edx, dword [ebp + 0x4929c]
or eax, edx
je 0x10105ba6
cmp word [ebp + 0x24d6e], 0
jne 0x10105ba6
mov ecx, dword [ebp + 0x49280]
push 0
push edx
push esi
mov eax, dword [ecx]
call dword [eax + 0xc]
push 1
lea eax, [esp + 0x48]
mov ecx, ebp
push eax
call fcn.10113bf0
test eax, eax
je 0x10105ba6
movzx eax, word [esp + 0x4c]
mov word [ebp + 0x24d6c], ax
movzx eax, word [esp + 0x48]
mov word [ebp + 0x24d6e], ax
cmp dword [ebp + 0x684], 0
jne 0x10107d57
cmp dword [ebp + 0x17c], 0
jne 0x10107d57
xor eax, eax
jmp 0x10107d5c
mov eax, 0xffff
add word [ebp + 0x16], ax
jmp 0x10105ad0
mov eax, 0xffcc
add word [ebp + 0x16], ax
mov eax, 2
mov word [ebp + 0x1a], ax
jmp 0x10105ad0
mov eax, 0xffd2
add word [ebp + 0x16], ax
jmp 0x10105ad0
mov eax, 0xffd4
add word [ebp + 0x16], ax
jmp 0x10105ad0
mov eax, 0xffd6
add word [ebp + 0x16], ax
jmp 0x10105ad0
mov eax, 0xfffc
add word [ebp + 0x16], ax
mov eax, 2
mov word [ebp + 0x1a], ax
jmp 0x10105ad0
mov eax, 0xfffd
add word [ebp + 0x14], ax
mov eax, 0xfffc
add word [ebp + 0x16], ax
jmp 0x10105ad0
mov dword [ebp + 0x184], 4
mov dword [ebp + 0x188], 0xb4b4b4b4
jmp 0x10105ad0
movsd xmm0, qword [0x102aba98]
mov eax, 0x3e0
mov dword [ebp + 0x14], 0x3c00305
movsd qword [ebp + 0x28], xmm0
mov dword [ebp + 0x188], 0x1e4e1e4e
mov word [ebp + 0x12], ax
mov dword [ebp + 0x184], 4
mov dword [ebp + 0x4931c], 0xa
mov dword [ebp + 0x4f5d8], 0x10117920
mov dword [ebp + 0x49330], 0x28
jmp 0x10105ad0
mov eax, 1
test dword [ebp + 0x688], eax
je 0x10107da9
movss xmm0, dword [ebp + 0x2482c]
comiss xmm0, dword [0x103d7a50]
jbe 0x10107da9
movups xmm0, xmmword [ebp + 0x2482c]
movups xmmword [ebp + 0x2485c], xmm0
movups xmm0, xmmword [ebp + 0x2483c]
movups xmmword [ebp + 0x2486c], xmm0
movups xmm0, xmmword [ebp + 0x2484c]
movups xmmword [ebp + 0x2487c], xmm0
mov dword [ebp + 0x492b4], 0
cmp dword [ebp + 0x492b4], 0
je 0x10107db6
push 0
jmp 0x10107dd1
movss xmm1, dword [ebp + 0x2488c]
movsd xmm0, qword [0x103d7b10]
cvtps2pd xmm1, xmm1
comisd xmm0, xmm1
jbe 0x10107ddb
push 1
mov eax, dword [ebp]
mov ecx, ebp
push ebx
push edi
call dword [eax + 0x14]
cmp dword [ebp + 0x4f5d8], 0x10119bc0
jne 0x10107e04
cmp dword [ebp + 0x492b4], 0
je 0x10107e04
mov eax, dword [ebp]
mov ecx, ebp
push 0
push str.Quicktake
push str.Apple
call dword [eax + 0x14]
cmp word [ebp + 0x492be], 0
je 0x10107e68
movzx edx, word [ebp + 0x16]
xor eax, eax
cmp dword [ebp + 0x49314], eax
sete al
mov cx, ax
shr dx, cl
mov eax, edx
mov word [ebp + 0x492be], dx
not eax
test al, 1
je 0x10107e3c
mov dword [ebp + 0x188], 0x49494949
mov ax, word [ebp + 0x14]
mov cx, word [ebp + 0x49314]
movsd xmm0, qword [0x103d7ce0]
shr ax, cl
add ax, dx
movsd qword [ebp + 0x28], xmm0
movzx eax, ax
mov word [ebp + 0x16], ax
dec eax
mov word [ebp + 0x14], ax
jmp 0x10107e8c
mov ax, word [ebp + 0x10]
cmp ax, word [ebp + 0x14]
jae 0x10107e7a
mov ax, word [ebp + 0x14]
mov word [ebp + 0x10], ax
mov ax, word [ebp + 0x12]
cmp ax, word [ebp + 0x16]
jae 0x10107e8c
mov ax, word [ebp + 0x16]
mov word [ebp + 0x12], ax
cmp dword [ebp + 0x4931c], 0
jne 0x10107e9f
mov dword [ebp + 0x4931c], 0xc
cmp dword [ebp + 0x24788], 0
jne 0x10107ee2
mov ecx, dword [ebp + 0x4931c]
mov eax, 1
shl eax, cl
dec eax
mov dword [ebp + 0x24788], eax
cmp eax, 0x10000
jae 0x10107ee2
movzx eax, word [ebp + eax*2 + 0x768]
test ax, ax
je 0x10107ee2
cmp dword [ebp + 0x4f5d8], 0x1011c510
jne 0x10107ee2
mov dword [ebp + 0x24788], eax
mov eax, dword [ebp + 0x4f5d8]
test eax, eax
je 0x10107f15
cmp word [ebp + 0x14], 0x16
jb 0x10107f15
cmp word [ebp + 0x16], 0x16
jb 0x10107f15
cmp dword [ebp + 0x4931c], 0x10
ja 0x10107f15
cmp dword [ebp + 0x49318], 6
ja 0x10107f15
cmp dword [ebp + 0x184], 4
jle 0x10107f1f
mov dword [ebp + 0x178], 0
cmp eax, 0x10116280
jne 0x10107f3a
mov dword [ebp + 0x178], 0
or dword [ebp + 0x764], 0x800
mov eax, dword [ebp + 0x4f5d8]
cmp eax, 0x1011a390
je 0x10107f4e
cmp eax, 0x10115360
jne 0x10107f5f
mov dword [ebp + 0x178], 0
or dword [ebp + 0x764], 0x10
cmp byte [ebp + 0x1d4], 0
lea edx, [ebp + 0x1d4]
jne 0x10107f90
cmp dword [ebp + 0x184], 3
mov ecx, str.RGBG
mov eax, str.GMCY
cmovne ecx, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx], al
lea edx, [edx + 1]
test al, al
jne 0x10107f82
cmp word [ebp + 0x10], 0
jne 0x10107f9f
mov ax, word [ebp + 0x14]
mov word [ebp + 0x10], ax
cmp word [ebp + 0x12], 0
jne 0x10107fae
mov ax, word [ebp + 0x16]
mov word [ebp + 0x12], ax
mov edx, dword [ebp + 0x188]
cmp edx, 0x3e7
jbe 0x10107fe9
cmp dword [ebp + 0x184], 3
jne 0x10107fe9
mov ecx, edx
mov eax, edx
shr ecx, 2
and eax, 0xe2222222
and ecx, 0x22222222
shl eax, 2
or ecx, eax
lea eax, [edx + edx]
and ecx, eax
or ecx, edx
mov dword [ebp + 0x188], ecx
cmp dword [ebp + 0x30], 0xffffffff
jne 0x10108004
mov eax, dword [ebp + 0x492d4]
mov dword [ebp + 0x30], eax
cmp eax, 0xffffffff
jne 0x10108004
mov dword [ebp + 0x30], 0
mov eax, dword [ebp + 0x4f5bc]
test eax, eax
je 0x1010804e
push 2
push 1
push 2
push dword [ebp + 0x4f5c0]
call eax
add esp, 0x10
test eax, eax
je 0x1010804e
jmp 0x10108059
mov dword [ebp + 0x178], 0
mov eax, dword [ebp + 0x4f5bc]
test eax, eax
je 0x1010804e
push 2
push 1
push 2
push dword [ebp + 0x4f5c0]
call eax
add esp, 0x10
test eax, eax
jne 0x10108070
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
push 0x103ec24c
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 6
push eax
call fcn.101f94fb
push 0x103ec24c
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 6
push eax
call fcn.101f94fb
nop
hlt