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

Disassembly:
or eax, 0xffffffff
xor edx, edx
mov dword [0x4a951c], eax
mov dword [0x4a9514], eax
mov dword [0x4a9518], eax
push ebx
movzx eax, dx
mov word [0x4cb5ec], dx
mov dword [0x4a944c], eax
mov dword [0x4a954c], eax
mov dword [0x4a952c], eax
xor edx, edx
mov dword [0x4a9528], eax
mov dword [0x4a953c], edx
mov dword [0x4a9538], edx
mov dword [0x4a9534], edx
mov dword [0x4a9530], edx
push esi
xor eax, eax
push edi
mov dword [0x4a9464], edx
push ebp
mov byte [0x4a9375], al
add esp, 0xfffffdcc
mov byte [0x4a9335], al
mov byte [0x4a92f5], al
mov byte [0x4a93b5], al
mov byte [0x4a90f5], al
xor edx, edx
mov dword [esp + 8], 1
mov byte [0x4a90f0], al
xor eax, eax
mov dword [esp + 0x210], edx
mov dword [esp + 0x214], eax
fild qword [esp + 0x210]
mov dword [0x4a9434], edx
push 0x1e0
xor ecx, ecx
push 0
fst dword [0x4a940c]
fst dword [0x4a9408]
fst dword [0x4a9404]
fstp dword [0x4a9400]
mov dword [0x4a9450], ecx
push 0x4f173c
call fcn.00446730
add esp, 0xc
push 0x80
push 0
push 0x4a9490
call fcn.00446730
add esp, 0xc
push 0x200c
push 0
push 0x4a9560
call fcn.00446730
add esp, 0xc
push 0x80
push 0
push 0x4ab56c
call fcn.00446730
add esp, 0xc
push 0x80
push 0
push 0x4cb604
call fcn.00446730
xor eax, eax
xor edx, edx
mov dword [0x4a9554], eax
mov dword [0x4a9550], eax
mov dword [0x4a9438], eax
mov dword [0x4a941c], eax
mov dword [0x4eb710], edx
mov dword [0x4eb70c], edx
xor eax, eax
mov dword [0x4eb704], 0x423010
mov dword [0x4a945c], eax
mov dword [0x4a9458], eax
mov dword [0x4a943c], eax
mov dword [0x4a9420], eax
xor edx, edx
mov dword [0x4a9418], eax
mov dword [0x4a9510], edx
mov dword [0x4a947c], edx
mov dword [0x4a9474], edx
xor eax, eax
mov dword [0x4a942c], edx
mov dword [0x4a9480], eax
mov dword [0x4a9460], eax
mov dword [0x4a9454], eax
mov dword [0x4a9428], eax
xor edx, edx
mov dword [0x4a9410], eax
mov dword [0x4a9470], edx
add esp, 0xc
mov dword [0x4a9484], edx
mov dword [0x4a9440], edx
mov eax, 1
mov dword [0x4a9468], edx
xor edx, edx
mov dword [esp + 0x218], eax
mov dword [esp + 0x21c], edx
fild qword [esp + 0x218]
mov dword [0x4a946c], eax
mov dword [0x4a9478], eax
mov dword [esp + 0x10], 0x4cb6a4
fstp qword [0x4cb5fc]
xor ecx, ecx
xor esi, esi
mov dword [0x4a948c], ecx
mov dword [0x4a9488], ecx
mov dword [esp + 0xc], 0x4cb694
mov edx, 0x4cb684
mov ebx, 0x4cb6d4
cmp esi, 1
sete al
and eax, 1
cmp esi, 3
mov dword [esp + 0x220], eax
setl cl
fild dword [esp + 0x220]
and ecx, 1
xor edi, edi
fstp dword [edx]
mov dword [esp + 0x224], ecx
fild dword [esp + 0x224]
mov eax, dword [esp + 0xc]
fstp dword [eax]
mov eax, dword [esp + 0x10]
xor ecx, ecx
inc edi
mov dword [eax], ecx
add eax, 0x10
cmp edi, 3
jl 0x41d245
xor edi, edi
mov eax, ebx
cmp esi, edi
sete cl
and ecx, 1
mov dword [esp + 0x228], ecx
fild dword [esp + 0x228]
fstp dword [eax]
inc edi
add eax, 0x10
cmp edi, 3
jl 0x41d256
inc esi
add ebx, 4
add dword [esp + 0x10], 4
add dword [esp + 0xc], 4
add edx, 4
cmp esi, 4
jl 0x41d209
mov dword [0x4a9520], 3
xor esi, esi
mov ebx, 0x4ab5ec
mov word [ebx], si
inc esi
add ebx, 2
cmp esi, 0x10000
jl 0x41d2a2
call fcn.00401580
mov word [0x4a909c], ax
call fcn.00401608
mov dword [esp], eax
push 0
push 0
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
mov edx, dword [0x4a9094]
push edx
push 0x20
push 1
lea ecx, [esp + 0x20]
push ecx
call fcn.004256d0
add esp, 0x10
mov eax, dword [0x4a9094]
push 2
push 0
push eax
call fcn.00425620
add esp, 0xc
mov edx, dword [0x4a9094]
push edx
call fcn.0042576c
pop ecx
mov ebp, eax
mov dword [esp + 4], eax
push 4
push str.MMMM
push 0x20
lea edx, [esp + 0x20]
push edx
call fcn.00401434
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x41d34b
push 4
push str.IIII
push 0x20
lea edx, [esp + 0x20]
push edx
call fcn.00401434
add esp, 0x10
mov ebx, eax
test eax, eax
je 0x41d380
lea edx, [esp + 0x14]
mov ecx, ebx
sub ecx, edx
push ecx
call fcn.0041b410
pop ecx
lea eax, [esp + 0x14]
sub ebx, eax
je 0x41dc51
push 0
call fcn.00419a78
pop ecx
test eax, eax
je 0x41dc51
call fcn.00419af0
jmp 0x41dc51
cmp word [0x4a909c], 0x4949
je 0x41d396
cmp word [0x4a909c], 0x4d4d
jne 0x41d3fa
push 8
push str.HEAPCCDR
lea edx, [esp + 0x22]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d3e0
mov ecx, dword [esp]
push 0
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
sub eax, edx
mov dword [0x4a9418], ecx
push eax
mov ecx, dword [esp + 8]
push ecx
call fcn.0041a938
add esp, 0xc
mov dword [0x4eb70c], 0x4027f0
jmp 0x41dc51
push 0
call fcn.00419a78
pop ecx
test eax, eax
je 0x41dc51
call fcn.00419af0
jmp 0x41dc51
push 4
push 0x45f4fb
lea eax, [esp + 0x1c]
push eax
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d48d
push 4
push 0x45f500
lea edx, [esp + 0x22]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d48d
push 0
push 4
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
call fcn.00401580
movzx eax, ax
add eax, 4
mov dword [0x4a9418], eax
push 0
mov edx, dword [0x4a9418]
push edx
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [0x4a9094]
push eax
call fcn.00448c18
pop ecx
cmp eax, 0xff
je 0x41d480
push 0xc
call fcn.00419a78
pop ecx
xor edx, edx
mov dword [0x4a941c], edx
jmp 0x41dc51
push 7
push str.ARECOYK
lea ecx, [esp + 0x35]
push ecx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d52d
mov esi, str.Contax
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x45f514
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0
push 0x21
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
push 1
call fcn.00416c74
pop ecx
push 0
push 0x3c
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
xor edi, edi
call fcn.00401608
mov dword [esp + 0x22c], eax
xor eax, eax
mov edx, edi
mov dword [esp + 0x230], eax
sar edx, 1
fild qword [esp + 0x22c]
xor edx, edi
inc edi
cmp edi, 4
fstp dword [edx*4 + 0x4cb684]
jl 0x41d4f9
jmp 0x41dc51
lea eax, [esp + 0x14]
mov edx, 0x45f51e
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41d57b
test cl, cl
je 0x41d552
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41d57b
add eax, 2
add edx, 2
test cl, cl
jne 0x41d536
jne 0x41d57b
mov esi, str.Logitech
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x45f52b
mov edi, 0x4a9335
mov eax, edi
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x41dc51
lea eax, [esp + 0x14]
mov edx, str.qktk
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41d5d5
test cl, cl
je 0x41d5a0
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41d5d5
add eax, 2
add edx, 2
test cl, cl
jne 0x41d584
jne 0x41d5d5
mov esi, 0x45f540
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, str.QuickTake_100
mov edi, 0x4a9335
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [0x4eb70c], 0x407b50
jmp 0x41dc51
lea eax, [esp + 0x14]
mov edx, str.qktn
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41d62f
test cl, cl
je 0x41d5fa
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41d62f
add eax, 2
add edx, 2
test cl, cl
jne 0x41d5de
jne 0x41d62f
mov esi, 0x45f559
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, str.QuickTake_150
mov edi, 0x4a9335
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [0x4eb70c], 0x407f90
jmp 0x41dc51
push 8
push str.FUJIFILM
lea edx, [esp + 0x1c]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d75d
push 0
push 0x54
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov dword [0x4a941c], eax
call fcn.00401608
mov dword [0x4a9438], eax
push 0
push 0x5c
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
call fcn.00401608
push eax
call fcn.0041b7f8
pop ecx
mov edx, dword [0x4a941c]
cmp edx, 0x78
jle 0x41d6e3
push 0
push 0x78
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov esi, eax
test eax, eax
jne 0x41d6bd
xor edx, edx
jmp 0x41d6c2
mov edx, 1
add dword [0x4a9478], edx
mov ecx, dword [0x4a9478]
cmp ecx, 2
jne 0x41d6e3
mov eax, dword [0x454104]
test eax, eax
je 0x41d6e3
push esi
call fcn.0041b7f8
pop ecx
push 0
mov edx, dword [0x454104]
test edx, edx
seta cl
and ecx, 1
mov eax, ecx
shl eax, 3
sub eax, ecx
shl eax, 2
add eax, 0x64
push eax
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov dword [0x4a9418], eax
push eax
call fcn.00419a78
pop ecx
mov edx, dword [0x4a941c]
add edx, 0xc
push edx
call fcn.00419a78
pop ecx
call fcn.00419af0
mov ecx, dword [0x4eb70c]
test ecx, ecx
jne 0x41dc51
mov dword [0x4eb70c], fcn.00406c74
mov dword [0x4a9458], 0xe
jmp 0x41dc51
push 4
push str.RIFF
lea eax, [esp + 0x1c]
push eax
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d792
push 0
push 0
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
call fcn.0041bb24
jmp 0x41dc51
push 8
push str.ftypcrx
lea ecx, [esp + 0x20]
push ecx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d7c8
push 0
push 0
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
push ebp
call fcn.0041bd50
pop ecx
jmp 0x41dc51
push 9
push str.ftypqt
lea edx, [esp + 0x20]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d806
push 0
push 0
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
push ebp
call fcn.0041c008
pop ecx
xor eax, eax
mov dword [0x4a9478], eax
jmp 0x41dc51
push 6
push 0x45f58e
lea edx, [esp + 0x1c]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d8c3
push 0
push 6
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [0x4a9094]
push eax
push 8
push 1
push 0x4a92f5
call fcn.004256d0
add esp, 0x10
mov edx, dword [0x4a9094]
push edx
push 8
push 1
push 0x4a9335
call fcn.004256d0
add esp, 0x10
mov ecx, dword [0x4a9094]
push ecx
push 0x10
push 1
push 0x4a9375
call fcn.004256d0
add esp, 0x10
call fcn.00401580
movzx eax, ax
mov dword [0x4a9418], eax
call fcn.00401580
call fcn.00401580
movzx edx, ax
mov dword [0x4a952c], edx
call fcn.00401580
movzx ecx, ax
mov dword [0x4a9528], ecx
mov dword [0x4eb70c], 0x407184
mov dword [0x4a951c], 0x61616161
jmp 0x41dc51
push 8
push str.NOKIARAW
lea eax, [esp + 0x1c]
push eax
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41d9c2
mov esi, str.NOKIA
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov word [0x4a909c], 0x4949
push 0
push 0x12c
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov dword [0x4a9418], eax
call fcn.00401608
mov esi, eax
call fcn.00401580
movzx eax, ax
mov dword [0x4a9534], eax
call fcn.00401580
movzx edx, ax
mov dword [0x4a9530], edx
mov eax, esi
shl eax, 3
mov edx, dword [0x4a9534]
imul edx, dword [0x4a9530]
mov ecx, edx
cdq
idiv ecx
mov dword [0x4a9458], eax
sub eax, 8
je 0x41d961
sub eax, 2
je 0x41d96d
jmp 0x41d977
mov dword [0x4eb70c], 0x40896c
jmp 0x41d977
mov dword [0x4eb70c], 0x407184
mov eax, dword [0x4a9534]
imul dword [0x4a9458]
shr eax, 3
push eax
mov eax, esi
pop edx
mov ecx, edx
xor edx, edx
div ecx
mov edx, dword [0x4a9530]
sub eax, edx
mov dword [0x4a9538], eax
mov ecx, dword [0x4a9530]
add eax, ecx
mov dword [0x4a9528], eax
mov dword [0x4cb610], 1
mov dword [0x4a951c], 0x61616161
jmp 0x41dc51
push 4
push 0x45f5a4
lea eax, [esp + 0x1c]
push eax
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41da77
mov word [0x4a909c], 0x4949
push 0
push 0x14
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov dword [0x4a9534], eax
call fcn.00401608
mov dword [0x4a9530], eax
mov edi, 0x4a92f5
mov eax, edi
mov esi, str.ARRI
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0
mov edx, dword [0x4a9094]
push 0x29c
push edx
call fcn.00425620
add esp, 0xc
mov ecx, dword [0x4a9094]
push ecx
push 0x40
push 1
push 0x4a9335
call fcn.004256d0
add esp, 0x10
mov dword [0x4a9418], 0x1000
mov dword [0x4eb70c], 0x406f20
mov dword [0x4a9510], 0x58
mov dword [0x4a951c], 0x61616161
jmp 0x41dc51
push 4
push str.XPDS
lea eax, [esp + 0x1c]
push eax
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41db42
mov word [0x4a909c], 0x4949
push 0
push 0x800
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
mov ecx, dword [0x4a9094]
push ecx
push 0x29
push 1
push 0x4a92f5
call fcn.004256d0
add esp, 0x10
call fcn.00401580
movzx eax, ax
mov dword [0x4a9528], eax
call fcn.00401580
movzx edx, ax
mov dword [0x4a952c], edx
push 1
push 0x38
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [0x4a9094]
push eax
push 0x1e
push 1
push 0x4a9335
call fcn.004256d0
add esp, 0x10
mov dword [0x4a9418], 0x10000
mov dword [0x4eb70c], 0x40741c
push 0x3ff
push 1
push 0x40288000
push 0
push 0
push 0
call fcn.0040ed90
add esp, 0x18
jmp 0x41dc51
push 4
push str.RED1
lea edx, [esp + 0x20]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41dbb5
mov esi, 0x45f5b8
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
mov esi, 0x45f5bc
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
call fcn.0041c47c
mov dword [0x4eb70c], 0x40a930
push 0xfff
push 1
push 0x4029d70a
push 0x3d70a3d7
push 0x3fdaaaaa
push 0xaaaaaaab
call fcn.0040ed90
add esp, 0x18
mov dword [0x4a951c], 0x49494949
jmp 0x41dc51
push 9
push str.DSC_Image
lea edx, [esp + 0x1c]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41dbd4
call fcn.0041afa4
jmp 0x41dc51
push 4
push str.PWAD
lea ecx, [esp + 0x1c]
push ecx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41dbf3
call fcn.0041b244
jmp 0x41dc51
push 4
push 0x45f5cf
lea eax, [esp + 0x1c]
push eax
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41dc15
push 0
call fcn.0041a430
pop ecx
jmp 0x41dc51
push 4
push str.FOVb
lea edx, [esp + 0x1c]
push edx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41dc34
call fcn.0041c62c
jmp 0x41dc51
push 2
push 0x45f5d9
lea ecx, [esp + 0x1c]
push ecx
call fcn.00446958
add esp, 0xc
test eax, eax
jne 0x41dc51
call fcn.0041c1e4
mov al, byte [0x4a92f5]
test al, al
jne 0x41deec
xor edx, edx
mov esi, edx
mov dword [esp + 8], edx
mov eax, esi
add eax, eax
cmp esi, 0x66
lea eax, [eax + eax*2]
lea ebx, [eax*8 + 0x45afb0]
jge 0x41deec
mov eax, dword [ebx]
cmp ebp, eax
jne 0x41dedf
mov edx, esi
xor eax, eax
shl edx, 4
push esi
mov esi, 0x4a92f5
lea edx, [edx + edx*2]
add edx, 0x45afc0
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, esi
push esi
shl eax, 4
mov esi, 0x4a9335
lea eax, [eax + eax*2]
add eax, str.F_080C
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dl, byte [ebx + 0xf]
xor eax, eax
mov al, dl
pop esi
mov ecx, eax
and eax, 2
sar ecx, 2
mov dword [0x4a9514], ecx
mov dword [0x4a9470], eax
test dl, 1
je 0x41dd13
call fcn.0041a618
movzx eax, word [ebx + 0x2e]
mov dword [0x4a9418], eax
xor eax, eax
movzx ecx, word [ebx + 4]
mov dword [0x4a952c], ecx
xor edx, edx
movzx edi, word [ebx + 6]
mov dword [0x4a9528], edi
mov al, byte [ebx + 8]
mov dword [0x4a953c], eax
mov eax, ecx
mov dl, byte [ebx + 9]
mov dword [0x4a9538], edx
mov edx, dword [0x4a953c]
sub eax, edx
xor edx, edx
mov dl, byte [ebx + 0xa]
sub eax, edx
mov dword [0x4a9534], eax
mov eax, edi
mov edx, dword [0x4a9538]
sub eax, edx
xor edx, edx
mov dl, byte [ebx + 0xb]
sub eax, edx
mov dword [0x4a9530], eax
xor eax, eax
mov al, byte [ebx + 0xd]
mov edx, eax
shl eax, 8
add eax, edx
shl eax, 8
add eax, edx
shl eax, 8
add eax, edx
mov dword [0x4a951c], eax
mov eax, dword [0x4a951c]
mov edx, dword [0x4a951c]
shr eax, 1
and eax, edx
mov edx, 4
and eax, 0x5555
cmp eax, 1
sbb eax, eax
imul ecx, edi
neg eax
sub edx, eax
xor eax, eax
mov dword [0x4a9520], edx
mov al, byte [ebx + 0xc]
mov dword [0x4a9510], eax
mov eax, ebp
mov edx, dword [0x4a9418]
sub eax, edx
shl eax, 3
cdq
idiv ecx
mov dword [0x4a9458], eax
add eax, 0xfffffffa
cmp eax, 0xa
ja case.0x41dde8.6
mov al, byte [eax + 0x41ddef]
jmp dword [eax*4 + 0x41ddfa]
mov dword [0x4eb70c], 0x4079b4
jmp case.0x41dde8.6
mov dword [0x4eb70c], 0x40896c
jmp case.0x41dde8.6
or dword [0x4a9510], 0x200
mov eax, 0x4a92f5
mov edx, 0x45f5dc
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41de68
test cl, cl
je 0x41de5c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41de68
add eax, 2
add edx, 2
test cl, cl
jne 0x41de40
jne 0x41de68
or dword [0x4a9510], 0x100
mov dword [0x4eb70c], 0x406f20
jmp case.0x41dde8.6
mov eax, dword [0x4a9510]
and eax, 1
mov edx, eax
shl edx, 8
add edx, eax
shl edx, 2
or dx, 0x4949
mov word [0x4a909c], dx
mov ecx, dword [0x4a9510]
shr ecx, 4
sub dword [0x4a9458], ecx
mov eax, dword [0x4a9510]
shr eax, 1
and eax, 7
mov dword [0x4a9510], eax
sub dword [0x4a9458], eax
mov dword [0x4eb70c], 0x406c74
mov ecx, dword [0x4a9458]
mov edx, 1
shl edx, cl
mov cl, byte [ebx + 0xe]
mov eax, 1
shl eax, cl
sub edx, eax
mov dword [0x4a9464], edx
inc esi
add ebx, 0x30
cmp esi, 0x66
jl 0x41dc7d
mov edx, dword [esp + 8]
test edx, edx
je 0x41def6
xor ebp, ebp
mov al, byte [0x4a92f5]
test al, al
jne 0x41df0e
mov edx, dword [esp + 4]
push edx
push 0
call fcn.0041c100
add esp, 8
mov cl, byte [0x4a92f5]
test cl, cl
jne 0x41e013
push 0
call fcn.0041b9e4
pop ecx
push 2
push 0x45f5e2
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x41df58
push 5
push str.RP_OV
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41e00c
push 2
push 0xff9e4800
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
test eax, eax
jne 0x41e00c
mov edx, dword [0x4a9094]
push edx
push 0x20
push 1
lea ecx, [esp + 0x20]
push ecx
call fcn.004256d0
add esp, 0x10
test eax, eax
je 0x41e00c
lea eax, [esp + 0x14]
mov edx, str.BRCMn
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e00c
test cl, cl
je 0x41dfb6
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e00c
add eax, 2
add edx, 2
test cl, cl
jne 0x41df9a
jne 0x41e00c
mov esi, str.OmniVision
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [0x4a9094]
push edx
call fcn.0042576c
pop ecx
add eax, 0x7fe0
mov dword [0x4a9418], eax
mov ecx, dword [0x4a952c]
mov dword [0x4a9534], ecx
mov dword [0x4a952c], 0xa33
mov dword [0x4eb70c], 0x407184
mov dword [0x4a951c], 0x16161616
jmp 0x41e013
xor eax, eax
mov dword [0x4a9478], eax
xor esi, esi
mov ebx, 0x45c2d0
mov eax, dword [ebx]
push eax
push 0x4a92f5
call fcn.00401470
add esp, 8
test eax, eax
je 0x41e056
mov edx, dword [ebx]
xor eax, eax
push esi
mov edi, edx
or ecx, 0xffffffff
mov esi, 0x4a92f5
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
inc esi
add ebx, 4
cmp esi, 0x16
jl 0x41e01a
mov eax, 0x4a92f5
mov edx, 0x45f5fc
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e085
test cl, cl
je 0x41e0af
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e085
add eax, 2
add edx, 2
test cl, cl
jne 0x41e069
je 0x41e0af
mov eax, 0x4a92f5
mov edx, 0x45f602
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e0e2
test cl, cl
je 0x41e0ad
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e0e2
add eax, 2
add edx, 2
test cl, cl
jne 0x41e091
jne 0x41e0e2
push str._DIGITAL_CAMERA
push 0x4a9335
call fcn.00401470
add esp, 8
mov ebx, eax
test eax, eax
jne 0x41e0df
push str.FILE_VERSION
push 0x4a9335
call fcn.00446b30
add esp, 8
mov ebx, eax
test eax, eax
je 0x41e0e2
mov byte [ebx], 0
push 6
push str.PENTAX
push 0x4a9335
call fcn.00446a90
add esp, 0xc
test eax, eax
jne 0x41e10a
mov esi, str.Pentax
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
push 0x4a92f5
call fcn.00446864
pop ecx
mov ebx, eax
add ebx, 0x4a92f5
jmp 0x41e122
mov byte [ebx], 0
dec ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x41e11f
push 0x4a9335
call fcn.00446864
pop ecx
mov ebx, eax
add ebx, 0x4a9335
jmp 0x41e141
mov byte [ebx], 0
dec ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x41e13e
push 0x4a92f5
call fcn.00446864
pop ecx
mov esi, eax
push esi
push 0x4a92f5
push 0x4a9335
call fcn.00446a90
add esp, 0xc
test eax, eax
jne 0x41e196
mov eax, esi
inc esi
mov dl, byte [eax + 0x4a9335]
cmp dl, 0x20
jne 0x41e196
mov ecx, 0x40
sub ecx, esi
add esi, 0x4a9335
push ecx
push esi
push 0x4a9335
call fcn.004466e4
add esp, 0xc
push 8
push str.FinePix
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41e1d5
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4a933d
mov esi, 0x4a9335
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0xf
push str.Digital_Camera
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41e214
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4a9344
mov esi, 0x4a9335
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov byte [0x4a93b4], al
mov byte [0x4a9374], al
mov byte [0x4a9334], al
mov byte [0x4a93f4], al
mov byte [0x4a92f4], al
mov edx, dword [0x4a9478]
test edx, edx
je 0x421bb4
mov ecx, dword [0x4a9530]
test ecx, ecx
jne 0x41e251
mov eax, dword [0x4a9528]
mov dword [0x4a9530], eax
mov edx, dword [0x4a9534]
test edx, edx
jne 0x41e267
mov ecx, dword [0x4a952c]
mov dword [0x4a9534], ecx
mov eax, dword [0x4a9530]
cmp eax, 0xa40
jne 0x41e295
mov edx, dword [0x4a9534]
cmp edx, 0xf60
jne 0x41e295
mov dword [0x4a9530], 0xa38
mov dword [0x4a9534], 0xf38
mov ecx, dword [0x4a9530]
cmp ecx, 0xc40
jne 0x41e2cd
mov eax, dword [0x4a9534]
cmp eax, 0x1300
jne 0x41e2cd
mov dword [0x4a9530], 0xc34
mov dword [0x4a9534], 0x1250
mov dword [0x4a951c], 0x16161616
mov edx, dword [0x4a9528]
cmp edx, 0xb34
jne 0x41e33f
mov eax, 0x4a9335
mov edx, 0x45f64c
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e301
test cl, cl
je 0x41e32b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e301
add eax, 2
add edx, 2
test cl, cl
jne 0x41e2e5
je 0x41e32b
mov eax, 0x4a9335
mov edx, 0x45f650
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e33f
test cl, cl
je 0x41e329
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e33f
add eax, 2
add edx, 2
test cl, cl
jne 0x41e30d
jne 0x41e33f
mov dword [0x4a9534], 0x10d5
mov dword [0x4a951c], 0x16161616
mov eax, dword [0x4a9528]
cmp eax, 0xc40
jne 0x41e39b
mov eax, 0x4a9335
mov edx, 0x45f654
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e39b
test cl, cl
je 0x41e371
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e39b
add eax, 2
add edx, 2
test cl, cl
jne 0x41e355
jne 0x41e39b
mov dword [0x4a9530], 0xc32
mov dword [0x4a9534], 0x124c
mov dword [0x4a951c], 0x16161616
mov dword [0x4a9538], 2
mov eax, dword [0x4a9528]
cmp eax, 0xcd4
jne 0x41e3dd
push 3
push 0x45f658
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41e3dd
mov dword [0x4a953c], 0xa
mov dword [0x4a9534], 0x1356
mov dword [0x4a951c], 0x16161616
mov edx, dword [0x4a9528]
cmp edx, 0xce4
jne 0x41e429
push 4
push str.K_50
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41e429
mov dword [0x4a9530], 0xcd8
xor ecx, ecx
mov dword [0x4a9534], 0x1358
mov dword [0x4a953c], ecx
mov dword [0x4a9538], 0xc
mov eax, dword [0x4a9528]
cmp eax, 0xe50
jne 0x41e45f
push 3
push 0x45f661
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41e45f
mov dword [0x4a9534], 0x1574
xor edx, edx
mov dword [0x4a953c], edx
mov ecx, dword [0x4a9528]
cmp ecx, 0xfc0
jne 0x41e4b3
mov eax, 0x4a9335
mov edx, 0x45f665
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e4b3
test cl, cl
je 0x41e493
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e4b3
add eax, 2
add edx, 2
test cl, cl
jne 0x41e477
jne 0x41e4b3
mov dword [0x4a9530], 0xfc0
mov dword [0x4a9534], 0x1798
mov dword [0x4a953c], 4
mov eax, dword [0x4a9528]
cmp eax, 0xfdc
jne 0x41e50f
mov eax, 0x4a9335
mov edx, 0x45f669
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e50f
test cl, cl
je 0x41e4e5
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e50f
add eax, 2
add edx, 2
test cl, cl
jne 0x41e4c9
jne 0x41e50f
mov dword [0x4a9530], 0xfc0
mov dword [0x4a9534], 0x1790
mov dword [0x4a953c], 0x34
mov dword [0x4a9538], 0x1c
mov eax, dword [0x4a9528]
cmp eax, 0x1356
jne 0x41e56b
mov eax, 0x4a9335
mov edx, 0x45f66c
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e56b
test cl, cl
je 0x41e541
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e56b
add eax, 2
add edx, 2
test cl, cl
jne 0x41e525
jne 0x41e56b
mov dword [0x4a9530], 0x1344
mov dword [0x4a9534], 0x1cd4
mov dword [0x4a953c], 4
mov dword [0x4a9538], 0x12
mov eax, dword [0x4a9528]
cmp eax, 0x15b0
jne 0x41e5d1
mov eax, 0x4a9335
mov edx, str.645D
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e5d1
test cl, cl
je 0x41e59d
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e5d1
add eax, 2
add edx, 2
test cl, cl
jne 0x41e581
jne 0x41e5d1
mov dword [0x4a9530], 0x157e
mov dword [0x4a9534], 0x1ca0
mov dword [0x4a953c], 0x30
mov dword [0x4a9538], 0x1d
mov dword [0x4a951c], 0x61616161
mov eax, dword [0x4a9530]
cmp eax, 0xbc6
jne 0x41e5f5
mov edx, dword [0x4a9534]
cmp edx, 0x1000
jne 0x41e5f5
mov dword [0x4a9534], 0xfae
mov ecx, dword [0x4a947c]
test ecx, ecx
je 0x41e691
mov eax, dword [0x4a951c]
cmp eax, 0xffffffff
jne 0x41e615
xor edx, edx
mov dword [0x4a951c], edx
mov ecx, dword [0x4a951c]
test ecx, ecx
je 0x41e632
mov eax, dword [0x4a9454]
imul eax, dword [0x4a9478]
mov dword [0x4a9478], eax
jmp 0x41e63e
mov edx, dword [0x4a9454]
mov dword [0x4a9520], edx
mov ecx, dword [0x4a945c]
sub ecx, 2
jb 0x41e658
sub ecx, 5
je 0x41e667
sub ecx, 0x8845
je 0x41e676
jmp 0x41e685
mov dword [0x4eb70c], 0x403e78
jmp 0x4218c7
mov dword [0x4eb70c], 0x403c10
jmp 0x4218c7
mov dword [0x4eb70c], 0x4088c8
jmp 0x4218c7
xor eax, eax
mov dword [0x4eb70c], eax
jmp 0x4218c7
mov eax, 0x4a92f5
mov edx, 0x45f675
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e7d9
test cl, cl
je 0x41e6bf
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e7d9
add eax, 2
add edx, 2
test cl, cl
jne 0x41e69b
jne 0x41e7d9
test ebp, ebp
jne 0x41e7d9
mov eax, dword [0x4a9458]
cmp eax, 0xf
je 0x41e7d9
mov edx, dword [0x4eb70c]
test edx, edx
jne 0x41e6ef
mov dword [0x4eb70c], 0x403138
xor esi, esi
mov ebx, 0x459f10
movzx eax, word [ebx]
mov edx, dword [0x4a952c]
cmp eax, edx
jne 0x41e7a4
movzx ecx, word [ebx + 2]
mov eax, dword [0x4a9528]
cmp ecx, eax
jne 0x41e7a4
movzx edx, word [ebx + 4]
mov dword [0x4a953c], edx
mov eax, dword [0x4a952c]
sub eax, edx
mov dword [0x4a9534], eax
movzx ecx, word [ebx + 6]
mov dword [0x4a9538], ecx
mov eax, dword [0x4a9528]
sub eax, ecx
mov dword [0x4a9530], eax
movzx edx, word [ebx + 8]
sub dword [0x4a9534], edx
movzx eax, word [ebx + 0xa]
sub dword [0x4a9530], eax
movzx edx, word [ebx + 0xc]
mov dword [0x4cb608], edx
movzx ecx, word [ebx + 0xe]
neg ecx
mov dword [0x4cb610], ecx
movzx eax, word [ebx + 0x10]
mov dword [0x4cb618], eax
movzx edx, word [ebx + 0x12]
neg edx
mov dword [0x4cb620], edx
cmp word [ebx + 0x14], 0
je 0x41e7a4
movzx ecx, word [ebx + 0x14]
mov eax, ecx
shl eax, 8
add eax, ecx
shl eax, 8
add eax, ecx
shl eax, 8
add eax, ecx
mov dword [0x4a951c], eax
inc esi
add ebx, 0x16
cmp esi, 0x2e
jl 0x41e6f6
mov edx, dword [0x4a9434]
or edx, 0x20000
cmp edx, 0x2720000
jne 0x41e7d9
mov dword [0x4a953c], 8
mov dword [0x4a9538], 0x10
xor esi, esi
mov ebx, 0x45a304
movzx eax, word [ebx]
add eax, 0x80000000
mov edx, dword [0x4a9434]
cmp eax, edx
jne 0x41e85b
lea ecx, [esi + esi*4]
lea ecx, [esi + ecx*2]
add ecx, ecx
add ecx, str.EOS_10D
push ecx
push 0x45f67b
call fcn.0041cbb4
add esp, 8
mov al, byte [0x4a9339]
cmp al, 0x4b
jne 0x41e85b
push 0x4a9335
call fcn.00446864
pop ecx
cmp eax, 8
jne 0x41e85b
lea edx, [esi + esi*4]
xor eax, eax
push esi
lea edx, [esi + edx*2]
add edx, edx
mov esi, 0x4a9335
add edx, str.EOS_10D
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
inc esi
add ebx, 0x16
cmp esi, 0x33
jl 0x41e7e0
xor esi, esi
mov ebx, 0x45a766
movzx eax, word [ebx]
mov edx, dword [0x4a9434]
cmp eax, edx
jne 0x41e8b0
lea ecx, [esi + esi*4]
xor eax, eax
push esi
lea ecx, [esi + ecx*2]
add ecx, ecx
mov esi, 0x4a9335
add ecx, str.DSC_R1
mov edi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
inc esi
add ebx, 0x16
cmp esi, 0x43
jl 0x41e86f
xor esi, esi
mov ebx, str._DC_FZ80
mov al, byte [ebx]
cmp al, 0x40
jne 0x41e8dc
mov edx, esi
shl edx, 2
lea edx, [edx + edx*2]
add edx, 0x45ad29
mov dword [0x4a9090], edx
jmp 0x41e920
mov eax, 0x4a9335
mov edx, esi
shl edx, 2
lea edx, [edx + edx*2]
add edx, str._DC_FZ80
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e920
test cl, cl
je 0x41e90b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e920
add eax, 2
add edx, 2
test cl, cl
jne 0x41e8ef
jne 0x41e920
mov eax, dword [0x4a9090]
push eax
push 0x45f681
call fcn.0041cbb4
add esp, 8
inc esi
add ebx, 0xc
cmp esi, 0x36
jl 0x41e8c0
mov eax, 0x4a92f5
mov edx, str.Nikon
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e988
test cl, cl
je 0x41e94f
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e988
add eax, 2
add edx, 2
test cl, cl
jne 0x41e933
jne 0x41e988
mov eax, dword [0x4eb70c]
test eax, eax
jne 0x41e964
mov dword [0x4eb70c], 0x406f20
mov dl, byte [0x4a9335]
cmp dl, 0x45
jne 0x41e988
mov ecx, dword [0x4a9418]
cmp ecx, 1
sbb eax, eax
neg eax
shl eax, 2
or eax, 2
or dword [0x4a9510], eax
mov eax, 0x4a9335
mov edx, str.KAI_0340
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41e9f7
test cl, cl
je 0x41e9ae
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41e9f7
add eax, 2
add edx, 2
test cl, cl
jne 0x41e992
jne 0x41e9f7
push 0x1400
push 0xf00
push 0x10
push 0x10
call fcn.0041ce20
add esp, 0x10
fcomp dword [0x421be8]
fnstsw ax
sahf
jae 0x41e9f7
mov dword [0x4a9530], 0x1e0
xor edx, edx
mov dword [0x4a951c], edx
mov dword [0x4a9538], edx
mov esi, 0x45f69a
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x4a92f5
mov edx, 0x45f69f
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ea41
test cl, cl
je 0x41ea1d
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ea41
add eax, 2
add edx, 2
test cl, cl
jne 0x41ea01
jne 0x41ea41
mov eax, dword [0x4a952c]
cmp eax, 0xf30
jle 0x41ea41
mov ecx, dword [0x4a9458]
sub ecx, 0xc
mov edx, 0x80
shl edx, cl
mov dword [0x4a9460], edx
mov eax, dword [0x4a9480]
test eax, eax
je 0x41eaa5
mov edx, dword [0x4a9530]
add edx, edx
mov ecx, dword [0x4a9534]
cmp edx, ecx
jge 0x41ea6e
xor eax, eax
mov dword [0x4cb5fc], eax
mov dword [0x4cb600], 0x3fe00000
mov edx, dword [0x4a9534]
mov ecx, dword [0x4a9530]
cmp edx, ecx
jge 0x41ea90
xor eax, eax
mov dword [0x4cb5fc], eax
mov dword [0x4cb600], 0x40000000
xor edx, edx
push 0
mov dword [0x4a951c], edx
call fcn.0041cca0
pop ecx
jmp 0x421839
mov eax, 0x4a92f5
mov edx, str.Canon
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ebd3
test cl, cl
je 0x41ead3
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ebd3
add eax, 2
add edx, 2
test cl, cl
jne 0x41eaaf
jne 0x41ebd3
mov eax, dword [0x4a9458]
cmp eax, 0xf
jne 0x41ebd3
mov edx, dword [0x4a9534]
sub edx, 0xd10
je 0x41eaff
sub edx, 0x210
je 0x41eb06
jmp 0x41eb0d
sub dword [0x4a9534], 0x42
sub dword [0x4a9534], 6
mov ecx, dword [0x4a9534]
mov eax, dword [0x4a9530]
cmp ecx, eax
jge 0x41eb71
mov edx, dword [0x4a9534]
add dword [0x4a9530], edx
mov ecx, dword [0x4a9530]
mov eax, dword [0x4a9534]
sub ecx, eax
mov dword [0x4a9534], ecx
mov edx, dword [0x4a9534]
sub dword [0x4a9530], edx
mov ecx, dword [0x4a952c]
add dword [0x4a9528], ecx
mov eax, dword [0x4a9528]
mov edx, dword [0x4a952c]
sub eax, edx
mov dword [0x4a952c], eax
mov ecx, dword [0x4a952c]
sub dword [0x4a9528], ecx
mov eax, dword [0x4a9534]
cmp eax, 0x1c20
jne 0x41ebab
mov edx, dword [0x4a9530]
cmp edx, 0xf30
jne 0x41ebab
mov ecx, 0x1950
mov eax, 0x10e0
mov dword [0x4a9534], ecx
mov dword [0x4a952c], ecx
mov dword [0x4a9530], eax
mov dword [0x4a9528], eax
xor edx, edx
mov dword [0x4a951c], edx
mov ecx, 3
mov dword [0x4a9520], ecx
mov dword [0x4a9454], ecx
mov dword [0x4eb70c], 0x4032cc
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.PowerShot_600
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ec3c
test cl, cl
je 0x41ebf9
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ec3c
add eax, 2
add edx, 2
test cl, cl
jne 0x41ebdd
jne 0x41ec3c
mov dword [0x4a9530], 0x265
mov dword [0x4a9534], 0x356
mov dword [0x4a952c], 0x380
mov dword [0x4a9520], 4
mov dword [0x4a951c], 0xe1e4e1e4
mov dword [0x4eb70c], 0x402244
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.PowerShot_A5
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ec62
test cl, cl
je 0x41ec8c
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ec62
add eax, 2
add edx, 2
test cl, cl
jne 0x41ec46
je 0x41ec8c
mov eax, 0x4a9335
mov edx, str.PowerShot_A5_Zoom
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41eccd
test cl, cl
je 0x41ec8a
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41eccd
add eax, 2
add edx, 2
test cl, cl
jne 0x41ec6e
jne 0x41eccd
mov dword [0x4a9530], 0x305
mov dword [0x4a9534], 0x3c0
mov dword [0x4a952c], 0x3e0
mov dword [0x4cb5fc], 0x89427379
mov dword [0x4cb600], 0x3ff16e06
mov dword [0x4a951c], 0x1e4e1e4e
jmp 0x41ed65
mov eax, 0x4a9335
mov edx, str.PowerShot_A50
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ed1f
test cl, cl
je 0x41ecf3
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ed1f
add eax, 2
add edx, 2
test cl, cl
jne 0x41ecd7
jne 0x41ed1f
mov dword [0x4a9530], 0x3c8
mov dword [0x4a9534], 0x50a
mov dword [0x4a952c], 0x528
mov dword [0x4a951c], 0x1b4e4b1e
jmp 0x41ed65
mov eax, 0x4a9335
mov edx, str.PowerShot_Pro70
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ed45
test cl, cl
je 0x41ed47
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ed45
add eax, 2
add edx, 2
test cl, cl
jne 0x41ed29
jne 0x41ed92
mov dword [0x4a9530], 0x400
mov dword [0x4a9534], 0x610
mov dword [0x4a951c], 0x1e4b4e1b
mov dword [0x4a9520], 4
mov dword [0x4a9458], 0xa
mov dword [0x4eb70c], 0x406f20
mov dword [0x4a9510], 0x108
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.PowerShot_Pro90_IS
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41edb8
test cl, cl
je 0x41ede2
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41edb8
add eax, 2
add edx, 2
test cl, cl
jne 0x41ed9c
je 0x41ede2
mov eax, 0x4a9335
mov edx, str.PowerShot_G1
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41edfb
test cl, cl
je 0x41ede0
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41edfb
add eax, 2
add edx, 2
test cl, cl
jne 0x41edc4
jne 0x41edfb
mov dword [0x4a9520], 4
mov dword [0x4a951c], 0xb4b4b4b4
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.PowerShot_A610
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ee44
test cl, cl
je 0x41ee21
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ee44
add eax, 2
add edx, 2
test cl, cl
jne 0x41ee05
jne 0x41ee44
call fcn.004024c4
test eax, eax
je 0x421839
mov esi, str.S2_IS
mov edi, 0x4a933f
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.PowerShot_SX220_HS
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ee7b
test cl, cl
je 0x41ee6a
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ee7b
add eax, 2
add edx, 2
test cl, cl
jne 0x41ee4e
jne 0x41ee7b
mov dword [0x4cb620], 0xfffffffc
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.EOS_D2000C
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41eebe
test cl, cl
je 0x41eea1
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41eebe
add eax, 2
add edx, 2
test cl, cl
jne 0x41ee85
jne 0x41eebe
mov dword [0x4a951c], 0x61616161
movzx eax, word [0x4ab77c]
mov dword [0x4a9460], eax
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.EOS_80D
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41eef9
test cl, cl
je 0x41eee4
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41eef9
add eax, 2
add edx, 2
test cl, cl
jne 0x41eec8
jne 0x41eef9
sub dword [0x4a9538], 2
add dword [0x4a9530], 2
jmp 0x421839
mov eax, 0x4a9335
mov edx, 0x45f750
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ef4a
test cl, cl
je 0x41ef1f
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ef4a
add eax, 2
add edx, 2
test cl, cl
jne 0x41ef03
jne 0x41ef4a
fld dword [0x4cb684]
fmul qword [0x421bec]
fstp dword [0x4cb684]
fld dword [0x4cb68c]
fmul qword [0x421bf4]
fstp dword [0x4cb68c]
jmp 0x421839
mov eax, 0x4a9335
mov edx, 0x45f753
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ef90
test cl, cl
je 0x41ef70
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ef90
add eax, 2
add edx, 2
test cl, cl
jne 0x41ef54
jne 0x41ef90
sub dword [0x4a9534], 4
xor eax, eax
mov dword [0x4cb5fc], eax
mov dword [0x4cb600], 0x3fe00000
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D40X
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41efba
test cl, cl
je 0x41f034
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41efba
add eax, 2
add edx, 2
test cl, cl
jne 0x41ef9a
je 0x41f034
mov eax, 0x4a9335
mov edx, 0x45f75c
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41efe2
test cl, cl
je 0x41f034
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41efe2
add eax, 2
add edx, 2
test cl, cl
jne 0x41efc6
je 0x41f034
mov eax, 0x4a9335
mov edx, 0x45f760
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f00a
test cl, cl
je 0x41f034
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f00a
add eax, 2
add edx, 2
test cl, cl
jne 0x41efee
je 0x41f034
mov eax, 0x4a9335
mov edx, str.D3000
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f047
test cl, cl
je 0x41f032
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f047
add eax, 2
add edx, 2
test cl, cl
jne 0x41f016
jne 0x41f047
sub dword [0x4a9530], 3
sub dword [0x4a9534], 4
jmp 0x421839
mov eax, 0x4a9335
mov edx, 0x45f76a
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f06d
test cl, cl
je 0x41f0bf
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f06d
add eax, 2
add edx, 2
test cl, cl
jne 0x41f051
je 0x41f0bf
mov eax, 0x4a9335
mov edx, 0x45f76d
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f095
test cl, cl
je 0x41f0bf
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f095
add eax, 2
add edx, 2
test cl, cl
jne 0x41f079
je 0x41f0bf
mov eax, 0x4a9335
mov edx, str.D700
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f0d5
test cl, cl
je 0x41f0bd
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f0d5
add eax, 2
add edx, 2
test cl, cl
jne 0x41f0a1
jne 0x41f0d5
sub dword [0x4a9534], 4
mov dword [0x4a953c], 2
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D3100
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f113
test cl, cl
je 0x41f0fb
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f113
add eax, 2
add edx, 2
test cl, cl
jne 0x41f0df
jne 0x41f113
sub dword [0x4a9534], 0x1c
mov dword [0x4a953c], 6
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D5000
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f139
test cl, cl
je 0x41f163
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f139
add eax, 2
add edx, 2
test cl, cl
jne 0x41f11d
je 0x41f163
mov eax, 0x4a9335
mov edx, 0x45f782
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f16f
test cl, cl
je 0x41f161
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f16f
add eax, 2
add edx, 2
test cl, cl
jne 0x41f145
jne 0x41f16f
sub dword [0x4a9534], 0x2a
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D5100
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f195
test cl, cl
je 0x41f1e7
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f195
add eax, 2
add edx, 2
test cl, cl
jne 0x41f179
je 0x41f1e7
mov eax, 0x4a9335
mov edx, str.D7000
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f1bd
test cl, cl
je 0x41f1e7
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f1bd
add eax, 2
add edx, 2
test cl, cl
jne 0x41f1a1
je 0x41f1e7
mov eax, 0x4a9335
mov edx, str.COOLPIX_A
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f1f3
test cl, cl
je 0x41f1e5
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f1f3
add eax, 2
add edx, 2
test cl, cl
jne 0x41f1c9
jne 0x41f1f3
sub dword [0x4a9534], 0x2c
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D3200
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f219
test cl, cl
je 0x41f24b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f219
add eax, 2
add edx, 2
test cl, cl
jne 0x41f1fd
je 0x41f24b
push 2
push 0x45f7a2
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x41f24b
push 4
push str.D800
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f257
sub dword [0x4a9534], 0x2e
jmp 0x421839
mov eax, 0x4a9335
mov edx, 0x45f7aa
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f27d
test cl, cl
je 0x41f2a7
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f27d
add eax, 2
add edx, 2
test cl, cl
jne 0x41f261
je 0x41f2a7
mov eax, 0x4a9335
mov edx, 0x45f7ad
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f2bd
test cl, cl
je 0x41f2a5
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f2bd
add eax, 2
add edx, 2
test cl, cl
jne 0x41f289
jne 0x41f2bd
sub dword [0x4a9534], 0x34
mov dword [0x4a953c], 2
jmp 0x421839
push 3
push 0x45f7b0
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x41f305
push 3
push 0x45f7b4
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x41f305
push 3
push 0x45f7b8
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f310
dec dword [0x4a9534]
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D100
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f360
test cl, cl
je 0x41f336
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f360
add eax, 2
add edx, 2
test cl, cl
jne 0x41f31a
jne 0x41f360
mov eax, dword [0x4a9510]
test eax, eax
je 0x421839
add dword [0x4a9534], 3
mov edx, dword [0x4a9534]
add edx, 3
mov dword [0x4a952c], edx
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.D200
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f3a8
test cl, cl
je 0x41f386
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f3a8
add eax, 2
add edx, 2
test cl, cl
jne 0x41f36a
jne 0x41f3a8
mov dword [0x4a953c], 1
sub dword [0x4a9534], 4
mov dword [0x4a951c], 0x94949494
jmp 0x421839
push 3
push 0x45f7c6
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f3d6
mov dword [0x4a953c], 6
sub dword [0x4a9534], 0xe
jmp 0x421839
push 3
push 0x45f7ca
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f412
mov eax, dword [0x4a9534]
cmp eax, 0xcc0
jne 0x41f406
sub dword [0x4a9534], 0x20
jmp 0x421839
sub dword [0x4a9534], 8
jmp 0x421839
push 4
push str.D300
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f436
sub dword [0x4a9534], 0x20
jmp 0x421839
push 9
push str.COOLPIX_B
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f45d
mov dword [0x4a9510], 0x18
jmp 0x421839
push 9
push str.COOLPIX_P
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f4ca
mov edx, dword [0x4a952c]
cmp edx, 0xfc0
je 0x41f4ca
mov dword [0x4a9510], 0x18
mov dword [0x4a951c], 0x94949494
mov cl, byte [0x4a933e]
cmp cl, 0x37
jne 0x421839
fld dword [0x4a9400]
fcomp dword [0x421bfc]
fnstsw ax
sahf
jb 0x421839
mov dword [0x4a9460], 0xff
jmp 0x421839
push 2
push 0x45f7e7
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41f4ee
sub dword [0x4a9530], 2
jmp 0x421839
cmp ebp, 0x182004
jne 0x41f521
push 3
call fcn.0041cca0
pop ecx
mov dword [0x4cb694], 0x3f9ab021
mov dword [0x4cb698], 0x3f8c1206
mov dword [0x4cb6a0], 0x3f8e1e4f
jmp 0x421839
cmp ebp, 0x308040
jne 0x41f552
fld dword [0x421c00]
fmul dword [0x4cb684]
fstp dword [0x4cb684]
fld dword [0x421c00]
fmul dword [0x4cb68c]
fstp dword [0x4cb68c]
jmp 0x421839
cmp ebp, 0x48d000
jne 0x41f5e4
mov edx, dword [0x4a9410]
test edx, edx
jne 0x41f57f
call fcn.0040465c
test eax, eax
je 0x41f57f
mov esi, 0x45f7ea
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, 0x4a9335
mov edx, str.E995
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f5a9
test cl, cl
je 0x421839
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f5a9
add eax, 2
add edx, 2
test cl, cl
jne 0x41f589
je 0x421839
mov dword [0x4a951c], 0xb4b4b4b4
push 3
call fcn.0041cca0
pop ecx
mov dword [0x4cb694], 0x3f991687
mov dword [0x4cb698], 0x3f9f7cee
mov dword [0x4cb69c], 0x3f824dd3
jmp 0x421839
cmp ebp, 0x2ce000
jne 0x41f66b
mov eax, dword [0x4a9410]
test eax, eax
jne 0x41f60d
call fcn.004046dc
test eax, eax
jne 0x41f60d
mov esi, 0x45f7f4
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, 0x4a9335
mov edx, str.E2500
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x421839
test cl, cl
je 0x41f63b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x421839
add eax, 2
add edx, 2
test cl, cl
jne 0x41f617
jne 0x421839
sub dword [0x4a9530], 2
mov dword [0x4a9510], 6
mov dword [0x4a9520], 4
mov dword [0x4a951c], 0x4b4b4b4b
jmp 0x421839
cmp ebp, 0x48e000
jne 0x41f76e
mov eax, dword [0x4a9410]
test eax, eax
jne 0x41f685
call fcn.00404768
mov dl, byte [0x4a9335]
cmp dl, 0x45
jne 0x41f6ac
push 0x4a9336
call fcn.0044d500
pop ecx
cmp eax, 0xe74
jge 0x41f6ac
mov dword [0x4a951c], 0x49494949
mov eax, 0x4a9335
mov edx, str.Optio_33WR
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f6e8
test cl, cl
je 0x41f6d2
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f6e8
add eax, 2
add edx, 2
test cl, cl
jne 0x41f6b6
jne 0x41f6e8
mov dword [0x4a9514], 1
mov dword [0x4a951c], 0x16161616
mov al, byte [0x4a92f5]
cmp al, 0x4f
jne 0x421839
push 0x369400
push 0x122400
push 0x20
push 0xc
call fcn.0041ce20
add esp, 0x10
call fcn.0044d7fc
mov esi, eax
push 0x246c48
push 0x246030
push 0x20
push 0xc
call fcn.0041ce20
add esp, 0x10
call fcn.0044d7fc
mov edi, eax
mov eax, esi
cdq
xor eax, edx
sub eax, edx
mov ecx, eax
mov eax, edi
cdq
xor eax, edx
sub eax, edx
cmp ecx, eax
jge 0x41f757
add esi, edi
mov dword [0x4a9510], 0x18
mov ecx, esi
sub ecx, edi
mov edi, ecx
sub esi, edi
test esi, esi
jge 0x421839
mov dword [0x4a951c], 0x61616161
jmp 0x421839
cmp ebp, 0x599000
jne 0x41f7ca
mov eax, dword [0x4a9410]
test eax, eax
jne 0x41f7a6
call fcn.00404834
test eax, eax
je 0x41f7a6
mov esi, 0x45f80b
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, str.DiMAGE_Z2
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dl, byte [0x4a92f5]
cmp dl, 0x4d
sete cl
and ecx, 1
mov eax, ecx
shl eax, 3
lea eax, [eax + eax*2]
add eax, 6
mov dword [0x4a9510], eax
jmp 0x421839
cmp ebp, 0x600000
jne 0x41f847
push 0
push 0x300000
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
push 0x10000
call fcn.0041cd18
mov word [0x4a909c], ax
pop ecx
cmp ax, 0x4d4d
jne 0x421839
mov edx, 0x10
mov eax, 0x1c
mov dword [0x4a9538], edx
mov edi, 0x4a92f5
sub dword [0x4a9530], edx
mov dword [0x4a953c], eax
sub dword [0x4a9534], eax
mov eax, edi
mov dword [0x4a9464], 0xf5c0
mov esi, 0x45f81d
movsd dword es:[edi], dword [esi]
mov byte [0x4a9335], 0
jmp 0x421839
mov eax, 0x4a92f5
mov edx, str.Fujifilm
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fa79
test cl, cl
je 0x41f875
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fa79
add eax, 2
add edx, 2
test cl, cl
jne 0x41f851
jne 0x41fa79
mov eax, 0x4a933c
mov edx, 0x45f82a
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f8d0
test cl, cl
je 0x41f8a1
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f8d0
add eax, 2
add edx, 2
test cl, cl
jne 0x41f885
jne 0x41f8d0
mov esi, str.S2Pro
mov edi, 0x4a9335
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov dword [0x4a9530], 0x860
mov dword [0x4a9534], 0xb40
mov dword [0x4a9514], 6
mov edx, dword [0x4a9528]
mov ecx, dword [0x4a9530]
sub edx, ecx
sar edx, 2
add edx, edx
mov dword [0x4a9538], edx
mov eax, dword [0x4a952c]
mov edx, dword [0x4a9534]
sub eax, edx
sar eax, 2
add eax, eax
mov dword [0x4a953c], eax
mov ecx, dword [0x4a9534]
cmp ecx, 0xb20
je 0x41f91a
mov eax, dword [0x4a9534]
cmp eax, 0xe50
jne 0x41f924
mov dword [0x4a951c], 0x16161616
mov edx, dword [0x4a9534]
cmp edx, 0xfc0
je 0x41f95a
mov ecx, dword [0x4a9534]
cmp ecx, 0x1358
je 0x41f95a
mov eax, dword [0x4a9534]
cmp eax, 0x1790
je 0x41f95a
mov edx, dword [0x4a9534]
cmp edx, 0x2058
jne 0x41f962
xor ecx, ecx
mov dword [0x4a953c], ecx
mov eax, dword [0x4a9534]
cmp eax, 0xd00
jne 0x41f981
sub dword [0x4a9534], 0x42
je 0x41f981
mov dword [0x4a953c], 0x22
mov edx, dword [0x4a9534]
cmp edx, 0x1348
jne 0x41f999
mov dword [0x4a953c], 4
mov eax, 0x4a9335
mov edx, str.HS50EXR
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41f9bf
test cl, cl
je 0x41f9e9
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41f9bf
add eax, 2
add edx, 2
test cl, cl
jne 0x41f9a3
je 0x41f9e9
mov eax, 0x4a9335
mov edx, str.F900EXR
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fa01
test cl, cl
je 0x41f9e7
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fa01
jne 0x41fa01
add dword [0x4a9534], 2
xor eax, eax
mov dword [0x4a953c], eax
mov dword [0x4a951c], 0x16161616
mov edx, dword [0x4a944c]
test edx, edx
je 0x41fa1e
mov ecx, dword [0x4a952c]
imul ecx, dword [0x4a9478]
mov dword [0x4a952c], ecx
mov eax, dword [0x4a951c]
cmp eax, 9
jne 0x421839
xor edi, edi
mov ebx, 0x4a90a8
mov eax, dword [0x4a953c]
mov ecx, 6
add eax, edi
mov esi, 6
cdq
idiv ecx
mov eax, edi
mov ecx, edx
cdq
idiv esi
mov edx, dword [0x4a9538]
mov esi, 6
add eax, edx
inc edi
cdq
idiv esi
lea eax, [edx + edx*2]
lea edx, [eax*2 + 0x4a90cc]
mov cl, byte [edx + ecx]
mov byte [ebx], cl
inc ebx
cmp edi, 0x24
jl 0x41fa33
mov eax, 0x4a9335
mov edx, str.KD_400Z
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fac4
test cl, cl
je 0x41fa9f
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fac4
add eax, 2
add edx, 2
test cl, cl
jne 0x41fa83
jne 0x41fac4
mov dword [0x4a9530], 0x6b0
mov dword [0x4a9534], 0x908
mov dword [0x4a952c], 0x920
jmp 0x41fcb4
mov eax, 0x4a9335
mov edx, str.KD_510Z
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41faf0
test cl, cl
je 0x41faea
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41faf0
add eax, 2
add edx, 2
test cl, cl
jne 0x41face
je 0x41fc66
push str.Minolta
push 0x4a92f5
call fcn.004469f8
add esp, 8
test eax, eax
jne 0x41fcd6
mov eax, dword [0x4eb70c]
test eax, eax
jne 0x41fb2c
mov edx, 0xfff
mov dword [0x4a9464], edx
test edx, edx
je 0x41fb2c
mov dword [0x4eb70c], fcn.00406c74
push 8
push str.DiMAGE_A
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41fb8f
mov eax, 0x4a9335
mov edx, str.DiMAGE_A200
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fb76
test cl, cl
je 0x41fb6a
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fb76
add eax, 2
add edx, 2
test cl, cl
jne 0x41fb4e
jne 0x41fb76
mov dword [0x4a951c], 0x49494949
mov dword [0x4a9458], 0xc
mov dword [0x4eb70c], 0x406f20
jmp 0x421839
push 5
push str.ALPHA
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x41fbd7
push 5
push str.DYNAX
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x41fbd7
push 6
push str.MAXXUM
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41fc1e
mov al, byte [0x4a9335]
cmp al, 0x4d
sete al
and eax, 1
add eax, 0x4a933b
push eax
push str.DYNAX___10s
push 0x4a9349
call fcn.00449d00
add esp, 0xc
push 0x4a9349
push 0x4a92f5
call fcn.0041cbb4
add esp, 8
mov dword [0x4eb70c], 0x406f20
jmp 0x421839
push 8
push str.DiMAGE_G
push 0x4a9335
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x421839
mov dl, byte [0x4a933d]
cmp dl, 0x34
jne 0x41fc5b
mov dword [0x4a9530], 0x6b4
mov dword [0x4a9534], 0x900
jmp 0x41fca3
mov cl, byte [0x4a933d]
cmp cl, 0x35
jne 0x41fc86
mov dword [0x4a9530], 0x7a4
mov dword [0x4a9534], 0xa2f
mov dword [0x4a952c], 0xa40
jmp 0x41fca3
mov al, byte [0x4a933d]
cmp al, 0x36
jne 0x41fca3
add dword [0x4a9418], 0xe
mov dword [0x4a951c], 0x61616161
mov dword [0x4eb70c], fcn.00406c74
mov dword [0x4a9464], 0x3df
mov word [0x4a909c], 0x4d4d
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.ist_D
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fd17
test cl, cl
je 0x41fcfc
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fd17
add eax, 2
add edx, 2
test cl, cl
jne 0x41fce0
jne 0x41fd17
mov dword [0x4eb70c], fcn.00406c74
mov dword [0x4a9484], 0xffffffff
jmp 0x421839
mov eax, 0x4a9335
mov edx, str.ist_DS
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fd4b
test cl, cl
je 0x41fd3d
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fd4b
add eax, 2
add edx, 2
test cl, cl
jne 0x41fd21
jne 0x41fd4b
sub dword [0x4a9530], 2
jmp 0x421839
mov eax, 0x4a92f5
mov edx, 0x45f8aa
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fdb1
test cl, cl
je 0x41fd71
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fdb1
add eax, 2
add edx, 2
test cl, cl
jne 0x41fd55
jne 0x41fdb1
mov eax, dword [0x4a952c]
cmp eax, 0x1260
jne 0x41fdb1
mov edx, 8
mov dword [0x4a9538], edx
sub dword [0x4a9530], edx
mov eax, 8
mov dword [0x4a953c], eax
add eax, eax
sub dword [0x4a9534], eax
mov dword [0x4a9510], 0x100
jmp 0x421839
mov eax, 0x4a92f5
mov edx, 0x45f8b2
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fe45
test cl, cl
je 0x41fddb
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fe45
add eax, 2
add edx, 2
test cl, cl
jne 0x41fdbb
jne 0x41fe45
mov eax, dword [0x4a9528]
cmp eax, 0xe82
jne 0x41fe45
mov edx, 0x12
mov eax, 0x15a0
mov dword [0x4a9538], edx
sub dword [0x4a9530], edx
mov dword [0x4a9534], eax
mov edx, dword [0x4a952c]
sub edx, eax
mov dword [0x4a953c], edx
mov ecx, dword [0x4a952c]
cmp ecx, 0x15e0
je 0x41fe2c
xor eax, eax
mov dword [0x4a9538], eax
mov dword [0x4a953c], eax
mov dword [0x4a951c], 0x61616161
mov dword [0x4a9520], 3
jmp 0x421839
mov eax, 0x4a92f5
mov edx, 0x45f8ba
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41fecf
test cl, cl
je 0x41fe6b
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41fecf
add eax, 2
add edx, 2
test cl, cl
jne 0x41fe4f
jne 0x41fecf
mov eax, dword [0x4a952c]
cmp eax, 0x1600
jne 0x41fecf
mov word [0x4a909c], 0x4949
mov dword [0x4a9530], 0xe6e
mov dword [0x4a9538], 2
mov eax, 0x15c6
mov edx, dword [0x4a9458]
add edx, 0x20
sub eax, edx
mov dword [0x4a953c], edx
mov dword [0x4a9534], eax
mov ecx, dword [0x4a9458]
cmp ecx, 0xc
jne 0x421839
mov eax, 0x4a92f5
mov edx, 0x45f8c2
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ff37
test cl, cl
je 0x41fef5
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ff37
add eax, 2
add edx, 2
test cl, cl
jne 0x41fed9
jne 0x41ff37
mov eax, dword [0x4a952c]
cmp eax, 0x1620
jne 0x41ff37
mov eax, 0x4a92f5
mov edx, str.Samsung
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x41ff8f
test cl, cl
je 0x41ff5d
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x41ff8f
jne 0x41ff8f
mov eax, 0x4a9335
mov edx, 0x45f8d2
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x420005
test cl, cl
je 0x41ffb5
mov eax, 0x4a9335
mov edx, str.WB2000
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x42007b
mov cl, byte [0x4a9335]
test cl, cl
jne 0x421862
mov eax, dword [0x4a9530]
push eax
mov edx, dword [0x4a9534]
push edx
push str._dx_d
push 0x4a9335
call fcn.00449d00
add esp, 0x10
mov ecx, dword [0x4a951c]
cmp ecx, 0xffffffff
jne 0x421877
mov dword [0x4a951c], 0x94949494
mov eax, dword [0x4a941c]
test eax, eax
je 0x4218c7
mov edx, dword [0x4a9554]
test edx, edx
jne 0x4218c7
push 0
mov ecx, dword [0x4a941c]
push ecx
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
push 1
lea edx, [esp + 0x38]
push edx
call fcn.00402ac8
add esp, 8
test eax, eax
je 0x4218c7
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov dword [0x4a9550], ecx
mov dword [0x4a9554], eax
mov edx, dword [0x45418c]
test edx, edx
jne 0x4218df
mov ecx, dword [0x4a947c]
test ecx, ecx
jne 0x4218df
xor eax, eax
jmp 0x4218e4
mov eax, 1
mov edx, dword [0x454190]
and eax, edx
je 0x42191c
mov ecx, 0x4cb6a4
fld dword [ecx]
fcomp dword [0x421c20]
fnstsw ax
sahf
jbe 0x42191c
push 0x30
push 0x4cb6a4
push 0x4cb6d4
call fcn.004466c0
add esp, 0xc
xor edx, edx
mov dword [0x4a946c], edx
mov ecx, dword [0x4a946c]
test ecx, ecx
je 0x421938
push 0x4a9335
push 0x4a92f5
call fcn.0041cbb4
add esp, 8
mov eax, 0x407f90
mov edx, dword [0x4eb70c]
cmp eax, edx
jne 0x421963
mov ecx, dword [0x4a946c]
test ecx, ecx
je 0x421963
push str.Quicktake
push str.Apple
call fcn.0041cbb4
add esp, 8
mov eax, dword [0x4a954c]
test eax, eax
je 0x4219d9
mov ecx, dword [0x4a944c]
mov eax, dword [0x4a9534]
cmp ecx, 1
sbb ecx, ecx
neg ecx
sar eax, cl
mov dword [0x4a954c], eax
test byte [0x4a954c], 1
je 0x421995
mov edx, 0x94949494
jmp 0x42199a
mov edx, 0x49494949
mov dword [0x4a951c], edx
mov ecx, dword [0x4a944c]
mov eax, dword [0x4a9530]
sar eax, cl
mov edx, dword [0x4a954c]
add eax, edx
mov dword [0x4a9534], eax
mov eax, dword [0x4a9534]
dec eax
xor ecx, ecx
mov dword [0x4a9530], eax
mov dword [0x4cb5fc], ecx
mov dword [0x4cb600], 0x3ff00000
jmp 0x421a0f
mov eax, dword [0x4a9530]
mov edx, dword [0x4a9528]
cmp eax, edx
jle 0x4219f4
mov ecx, dword [0x4a9530]
mov dword [0x4a9528], ecx
mov eax, dword [0x4a9534]
mov edx, dword [0x4a952c]
cmp eax, edx
jle 0x421a0f
mov ecx, dword [0x4a9534]
mov dword [0x4a952c], ecx
mov eax, dword [0x4a9458]
test eax, eax
jne 0x421a22
mov dword [0x4a9458], 0xc
mov edx, dword [0x4a9464]
test edx, edx
jne 0x421a3f
mov ecx, dword [0x4a9458]
mov eax, 1
shl eax, cl
dec eax
mov dword [0x4a9464], eax
mov edx, dword [0x4eb70c]
test edx, edx
je 0x421a7e
mov ecx, dword [0x4a9530]
cmp ecx, 0x16
jl 0x421a7e
mov eax, dword [0x4a9534]
cmp eax, 0x16
jl 0x421a7e
mov edx, dword [0x4a9458]
cmp edx, 0x10
ja 0x421a7e
mov ecx, dword [0x4a9454]
cmp ecx, 6
ja 0x421a7e
mov eax, dword [0x4a9520]
cmp eax, 4
jbe 0x421a86
xor edx, edx
mov dword [0x4a9478], edx
mov ecx, 0x40a930
mov eax, dword [0x4eb70c]
cmp ecx, eax
jne 0x421abb
push str.libjasper
mov edx, dword [0x4a90a0]
push edx
push 0x45fac7
mov ecx, dword [0x4606dc]
push ecx
call fcn.0042586c
add esp, 0x10
xor eax, eax
mov dword [0x4a9478], eax
mov edx, 0x4088c4
mov ecx, dword [0x4eb70c]
cmp edx, ecx
je 0x421ad9
mov eax, 0x4088c8
mov edx, dword [0x4eb70c]
cmp eax, edx
jne 0x421b00
push str.libjpeg
mov ecx, dword [0x4a90a0]
push ecx
push str._s:_You_must_link_dcraw_with__s___n
mov eax, dword [0x4606dc]
push eax
call fcn.0042586c
add esp, 0x10
xor edx, edx
mov dword [0x4a9478], edx
mov cl, byte [0x4a90f0]
test cl, cl
jne 0x421b44
mov eax, dword [0x4a9520]
cmp eax, 3
jne 0x421b1b
mov edx, str.RGBG
jmp 0x421b20
mov edx, str.GMCY
xor eax, eax
mov edi, edx
or ecx, 0xffffffff
mov esi, 0x4a90f0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [0x4a9528]
test eax, eax
jne 0x421b59
mov edx, dword [0x4a9530]
mov dword [0x4a9528], edx
mov ecx, dword [0x4a952c]
test ecx, ecx
jne 0x421b6d
mov eax, dword [0x4a9534]
mov dword [0x4a952c], eax
mov edx, dword [0x4a951c]
cmp edx, 0x3e7
jbe 0x421bb4
mov ecx, dword [0x4a9520]
cmp ecx, 3
jne 0x421bb4
mov eax, dword [0x4a951c]
mov edx, dword [0x4a951c]
shl edx, 2
mov ecx, dword [0x4a951c]
shr eax, 2
and edx, 0x88888888
and eax, 0x22222222
add ecx, ecx
or eax, edx
and eax, ecx
or dword [0x4a951c], eax
mov eax, dword [0x4a9514]
cmp eax, 0xffffffff
jne 0x421bca
mov edx, dword [0x4a9518]
mov dword [0x4a9514], edx
mov ecx, dword [0x4a9514]
cmp ecx, 0xffffffff
jne 0x421bdc
xor eax, eax
mov dword [0x4a9514], eax
add esp, 0x234
pop ebp
pop edi
pop esi
pop ebx
ret