Function at 0x100e5a30
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
sub esp, 0x7c
mov eax, dword [0x101b0cd0]
xor eax, esp
mov dword [esp + 0x78], eax
fldz
push ebx
push ebp
push esi
mov esi, dword [esp + 0x8c]
xor eax, eax
fst dword [esi + 0x659c]
push edi
fst dword [esi + 0x6598]
xor edx, edx
fst dword [esi + 0x6594]
xor ebx, ebx
fstp dword [esi + 0x6590]
push 0x80
xor ecx, ecx
mov word [esi + 0x66b2], dx
mov word [esi + 0x66b8], dx
or ebp, 0xffffffff
lea edx, [esi + 0x662c]
push ebx
push edx
mov dword [esi + 0x65b0], ebp
mov dword [esi + 0x66c8], ebp
mov dword [esi + 0x66cc], ebp
mov word [esi + 0xe766], ax
mov dword [esi + 0x65e4], ebx
mov word [esi + 0x66c2], cx
mov word [esi + 0x66b0], ax
mov word [esi + 0x66ba], cx
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b4], cx
mov dword [esi + 0x65fc], ebx
mov byte [esi + 0x6505], al
mov byte [esi + 0x64c5], al
mov byte [esi + 0x6485], al
mov byte [esi + 0x6545], al
mov byte [esi + 0x6285], al
mov byte [esi + 0x6280], al
mov dword [esi + 0x65b8], ebx
call fcn.10057070
push 0x80
lea eax, [esi + 0x66e4]
push ebx
push eax
call fcn.10057070
fld1
mov eax, 1
fstp qword [esi + 0x66d8]
xor ecx, ecx
add esp, 0x18
mov dword [esi + 0x6608], eax
mov dword [esi + 0x6604], eax
mov dword [esi + 0x6614], eax
xor edx, edx
mov eax, closesocket
mov word [esi + 0x66c6], cx
mov word [esi + 0x66c4], dx
mov dword [esi + 0x65d0], ebx
mov dword [esi + 0x65c4], ebx
mov dword [esi + 0x2e800], ebx
mov dword [esi + 0x2e7fc], ebx
mov dword [esi + 0x2e7f4], 0x100e22b0
mov dword [esi + 0x65f4], ebx
mov dword [esi + 0x65f0], ebx
mov dword [esi + 0x65d4], ebx
mov dword [esi + 0x65c0], ebx
mov dword [esi + 0x66ac], ebx
mov dword [esi + 0x6618], ebx
mov dword [esi + 0x6610], ebx
mov dword [esi + 0x65ac], ebx
mov dword [esi + 0x661c], ebx
mov dword [esi + 0x65f8], ebx
mov dword [esi + 0x65ec], ebx
mov dword [esi + 0x65a8], ebx
mov dword [esi + 0x65a0], ebx
mov dword [esi + 0x65a4], ebx
mov dword [esi + 0x660c], ebx
mov dword [esi + 0x6620], ebx
mov dword [esi + 0x65d8], ebx
mov dword [esi + 0x6600], ebx
mov dword [esi + 0x6628], eax
fldz
mov dword [esi + 0x6624], eax
xor eax, eax
lea ecx, [esi + 0xe784]
xor edx, edx
cmp eax, 1
sete dl
cmp eax, 3
mov edi, 3
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
sbb edx, edx
neg edx
mov dword [esp + 0x10], edx
fstp dword [ecx - 0x10]
lea edx, [ecx + 0x10]
fild dword [esp + 0x10]
fstp dword [ecx]
fst dword [edx]
add edx, 0x10
sub edi, 1
jne 0x100e5c1b
xor edx, edx
cmp eax, ebx
sete dl
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
xor edx, edx
cmp eax, 1
sete dl
fstp dword [ecx + 0x40]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
xor edx, edx
cmp eax, 2
sete dl
fstp dword [ecx + 0x50]
inc eax
add ecx, 4
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp dword [ecx + 0x5c]
cmp eax, 4
jb 0x100e5bef
fstp st(0)
mov dword [esi + 0x66d0], 3
mov dword [esi + 0x65f0], 0xc
xor eax, eax
lea ecx, [esi + 0x6764]
mov word [ecx], ax
inc eax
add ecx, 2
cmp eax, 0x4000
jb 0x100e5c84
push esi
call fcn.100cd370
push esi
mov word [esi + 0x6274], ax
call fcn.100cd410
mov ecx, dword [esi + 4]
push ebx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 8]
push ebx
push ecx
call edx
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 0x20
push 1
lea ecx, [esp + 0x84]
push ecx
push edx
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 2
push ebx
push edx
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
call eax
push 4
push str.MMMM
lea ecx, [esp + 0xa4]
push 0x20
push ecx
mov dword [esp + 0x58], eax
call fcn.100cd1c0
add esp, 0x44
cmp eax, ebx
jne 0x100e6323
push 4
push str.IIII
lea edx, [esp + 0x70]
push 0x20
push edx
call fcn.100cd1c0
add esp, 0x10
cmp eax, ebx
jne 0x100e6323
movzx eax, word [esi + 0x6274]
mov ecx, 0x4949
cmp ax, cx
je 0x100e62ec
mov edx, 0x4d4d
cmp ax, dx
je 0x100e62ec
cmp dword [esp + 0x68], 0xe1ffd8ff
jne 0x100e5db5
cmp dword [esp + 0x6e], 0x66697845
jne 0x100e5db5
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push ebx
push 4
push ecx
call edx
push esi
call fcn.100cd370
mov ecx, dword [esi]
mov edx, dword [esi + 4]
movzx eax, ax
add eax, 4
push ebx
push eax
mov dword [esi + 0x65c0], eax
mov eax, dword [ecx + 8]
push edx
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x1c]
push edx
call eax
add esp, 0x20
cmp eax, 0xff
je 0x100e5daa
push 0xc
push esi
call fcn.100e48b0
add esp, 8
mov dword [esi + 0x65c4], ebx
jmp 0x100e6343
cmp dword [esp + 0x81], 0x43455241
jne 0x100e5e96
cmp byte [esp + 0x85], 0x4f
jne 0x100e5e96
cmp byte [esp + 0x86], 0x59
jne 0x100e5e96
cmp byte [esp + 0x87], 0x4b
jne 0x100e5e96
mov ecx, dword [str.Contax]
mov dword [esi + 0x6485], ecx
mov dx, word [0x1016c6b8]
mov word [esi + 0x6489], dx
mov al, byte [0x1016c6ba]
mov byte [esi + 0x648b], al
mov ecx, dword [str.N_Digital]
mov dword [esi + 0x64c5], ecx
mov edx, dword [0x1016c6ac]
mov ecx, dword [esi]
mov dword [esi + 0x64c9], edx
mov ax, word [0x1016c6b0]
mov edx, dword [esi + 4]
push ebx
mov word [esi + 0x64cd], ax
mov eax, dword [ecx + 8]
push 0x21
push edx
call eax
push 1
push esi
call fcn.100de0d0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push ebx
push 0x3c
push edx
call eax
add esp, 0x20
xor edi, edi
push esi
call fcn.100cd410
add esp, 4
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
test eax, eax
jge 0x100e5e7e
fadd dword [0x10161be8]
mov ecx, edi
shr ecx, 1
xor ecx, edi
inc edi
fstp dword [esi + ecx*4 + 0xe774]
cmp edi, 4
jb 0x100e5e63
jmp 0x100e6343
mov ecx, 0x1016c6a4
lea eax, [esp + 0x68]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e5ec0
test dl, dl
je 0x100e5ebc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e5ec0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e5ea0
xor eax, eax
jmp 0x100e5ec4
sbb eax, eax
sbb eax, ebp
cmp eax, ebx
jne 0x100e5f1f
mov edx, dword [str.Logitech]
mov dword [esi + 0x6485], edx
mov eax, dword [0x1016c69c]
mov dword [esi + 0x6489], eax
mov cl, byte [0x1016c6a0]
mov byte [esi + 0x648d], cl
mov edx, dword [str.Fotoman_Pixtura]
mov dword [esi + 0x64c5], edx
mov eax, dword [0x1016c68c]
mov dword [esi + 0x64c9], eax
mov ecx, dword [0x1016c690]
mov dword [esi + 0x64cd], ecx
mov edx, dword [0x1016c694]
mov dword [esi + 0x64d1], edx
jmp 0x100e6343
mov ecx, str.qktk
lea eax, [esp + 0x68]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e5f48
test dl, dl
je 0x100e5f44
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e5f48
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e5f28
xor eax, eax
jmp 0x100e5f4c
sbb eax, eax
sbb eax, ebp
cmp eax, ebx
jne 0x100e5f9f
mov eax, dword [str.Apple]
mov dword [esi + 0x6485], eax
mov cx, word [0x1016c67c]
mov word [esi + 0x6489], cx
mov edx, dword [str.QuickTake_100]
mov dword [esi + 0x64c5], edx
mov eax, dword [0x1016c66c]
mov dword [esi + 0x64c9], eax
mov ecx, dword [0x1016c670]
mov dword [esi + 0x64cd], ecx
mov dx, word [0x1016c674]
mov word [esi + 0x64d1], dx
jmp 0x100e6343
mov ecx, str.qktn
lea eax, [esp + 0x68]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e5fc8
test dl, dl
je 0x100e5fc4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e5fc8
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e5fa8
xor eax, eax
jmp 0x100e5fcc
sbb eax, eax
sbb eax, ebp
cmp eax, ebx
jne 0x100e601f
mov eax, dword [str.Apple]
mov dword [esi + 0x6485], eax
mov cx, word [0x1016c67c]
mov word [esi + 0x6489], cx
mov edx, dword [str.QuickTake_150]
mov dword [esi + 0x64c5], edx
mov eax, dword [0x1016c654]
mov dword [esi + 0x64c9], eax
mov ecx, dword [0x1016c658]
mov dword [esi + 0x64cd], ecx
mov dx, word [0x1016c65c]
mov word [esi + 0x64d1], dx
jmp 0x100e6343
mov eax, 8
xor ecx, ecx
jmp 0x100e6030
mov edx, dword [esp + ecx + 0x68]
cmp edx, dword [ecx + str.FUJIFILM]
jne 0x100e6109
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x100e6030
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push ebx
push 0x54
push eax
call ecx
push esi
call fcn.100cd410
push esi
mov dword [esi + 0x65c4], eax
call fcn.100cd410
mov edx, dword [esi]
mov dword [esi + 0x65d0], eax
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push ebx
push 0x5c
push eax
call ecx
push esi
call fcn.100cd410
push eax
push esi
call fcn.100e0090
add esp, 0x2c
cmp dword [esi + 0x65c4], 0x78
jle 0x100e60d7
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push ebx
push 0x78
push eax
call ecx
push esi
call fcn.100cd410
xor ecx, ecx
add esp, 0x10
cmp eax, ebx
setne cl
add dword [esi + 0x6614], ecx
cmp dword [esi + 0x6614], 2
jne 0x100e60d7
cmp dword [esi + 0xa0], ebx
je 0x100e60d7
push eax
push esi
call fcn.100e0090
add esp, 8
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push ebx
push 0x64
push eax
call ecx
push esi
call fcn.100cd410
mov edx, dword [esi + 0x65c4]
add edx, 0xc
push edx
push esi
mov dword [esi + 0x65c0], eax
call fcn.100e48b0
add esp, 0x18
jmp 0x100e6343
mov eax, dword [esp + 0x68]
cmp eax, 0x46464952
jne 0x100e612f
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push ebx
push ebx
push ecx
call edx
push esi
call fcn.100e01f0
add esp, 0x10
jmp 0x100e6343
cmp eax, 0x1000100
jne 0x100e61ea
cmp byte [esp + 0x6c], bl
jne 0x100e61ea
cmp byte [esp + 0x6d], 0x40
jne 0x100e61ea
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push ebx
push 6
push ecx
call edx
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 8
push 1
lea eax, [esi + 0x6485]
push eax
mov eax, dword [ecx]
push edx
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 8
push 1
lea eax, [esi + 0x64c5]
push eax
mov eax, dword [ecx]
push edx
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 0x10
push 1
lea eax, [esi + 0x6505]
push eax
mov eax, dword [ecx]
push edx
call eax
push esi
call fcn.100cd370
movzx ecx, ax
add esp, 0x40
push esi
mov dword [esi + 0x65c0], ecx
call fcn.100cd370
push esi
call fcn.100cd370
push esi
mov word [esi + 0x66b2], ax
call fcn.100cd370
add esp, 0xc
mov word [esi + 0x66b0], ax
mov dword [esi + 0x2e7fc], 0x100d32e0
mov dword [esi + 0x65b0], 0x61616161
jmp 0x100e6343
mov eax, 9
mov ecx, str.DSC_Image
lea edx, [esp + 0x68]
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x100e6220
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x100e61f8
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x100e6220
push esi
call fcn.100df5f0
add esp, 4
jmp 0x100e6343
mov eax, dword [esp + 0x68]
cmp eax, 0x44415750
jne 0x100e6239
push esi
call fcn.100df960
add esp, 4
jmp 0x100e6343
cmp eax, 0x4d524d00
jne 0x100e624c
push ebx
push esi
call fcn.100e4eb0
jmp 0x100e6340
cmp eax, 0x62564f46
jne 0x100e6261
push esi
call fcn.100e5480
add esp, 4
jmp 0x100e6343
cmp al, 0x43
jne 0x100e6278
cmp ah, 0x49
jne 0x100e6278
push esi
call fcn.100e0570
add esp, 4
jmp 0x100e6343
lea ebp, [esi + 0x64c5]
mov ebx, 0x1016a90c
lea edi, [esi + 0x6485]
sub ebp, 0x1016a918
sub edi, ebx
mov dword [esp + 0x10], 0x44
lea esp, [esp]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [ebx - 4]
jne 0x100e62d8
mov eax, ebx
jmp 0x100e62b0
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x100e62b0
lea eax, [ebx + 0xc]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + ebp], cl
inc eax
test cl, cl
jne 0x100e62c0
cmp byte [ebx + 0x1f], cl
je 0x100e62d8
push esi
call fcn.100e50e0
add esp, 4
sub edi, 0x24
sub ebp, 0x24
add ebx, 0x24
sub dword [esp + 0x10], 1
jne 0x100e62a0
xor ebx, ebx
jmp 0x100e6343
mov eax, 8
xor ecx, ecx
mov edx, dword [esp + ecx + 0x6e]
cmp edx, dword [ecx + str.HEAPCCDR]
jne 0x100e6339
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x100e62f3
mov eax, dword [esp + 0x14]
sub eax, edi
push eax
push edi
push esi
mov dword [esi + 0x65c0], edi
call fcn.100deee0
add esp, 0xc
jmp 0x100e6343
mov edi, eax
lea ecx, [esp + 0x68]
sub edi, ecx
push edi
push esi
call fcn.100dfb60
add esp, 8
cmp edi, ebx
je 0x100e6343
push ebx
push esi
call fcn.100e48b0
add esp, 8
cmp byte [esi + 0x6485], 0
jne 0x100e6374
mov edx, dword [esp + 0x14]
push edx
push ebx
push esi
call fcn.100e0470
add esp, 0xc
cmp byte [esi + 0x6485], 0
jne 0x100e6374
push ebx
push esi
mov dword [esi + 0x6614], ebx
call fcn.100e5320
add esp, 8
xor edi, edi
jmp 0x100e6380
mov eax, dword [edi + 0x101b40bc]
push eax
lea ebp, [esi + 0x6485]
push ebp
call fcn.101529e0
add esp, 8
test eax, eax
je 0x100e63ac
mov ecx, dword [edi + 0x101b40bc]
mov edx, ebp
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x100e63a2
add edi, 4
cmp edi, 0x3c
jb 0x100e6380
push 5
push str.KODAK
lea edi, [esi + 0x6485]
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100e63da
mov byte [esi + 0x64d5], al
mov byte [esi + 0x6495], al
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100e63e0
sub eax, edx
cmp byte [eax + esi + 0x6484], 0x20
lea eax, [eax + esi + 0x6484]
jne 0x100e6409
lea ebx, [ebx]
mov byte [eax], 0
dec eax
cmp byte [eax], 0x20
je 0x100e6400
lea eax, [esi + 0x64c5]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100e6412
sub eax, edx
cmp byte [eax + esi + 0x64c4], 0x20
lea eax, [eax + esi + 0x64c4]
jne 0x100e6439
lea esp, [esp]
mov byte [eax], 0
dec eax
cmp byte [eax], 0x20
je 0x100e6430
lea eax, [esi + 0x6485]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100e6442
sub eax, edx
mov edi, eax
push edi
lea eax, [esi + 0x6485]
push eax
lea ebp, [esi + 0x64c5]
push ebp
call fcn.1006906f
add esp, 0xc
test eax, eax
jne 0x100e648e
mov cl, byte [esi + edi + 0x64c5]
inc edi
cmp cl, 0x20
jne 0x100e648e
mov edx, 0x40
sub edx, edi
push edx
lea eax, [esi + edi + 0x64c5]
push eax
push ebp
call fcn.1005fc50
add esp, 0xc
push 0xf
push str.Digital_Camera
push ebp
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100e64ba
lea eax, [esi + 0x64d4]
mov edx, ebp
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x100e64b0
mov byte [esi + 0x6544], 0
mov byte [esi + 0x6504], 0
mov byte [esi + 0x64c4], 0
mov byte [esi + 0x6584], 0
mov byte [esi + 0x6484], 0
cmp dword [esi + 0x6614], ebx
je 0x100ead08
cmp dword [esi + 0x65fc], 0
jne 0x100e6506
mov ecx, dword [esi + 0x65f0]
mov edx, 1
shl edx, cl
dec edx
mov dword [esi + 0x65fc], edx
cmp word [esi + 0x66b4], 0
jne 0x100e651e
mov ax, word [esi + 0x66b0]
mov word [esi + 0x66b4], ax
cmp word [esi + 0x66b6], 0
jne 0x100e6536
mov cx, word [esi + 0x66b2]
mov word [esi + 0x66b6], cx
movzx ecx, word [esi + 0x66c2]
test cx, cx
je 0x100e6563
movzx eax, word [esi + 0x66b4]
fld1
add ax, cx
fstp qword [esi + 0x66d8]
mov word [esi + 0x66b6], ax
dec eax
mov word [esi + 0x66b4], ax
mov edx, 0xa40
cmp word [esi + 0x66b4], dx
jne 0x100e6597
mov eax, 0xf60
cmp word [esi + 0x66b6], ax
jne 0x100e6597
mov ecx, 0xa38
mov edx, 0xf38
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov eax, 0xc40
cmp word [esi + 0x66b4], ax
jne 0x100e65cb
mov ecx, 0x1300
cmp word [esi + 0x66b6], cx
jne 0x100e65cb
mov edx, 0xc34
mov eax, 0x1250
mov word [esi + 0x66b4], dx
mov word [esi + 0x66b6], ax
mov ecx, 0xbc6
cmp word [esi + 0x66b4], cx
jne 0x100e65f3
mov edx, 0x1000
cmp word [esi + 0x66b6], dx
jne 0x100e65f3
mov eax, 0xfae
mov word [esi + 0x66b6], ax
cmp dword [esi + 0x6618], 0
je 0x100e665f
cmp dword [esi + 0x65b0], 0xffffffff
jne 0x100e660f
mov dword [esi + 0x65b0], 0
cmp dword [esi + 0x65b0], 0
je 0x100e6626
mov ecx, dword [esi + 0x65ec]
mov dword [esi + 0x6614], ecx
jmp 0x100e6632
mov edx, dword [esi + 0x65ec]
mov dword [esi + 0x66d0], edx
mov eax, dword [esi + 0x65f4]
cmp eax, 1
jne 0x100e6647
mov dword [esi + 0x2e7fc], 0x100d0150
cmp eax, 7
jne 0x100eac11
mov dword [esi + 0x2e7fc], 0x100cffe0
jmp 0x100eac11
mov ecx, 0x10166d74
lea eax, [esi + 0x6485]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6690
test dl, dl
je 0x100e668c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6690
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6670
xor eax, eax
jmp 0x100e6695
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
sete cl
mov edi, ecx
test edi, edi
je 0x100e66d2
mov eax, 8
xor ecx, ecx
lea esp, [esp]
mov edx, dword [esp + ecx + 0x6e]
cmp edx, dword [ecx + str.HEAPCCDR]
jne 0x100e6700
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x100e66b0
mov eax, 0x100cec80
mov dword [esi + 0x2e7fc], eax
mov ecx, 0x10166d6c
lea eax, [esi + 0x6485]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6707
test dl, dl
je 0x100e66fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6707
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e66e0
xor eax, eax
jmp 0x100e670c
mov eax, 0x100cf690
jmp 0x100e66cc
sbb eax, eax
sbb eax, 0xffffffff
mov ebp, 0x100d2e90
test eax, eax
jne 0x100e6744
cmp dword [esi + 0x2e7fc], eax
jne 0x100e6723
mov dword [esi + 0x2e7fc], ebp
cmp byte [esi + 0x64c5], 0x45
jne 0x100e6744
xor eax, eax
cmp dword [esi + 0x65c0], eax
sete al
add eax, eax
add eax, eax
or eax, 2
or dword [esi + 0x66ac], eax
mov ecx, 0x10166d24
lea eax, [esi + 0x6485]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6770
test dl, dl
je 0x100e676c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6770
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6750
xor eax, eax
jmp 0x100e6775
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6789
mov dword [esi + 0x2e7fc], ebp
mov dword [esi + 0x65fc], 0xf7f
cmp dword [esi + 0x661c], 0
mov ebx, 0x94949494
jne 0x100eab69
test edi, edi
je 0x100e67f3
cmp dword [esi + 0x65f0], 0xf
jne 0x100e67f3
movzx eax, word [esi + 0x66b6]
movzx ecx, ax
cmp ecx, 0xd10
je 0x100e67c4
cmp ecx, 0xf20
je 0x100e67ce
jmp 0x100e67da
add eax, 0xffffffbe
mov word [esi + 0x66b6], ax
mov ecx, 0xfffa
add word [esi + 0x66b6], cx
mov dword [esi + 0x65b0], 0
mov dword [esi + 0x2e7fc], 0x100cf8f0
jmp 0x100eab69
mov ecx, 0x1016c618
lea eax, [esi + 0x64c5]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6820
test dl, dl
je 0x100e681c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6820
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6800
xor eax, eax
jmp 0x100e6825
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6855
fld qword [0x1016c610]
mov eax, 0x356
mov edx, 0x265
lea ecx, [eax + 0x2a]
mov dword [esi + 0x65b0], 0xe1e4e1e4
mov dword [esi + 0x2e7fc], 0x100ce0f0
jmp 0x100eab44
mov ecx, str.PowerShot_A5
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6880
test dl, dl
je 0x100e687c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6880
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6860
xor eax, eax
jmp 0x100e6885
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eab1d
mov ecx, str.PowerShot_A5_Zoom
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e68b8
test dl, dl
je 0x100e68b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e68b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6898
xor eax, eax
jmp 0x100e68bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eab1d
mov ecx, str.PowerShot_A50
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e68f0
test dl, dl
je 0x100e68ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e68f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e68d0
xor eax, eax
jmp 0x100e68f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e691f
mov eax, 0x50a
mov edx, 0x3c8
lea ecx, [eax + 0x1e]
mov dword [esi + 0x65b0], 0x1b4e4b1e
mov dword [esi + 0x2e7fc], 0x100ce760
jmp 0x100eab4a
mov ecx, str.PowerShot_Pro70
lea eax, [esi + 0x64c5]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6950
test dl, dl
je 0x100e694c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6950
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6930
xor eax, eax
jmp 0x100e6955
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e697c
mov edx, 0x400
mov eax, 0x610
mov dword [esi + 0x65b0], 0x1e4b4e1b
mov dword [esi + 0x2e7fc], 0x100ce760
jmp 0x100eab51
mov ecx, str.PowerShot_SD300
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e69a7
test dl, dl
je 0x100e69a3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e69a7
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6987
xor eax, eax
jmp 0x100e69ac
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e69d5
mov ecx, 0x6d8
mov edx, 0x928
mov word [esi + 0x66b4], cx
lea eax, [ecx + 0xe]
mov word [esi + 0x66b6], dx
lea ecx, [edx + 0x38]
mov edx, 0xc
jmp 0x100e6a30
mov ecx, str.PowerShot_A460
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6a00
test dl, dl
je 0x100e69fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6a00
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e69e0
xor eax, eax
jmp 0x100e6a05
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6a5d
mov ecx, 0x7a8
mov edx, 0xa38
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov eax, 0x7b0
mov ecx, 0xa68
mov edx, 4
mov word [esi + 0x66b0], ax
mov eax, edx
mov word [esi + 0x66b2], cx
mov word [esi + 0x66b8], dx
mov word [esi + 0x66ba], ax
mov dword [esi + 0x2e7fc], 0x100ce760
jmp 0x100eab69
mov ecx, str.PowerShot_A530
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6a88
test dl, dl
je 0x100e6a84
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6a88
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6a68
xor eax, eax
jmp 0x100e6a8d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6af2
mov ecx, 0x7c0
mov edx, 0xa3c
mov eax, 0x7c8
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov word [esi + 0x66b0], ax
mov ecx, 0xa70
mov edx, 6
mov eax, 0xa
mov word [esi + 0x66b2], cx
mov word [esi + 0x66b8], dx
mov word [esi + 0x66ba], ax
mov dword [esi + 0x2e7fc], 0x100ce760
mov dword [esi + 0x6604], 0
jmp 0x100eab69
mov ecx, str.PowerShot_A610
lea eax, [esi + 0x64c5]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6b20
test dl, dl
je 0x100e6b1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6b20
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6b00
xor eax, eax
jmp 0x100e6b25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6b7a
push esi
call fcn.100ce710
add esp, 4
test eax, eax
je 0x100e6b50
mov ecx, dword [str.S2_IS]
mov dword [esi + 0x64cf], ecx
mov dx, word [0x1016c584]
mov word [esi + 0x64d3], dx
mov eax, 0x7a8
mov edx, 0x7b0
mov ecx, 0xa38
mov word [esi + 0x66b4], ax
mov word [esi + 0x66b0], dx
lea eax, [ecx + 0x38]
mov edx, 0xc
jmp 0x100e6de0
mov ecx, str.PowerShot_A620
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6ba5
test dl, dl
je 0x100e6ba1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6ba5
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6b85
xor eax, eax
jmp 0x100e6baa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6be2
mov eax, 0x918
mov ecx, 0xc28
mov word [esi + 0x66b4], ax
mov edx, 0x924
mov word [esi + 0x66b6], cx
lea eax, [ecx + 0x28]
mov ecx, 0xc
mov word [esi + 0x66b0], dx
lea edx, [ecx + 0x18]
jmp 0x100e6dec
mov ecx, str.PowerShot_A720
lea eax, [esi + 0x64c5]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6c10
test dl, dl
je 0x100e6c0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6c10
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6bf0
xor eax, eax
jmp 0x100e6c15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6c4d
mov eax, 0x9a8
mov ecx, 0xce2
mov word [esi + 0x66b4], ax
mov edx, 0x9b0
mov word [esi + 0x66b6], cx
lea eax, [ecx + 0x26]
mov ecx, 5
mov word [esi + 0x66b0], dx
lea edx, [ecx + 1]
jmp 0x100e6dec
mov ecx, str.PowerShot_A630
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6c78
test dl, dl
je 0x100e6c74
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6c78
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6c58
xor eax, eax
jmp 0x100e6c7d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6cb5
mov eax, 0x9a8
mov ecx, 0xcd8
mov word [esi + 0x66b4], ax
mov edx, 0x9b4
mov word [esi + 0x66b6], cx
lea eax, [ecx + 0x38]
mov ecx, 6
mov word [esi + 0x66b0], dx
lea edx, [ecx + 6]
jmp 0x100e6dec
mov ecx, str.PowerShot_A640
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6ce0
test dl, dl
je 0x100e6cdc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6ce0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6cc0
xor eax, eax
jmp 0x100e6ce5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6d1d
mov eax, 0xac8
mov ecx, 0xe58
mov word [esi + 0x66b4], ax
mov edx, 0xad4
mov word [esi + 0x66b6], cx
lea eax, [ecx + 0x40]
mov ecx, 6
mov word [esi + 0x66b0], dx
lea edx, [ecx + 6]
jmp 0x100e6dec
mov ecx, str.PowerShot_A650
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6d48
test dl, dl
je 0x100e6d44
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6d48
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6d28
xor eax, eax
jmp 0x100e6d4d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6d82
mov eax, 0xbd0
mov ecx, 0xfc0
mov word [esi + 0x66b4], ax
mov edx, 0xbe8
mov word [esi + 0x66b6], cx
lea eax, [ecx + 0x48]
mov ecx, 0xc
mov word [esi + 0x66b0], dx
lea edx, [ecx + 0x24]
jmp 0x100e6dec
mov ecx, str.PowerShot_S3_IS
lea eax, [esi + 0x64c5]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6db0
test dl, dl
je 0x100e6dac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6db0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6d90
xor eax, eax
jmp 0x100e6db5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6e10
mov eax, 0x850
mov edx, 0x858
mov word [esi + 0x66b4], ax
mov word [esi + 0x66b0], dx
mov ecx, 0xb18
mov eax, 0xb48
mov edx, 0x2c
mov word [esi + 0x66b6], cx
mov ecx, 8
mov word [esi + 0x66b2], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
mov dword [esi + 0x2e7fc], 0x100ce760
jmp 0x100eab69
mov ecx, str.PowerShot_Pro90_IS
lea eax, [esi + 0x64c5]
jmp 0x100e6e20
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6e40
test dl, dl
je 0x100e6e3c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6e40
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6e20
xor eax, eax
jmp 0x100e6e45
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e6e5d
mov eax, 0x768
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x100eab58
test edi, edi
je 0x100e703c
movzx eax, word [esi + 0x66b2]
mov ecx, 0x860
cmp ax, cx
jne 0x100e6eed
mov edx, 0x60e
mov eax, 0x828
mov ecx, 8
mov word [esi + 0x66b4], dx
mov edx, 4
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
mov ecx, str.PowerShot_G1
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e6ed1
test dl, dl
je 0x100e6ecd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e6ed1
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e6eb1
xor eax, eax
jmp 0x100e6ed6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100eab69
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x100eab5f
mov ecx, 0x8b0
cmp ax, cx
jne 0x100e6f09
lea eax, [ecx - 0x30]
mov edx, 0x5a8
mov ecx, 6
jmp 0x100e71fc
mov ecx, 0x948
cmp ax, cx
jne 0x100e6f1d
mov edx, 0x6b8
lea eax, [ecx - 0x40]
jmp 0x100e6f31
mov ecx, 0xa70
cmp ax, cx
jne 0x100e6f5c
mov edx, 0x7a8
mov eax, 0xa38
mov word [esi + 0x66b4], dx
mov ecx, 6
mov edx, 0xc
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov ecx, 0xc50
cmp ax, cx
jne 0x100e6fbe
cmp dword [esi + 0x65b8], 0x80000170
mov edx, 0x808
mov word [esi + 0x66b4], dx
mov eax, 0xc10
mov ecx, 0xc
mov edx, 0x40
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jne 0x100eab69
push str.EOS_300D
push 0x10166d74
push esi
call fcn.100e08a0
add esp, 0xc
jmp 0x100eab69
mov ecx, 0xc58
cmp ax, cx
jne 0x100e6ffd
mov edx, 0x918
mov word [esi + 0x66b4], dx
mov eax, 0xc28
mov ecx, 0xc
mov edx, 0x2c
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov ecx, 0xd10
cmp ax, cx
jne 0x100e703c
mov edx, 0x9a8
mov word [esi + 0x66b4], dx
mov eax, 0xcd8
mov ecx, 6
mov edx, 4
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov ecx, str.EOS_D2000C
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7067
test dl, dl
je 0x100e7063
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7067
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7047
xor eax, eax
jmp 0x100e706c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e708c
movzx eax, word [esi + 0x68f4]
mov dword [esi + 0x65b0], 0x61616161
mov dword [esi + 0x65f8], eax
jmp 0x100eab69
test edi, edi
je 0x100e73da
movzx eax, word [esi + 0x66b2]
mov ecx, 0xdbc
cmp ax, cx
jne 0x100e70e5
cmp dword [esi + 0x65b8], 0x80000189
mov edx, 0xe
mov eax, 0x2a
mov word [esi + 0x66b8], dx
mov word [esi + 0x66ba], ax
jne 0x100e737a
push str.EOS_350D
push 0x10166d74
push esi
call fcn.100e08a0
add esp, 0xc
jmp 0x100e737a
mov ecx, 0xe0c
cmp ax, cx
jne 0x100e70fc
mov edx, 0xc
lea eax, [edx + 0x3e]
jmp 0x100e736c
mov ecx, 0xf68
cmp ax, cx
jne 0x100e713b
mov edx, 0xa2a
mov word [esi + 0x66b4], dx
mov eax, 0xf44
mov ecx, 0x12
mov edx, 0x1e
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov ecx, 0xf6c
cmp ax, cx
jne 0x100e71b0
mov ecx, 0xfffe
add word [esi + 0x66b4], cx
cmp dword [esi + 0x65b8], 0x80000236
mov edx, 0x12
mov eax, 0x2a
mov word [esi + 0x66b8], dx
mov word [esi + 0x66ba], ax
jne 0x100e7188
push str.EOS_400D
push 0x10166d74
push esi
call fcn.100e08a0
add esp, 0xc
cmp dword [esi + 0x65b8], 0x80000254
jne 0x100e737a
push str.EOS_1000D
push 0x10166d74
push esi
call fcn.100e08a0
add esp, 0xc
jmp 0x100e737a
mov edx, 0xf90
cmp ax, dx
jne 0x100e71e3
mov eax, 0x14
mov ecx, 0x4c
mov edx, 0xfffe
add word [esi + 0x66b4], dx
mov word [esi + 0x66b8], ax
mov word [esi + 0x66ba], cx
jmp 0x100e737a
mov ecx, 0x1008
cmp ax, cx
jne 0x100e7222
mov edx, 0xbd0
mov eax, 0xfc0
mov ecx, 0xc
mov word [esi + 0x66b4], dx
mov edx, 0x30
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov ecx, 0x10d8
cmp ax, cx
jne 0x100e7278
mov ecx, 0xfffe
add word [esi + 0x66b4], cx
cmp dword [esi + 0x65b8], 0x80000176
mov edx, 0x12
mov eax, 0x16
mov word [esi + 0x66b8], dx
mov word [esi + 0x66ba], ax
jne 0x100e737a
push str.EOS_450D
push 0x10166d74
push esi
call fcn.100e08a0
add esp, 0xc
jmp 0x100e737a
mov edx, 0x117c
cmp ax, dx
jne 0x100e729f
mov eax, 0x22
mov ecx, 0x5a
mov word [esi + 0x66b8], ax
mov word [esi + 0x66ba], cx
jmp 0x100e737a
mov edx, 0x1180
cmp ax, dx
jne 0x100e72e8
mov eax, 0xcfe
mov word [esi + 0x66b4], ax
mov ecx, 0x1150
mov edx, 0xa
mov eax, 0xc
mov word [esi + 0x66b6], cx
mov word [esi + 0x66b8], dx
mov word [esi + 0x66ba], ax
mov dword [esi + 0x65b0], 0x49494949
jmp 0x100eab69
mov ecx, 0x4b8
cmp ax, cx
jne 0x100e7320
mov eax, 0x3e
mov word [esi + 0x66ba], ax
mov ax, word [esi + 0x66b6]
add ax, ax
add ax, ax
mov edx, 0x33
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b2], ax
jmp 0x100e7373
mov ecx, 0x5a8
cmp ax, cx
jne 0x100e7358
mov eax, 0x9e
mov word [esi + 0x66ba], ax
mov ax, word [esi + 0x66b6]
add ax, ax
add ax, ax
mov edx, 0x33
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b2], ax
jmp 0x100e7373
mov ecx, 0x13f4
cmp ax, cx
jne 0x100e739b
mov edx, 0xd
mov eax, 0x62
mov word [esi + 0x66ba], ax
mov word [esi + 0x66b8], dx
mov cx, word [esi + 0x66b8]
mov dx, word [esi + 0x66ba]
sub word [esi + 0x66b4], cx
sub word [esi + 0x66b6], dx
jmp 0x100eab69
mov ecx, 0x1650
cmp ax, cx
jne 0x100e73da
mov edx, 0xea8
mov word [esi + 0x66b4], dx
mov eax, 0x1608
mov ecx, 0x14
mov edx, 0x3e
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b8], cx
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov ecx, 0x1016c4b0
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7405
test dl, dl
je 0x100e7401
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7405
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e73e5
xor eax, eax
jmp 0x100e740a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7437
fld dword [esi + 0xe774]
fmul qword [0x1016c4a8]
fstp dword [esi + 0xe774]
fld dword [esi + 0xe77c]
fmul qword [0x1016c4a0]
fstp dword [esi + 0xe77c]
jmp 0x100eab69
mov ecx, 0x1016c49c
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7462
test dl, dl
je 0x100e745e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7462
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7442
xor eax, eax
jmp 0x100e7467
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7488
fld qword [0x101a3838]
mov eax, 0xfffc
add word [esi + 0x66b6], ax
fstp qword [esi + 0x66d8]
jmp 0x100eab69
mov ecx, str.D40X
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e74b3
test dl, dl
je 0x100e74af
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e74b3
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7493
xor eax, eax
jmp 0x100e74b8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eab03
mov ecx, 0x1016c490
lea eax, [esi + 0x64c5]
jmp 0x100e74d0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e74f0
test dl, dl
je 0x100e74ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e74f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e74d0
xor eax, eax
jmp 0x100e74f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eab03
mov ecx, 0x1016c48c
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7528
test dl, dl
je 0x100e7524
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7528
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7508
xor eax, eax
jmp 0x100e752d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eab03
mov ecx, 0x1016c488
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7560
test dl, dl
je 0x100e755c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7560
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7540
xor eax, eax
jmp 0x100e7565
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eaae9
mov ecx, str.D700
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7598
test dl, dl
je 0x100e7594
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7598
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7578
xor eax, eax
jmp 0x100e759d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eaae9
push 3
push 0x1016c47c
lea edi, [esi + 0x64c5]
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100eaad8
push 3
push 0x1016c478
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100eaad8
push 3
push 0x1016c474
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100eaad8
mov ecx, 0x1016c470
mov eax, edi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7620
test dl, dl
je 0x100e761c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7620
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7600
xor eax, eax
jmp 0x100e7625
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e763a
mov ecx, 0xffd6
add word [esi + 0x66b6], cx
jmp 0x100eab69
mov ecx, str.D100
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7665
test dl, dl
je 0x100e7661
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7665
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7645
xor eax, eax
jmp 0x100e766a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e76ba
cmp dword [esi + 0x65f4], 0x8799
jne 0x100eab69
push esi
call fcn.100d08d0
add esp, 4
test eax, eax
jne 0x100eab69
add word [esi + 0x66b6], 3
movzx eax, word [esi + 0x66b6]
or dword [esi + 0x66ac], 8
add eax, 3
mov dword [esi + 0x2e7fc], ebp
mov word [esi + 0x66b2], ax
jmp 0x100eab69
mov ecx, str.D200
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e76e5
test dl, dl
je 0x100e76e1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e76e5
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e76c5
xor eax, eax
jmp 0x100e76ea
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7711
mov edx, 1
mov eax, 0xfffc
add word [esi + 0x66b6], ax
mov word [esi + 0x66ba], dx
mov dword [esi + 0x65b0], ebx
jmp 0x100eab69
push 3
push 0x1016c45c
lea edi, [esi + 0x64c5]
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100e7748
mov ecx, 6
mov edx, 0xfff2
add word [esi + 0x66b6], dx
mov word [esi + 0x66ba], cx
jmp 0x100eab69
push 3
push 0x1016c458
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100e778d
movzx eax, word [esi + 0x66b6]
mov ecx, 0xcc0
cmp ax, cx
jne 0x100e777e
mov edx, 0xca0
mov word [esi + 0x66b6], dx
jmp 0x100eab69
add eax, 0xfffffff8
mov word [esi + 0x66b6], ax
jmp 0x100eab69
mov ecx, str.D300
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e77b4
test dl, dl
je 0x100e77b0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e77b4
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7794
xor eax, eax
jmp 0x100e77b9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e77ce
mov eax, 0xffe0
add word [esi + 0x66b6], ax
jmp 0x100eab69
mov ecx, 0x1016c440
lea eax, [esi + 0x64c5]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7800
test dl, dl
je 0x100e77fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7800
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e77e0
xor eax, eax
jmp 0x100e7805
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e781e
mov dword [esi + 0x66ac], 1
mov dword [esi + 0x65b0], ebx
jmp 0x100eab69
mov edi, dword [esp + 0x14]
cmp edi, 0x182004
jne 0x100e78ae
mov ecx, 0x3c3
mov edx, 0x507
mov eax, 0x660
push 3
push esi
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov word [esi + 0x66b2], ax
mov dword [esi + 0x2e7fc], 0x100d0d70
mov dword [esi + 0x65fc], 0x3f4
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x65b0], 0x1e1e1e1e
call fcn.100e0a10
fld dword [0x1016c43c]
fstp dword [esi + 0xe784]
add esp, 8
fld dword [0x1016c438]
fstp dword [esi + 0xe788]
fld dword [0x1016c434]
fstp dword [esi + 0xe790]
jmp 0x100eab69
cmp edi, 0x25a000
jne 0x100e7910
push str.E950
mov ecx, 0x4b3
mov edx, 0x650
mov eax, 0x800
push 0x10166d6c
push esi
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov word [esi + 0x66b2], ax
mov dword [esi + 0x2e7fc], 0x100d0d70
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x65b0], 0x4b4b4b4b
call fcn.100e08a0
add esp, 0xc
jmp 0x100eab69
cmp edi, 0x48d000
jne 0x100e7a01
mov eax, dword [esi + 0x65a0]
or eax, dword [esi + 0x65a4]
mov ecx, 0x604
mov edx, 0x810
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x65b0], 0xe1e1e1e1
mov dword [esi + 0x2e7fc], ebp
mov dword [esi + 0x66ac], 6
jne 0x100e798b
push esi
call fcn.100d0970
add esp, 4
test eax, eax
je 0x100e798b
mov ecx, dword [0x1016c424]
mov dword [esi + 0x64c5], ecx
mov dl, byte [0x1016c428]
mov byte [esi + 0x64c9], dl
mov ecx, 0x1016c424
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e79b6
test dl, dl
je 0x100e79b2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e79b6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7996
xor eax, eax
jmp 0x100e79bb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100eab69
push 3
push esi
mov dword [esi + 0x65b0], 0xb4b4b4b4
call fcn.100e0a10
fld dword [0x1016c420]
fstp dword [esi + 0xe784]
add esp, 8
fld dword [0x1016c41c]
fstp dword [esi + 0xe788]
fld dword [0x1016c418]
fstp dword [esi + 0xe78c]
jmp 0x100eab69
mov ecx, str.E2100
lea eax, [esi + 0x64c5]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7a30
test dl, dl
je 0x100e7a2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7a30
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7a10
xor eax, eax
jmp 0x100e7a35
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7a7b
mov eax, dword [esi + 0x65a0]
or eax, dword [esi + 0x65a4]
jne 0x100e7a54
push esi
call fcn.100d0a10
add esp, 4
test eax, eax
je 0x100e7aaf
mov ecx, 0x4b6
mov edx, 0x650
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov dword [esi + 0x66ac], 7
jmp 0x100eab69
mov ecx, 0x1016c408
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7aa6
test dl, dl
je 0x100e7aa2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7aa6
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7a86
xor eax, eax
jmp 0x100e7aab
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7ae1
mov eax, dword [0x1016c408]
mov dword [esi + 0x64c5], eax
mov cx, word [0x1016c40c]
mov word [esi + 0x64c9], cx
mov edx, 0x4b4
mov eax, 0x650
mov dword [esi + 0x65b0], 0x4b4b4b4b
jmp 0x100eab51
cmp edi, 0x48e000
jne 0x100e7bde
fld dword [0x1016c404]
mov eax, dword [esi + 0x65a0]
or eax, dword [esi + 0x65a4]
fstp dword [esi + 0xe784]
fld dword [0x1016c400]
mov ecx, 0x606
mov edx, 0x810
fstp dword [esi + 0xe78c]
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov dword [esi + 0x2e7fc], ebp
mov dword [esi + 0x66ac], 7
jne 0x100e7b44
push esi
call fcn.100d0ac0
add esp, 4
cmp byte [esi + 0x64c5], 0x45
lea edi, [esi + 0x64c5]
jne 0x100e7b73
lea ecx, [esi + 0x64c6]
push ecx
call fcn.10055bf8
add esp, 4
cmp eax, 0xe74
jge 0x100e7b73
mov dword [esi + 0x65b0], 0x49494949
mov ecx, str.Optio_33WR
mov eax, edi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7ba0
test dl, dl
je 0x100e7b9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7ba0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7b80
xor eax, eax
jmp 0x100e7ba5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100eab69
fld dword [0x1016c3fc]
mov dword [esi + 0x66c8], 1
fstp dword [esi + 0xe784]
mov dword [esi + 0x65b0], 0x16161616
fld dword [0x1016c3f8]
fstp dword [esi + 0xe78c]
jmp 0x100eab69
cmp edi, 0x599000
jne 0x100e7c83
mov ecx, dword [esi + 0x65a0]
or ecx, dword [esi + 0x65a4]
mov edx, 0x6ae
mov eax, 0x8f0
mov word [esi + 0x66b4], dx
mov word [esi + 0x66b6], ax
mov dword [esi + 0x65b0], 0x16161616
jne 0x100e7c63
push esi
call fcn.100d0cd0
add esp, 4
test eax, eax
je 0x100e7c63
mov edx, dword [0x10166d34]
mov dword [esi + 0x6485], edx
mov eax, dword [0x10166d38]
mov dword [esi + 0x6489], eax
mov ecx, dword [str.DiMAGE_Z2]
mov dword [esi + 0x64c5], ecx
mov edx, dword [0x1016c3f0]
mov dword [esi + 0x64c9], edx
mov ax, word [0x1016c3f4]
mov word [esi + 0x64cd], ax
xor ecx, ecx
cmp byte [esi + 0x6485], 0x4d
mov dword [esi + 0x2e7fc], ebp
sete cl
add ecx, 6
mov dword [esi + 0x66ac], ecx
jmp 0x100eab69
mov ecx, str.E4500
lea eax, [esi + 0x64c5]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7cb0
test dl, dl
je 0x100e7cac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7cb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7c90
xor eax, eax
jmp 0x100e7cb5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7cd2
mov edx, 0x6ac
mov eax, 0x8f0
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x100eab51
cmp edi, 0x718000
jne 0x100e7d01
mov ecx, 0x784
mov edx, 0xa10
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x100eab5f
cmp edi, 0x895000
jne 0x100e7d40
mov eax, 0x846
mov ecx, 0xb10
mov word [esi + 0x66b4], ax
mov word [esi + 0x66b6], cx
mov dword [esi + 0x65fc], 0xf83
mov dword [esi + 0x2e7fc], ebp
mov dword [esi + 0x66ac], 7
jmp 0x100eab69
mov ecx, str.FinePix_S5100
lea eax, [esi + 0x64c5]
jmp 0x100e7d50
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7d70
test dl, dl
je 0x100e7d6c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7d70
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7d50
xor eax, eax
jmp 0x100e7d75
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e89ec
mov ecx, str.FinePix_S5500
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7da8
test dl, dl
je 0x100e7da4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7da8
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7d88
xor eax, eax
jmp 0x100e7dad
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e89ec
mov ecx, str.FUJIFILM
lea eax, [esi + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7de0
test dl, dl
je 0x100e7ddc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7de0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7dc0
xor eax, eax
jmp 0x100e7de5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7f75
lea edi, [esi + 0x64cc]
mov ecx, str.S2Pro
mov eax, edi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7e20
test dl, dl
je 0x100e7e1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7e20
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7e00
xor eax, eax
jmp 0x100e7e25
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7e68
mov edx, dword [str._S2Pro]
mov dword [edi], edx
mov ax, word [0x1016c3b8]
mov word [edi + 4], ax
mov cl, byte [0x1016c3ba]
mov edx, 0x860
mov eax, 0xb40
mov byte [edi + 6], cl
mov word [esi + 0x66b4], dx
mov word [esi + 0x66b6], ax
mov dword [esi + 0x66c8], 6
jmp 0x100e7e72
mov dword [esi + 0x65fc], 0x3e00
cmp dword [esi + 0x6614], 2
jne 0x100e7e8e
cmp dword [esi + 0xa0], 0
je 0x100e7e8e
mov dword [esi + 0x65fc], 0x2f00
movzx ebp, word [esi + 0x66b0]
movzx ecx, word [esi + 0x66b4]
movzx edi, word [esi + 0x66b2]
movzx ebx, word [esi + 0x66b6]
mov eax, ebp
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov word [esi + 0x66b8], ax
movzx ecx, di
movzx edx, bx
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
cmp dword [esi + 0x6614], 2
mov word [esi + 0x66ba], ax
jne 0x100e7f0a
cmp dword [esi + 0x65e4], 0
je 0x100e7ef0
add edi, edi
mov word [esi + 0x66b2], di
movzx ecx, di
jmp 0x100e7ef5
imul ecx, ebp
add ecx, ecx
xor eax, eax
cmp eax, dword [esi + 0xa0]
sbb edx, edx
neg edx
imul edx, ecx
add dword [esi + 0x65c0], edx
movzx eax, word [esi + 0x66b4]
xor ecx, ecx
cmp dword [esi + 0x65e4], ecx
mov dx, bx
sete cl
shr dx, cl
movzx ecx, word [esi + 0x65e4]
shr ax, cl
movzx ecx, word [esi + 0x66b4]
add ax, dx
mov word [esi + 0x66b6], ax
mov word [esi + 0x66c2], dx
mov word [esi + 0x66b0], cx
mov dword [esi + 0x2e7fc], 0x100d0e80
dec eax
mov word [esi + 0x66b4], ax
test dl, 1
jne 0x100eab69
mov dword [esi + 0x65b0], 0x49494949
jmp 0x100eab69
mov ecx, str.RD175
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e7fa0
test dl, dl
je 0x100e7f9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e7fa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7f80
xor eax, eax
jmp 0x100e7fa5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e7fe4
mov edx, 0x3da
mov eax, 0x5fe
mov word [esi + 0x66b4], dx
mov word [esi + 0x66b6], ax
mov dword [esi + 0x65c0], 0x201
mov dword [esi + 0x65b0], 0x61616161
mov dword [esi + 0x2e7fc], 0x100d3de0
jmp 0x100eab69
mov ecx, str.KD_400Z
lea eax, [esi + 0x64c5]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e8010
test dl, dl
je 0x100e800c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e8010
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e7ff0
xor eax, eax
jmp 0x100e8015
sbb eax, eax
sbb eax, 0xffffffff
mov edi, fcn.100d3180
test eax, eax
jne 0x100e8047
mov ecx, 0x6b0
mov edx, 0x908
mov eax, 0x920
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov word [esi + 0x66b2], ax
jmp 0x100e81d1
mov ecx, str.KD_510Z
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e8072
test dl, dl
je 0x100e806e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e8072
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e8052
xor eax, eax
jmp 0x100e8077
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100e818c
push str.MINOLTA
lea ebx, [esi + 0x6485]
push ebx
call fcn.100557b0
add esp, 8
test eax, eax
jne 0x100e822e
push 8
push str.DiMAGE_A
lea ebp, [esi + 0x64c5]
push ebp
mov dword [esi + 0x2e7fc], edi
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100e8104
mov edx, 0xa40
mov eax, 0x7a4
mov ecx, 0xa2f
mov word [esi + 0x66b2], dx
jmp 0x100e81b2
mov word [esi + 0x66b6], cx
mov word [esi + 0x66b4], ax
add dword [esi + 0x65c0], 0xe
mov dword [esi + 0x65b0], 0x61616161
mov edx, 0x4d4d
mov dword [esi + 0x2e7fc], edi
mov dword [esi + 0x65fc], 0x3df
mov word [esi + 0x6274], dx
jmp 0x100eab69
mov ecx, str.ist_DS
lea eax, [esi + 0x64c5]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e8262
mov dword [esi + 0x2e7fc], fcn.100d3180
jmp 0x100eab69
mov eax, 0xffff
add word [esi + 0x66b6], ax
jmp 0x100eab69
mov ecx, 0xfffc
add word [esi + 0x66b6], cx
mov edx, 2
mov word [esi + 0x66ba], dx
jmp 0x100eab69
mov eax, 0xfffd
add word [esi + 0x66b4], ax
mov ecx, 0xfffc
add word [esi + 0x66b6], cx
jmp 0x100eab69
fld qword [0x1016c030]
mov eax, 0x3c0
mov edx, 0x305
lea ecx, [eax + 0x20]
mov dword [esi + 0x65b0], 0x1e4e1e4e
mov dword [esi + 0x2e7fc], 0x100ce760
fstp qword [esi + 0x66d8]
mov word [esi + 0x66b2], cx
mov word [esi + 0x66b4], dx
mov word [esi + 0x66b6], ax
mov dword [esi + 0x66d0], 4
cmp byte [esi + 0x64c5], 0
lea edi, [esi + 0x64c5]
jne 0x100eab96
movzx edx, word [esi + 0x66b4]
movzx eax, word [esi + 0x66b6]
push edx
push eax
push str._dx_d
push edi
call fcn.10056fab
add esp, 0x10
cmp dword [esi + 0x65b0], 0xffffffff
jne 0x100eaba9
mov dword [esi + 0x65b0], 0x94949494
cmp dword [esi + 0x6604], 0
je 0x100eabc3
push edi
lea eax, [esi + 0x6485]
push eax
push esi
call fcn.100e08a0
add esp, 0xc
mov eax, dword [esi + 0x65c4]
test eax, eax
je 0x100eac11
cmp word [esi + 0x66c6], 0
jne 0x100eac11
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 0
push eax
mov eax, dword [ecx + 8]
push edx
call eax
push 1
lea ecx, [esp + 0x28]
push ecx
push esi
call fcn.100cf0d0
add esp, 0x18
test eax, eax
je 0x100eac11
mov dx, word [esp + 0x20]
mov ax, word [esp + 0x1c]
mov word [esi + 0x66c4], dx
mov word [esi + 0x66c6], ax
mov eax, dword [esi + 0x2e7fc]
xor edi, edi
cmp eax, edi
je 0x100eac27
cmp word [esi + 0x66b4], 0x16
jae 0x100eac2d
mov dword [esi + 0x6614], edi
cmp eax, fcn.1007e790
jne 0x100eac57
mov ecx, dword [esi + 0x6278]
push ecx
push str._s:_You_must_link_dcraw_with_libjpeg___n
call fcn.1005a8d7
add eax, 0x40
push eax
call fcn.1015203d
add esp, 0xc
mov dword [esi + 0x6614], edi
cmp byte [esi + 0x6280], 0
lea ecx, [esi + 0x6280]
jne 0x100eac8a
cmp dword [esi + 0x66d0], 3
mov edx, 0x1016bff8
je 0x100eac80
mov edx, str.GMCY
lea esp, [esp]
mov al, byte [edx]
mov byte [ecx], al
inc edx
inc ecx
test al, al
jne 0x100eac80
cmp word [esi + 0x66b0], di
jne 0x100eaca1
mov dx, word [esi + 0x66b4]
mov word [esi + 0x66b0], dx
cmp word [esi + 0x66b2], di
jne 0x100eacb8
mov ax, word [esi + 0x66b6]
mov word [esi + 0x66b2], ax
mov eax, dword [esi + 0x65b0]
cmp eax, edi
je 0x100ead08
cmp dword [esi + 0x66d0], 3
jne 0x100ead08
xor ecx, ecx
lea ecx, [ecx]
mov edx, eax
shr edx, cl
and edx, 0xf
cmp dl, 9
jne 0x100eace5
mov edx, 2
shl edx, cl
or eax, edx
mov edx, eax
shr edx, cl
and edx, 0xf
cmp dl, 6
jne 0x100eacfa
mov edx, 8
shl edx, cl
or eax, edx
add ecx, 4
cmp ecx, 0x20
jb 0x100eacd0
mov dword [esi + 0x65b0], eax
or eax, 0xffffffff
cmp dword [esi + 0x66c8], eax
jne 0x100ead2d
mov ecx, dword [esi + 0x66cc]
mov dword [esi + 0x66c8], ecx
cmp ecx, eax
jne 0x100ead2d
mov dword [esi + 0x66c8], 0
mov ecx, dword [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1005392f
add esp, 0x7c
ret