Function at 0x4f9cf0
Capabilities:
Authenticate hmac

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov eax, dword [0x551aa8]
xor eax, ebp
mov dword [ebp - 4], eax
fldz
push ebx
push esi
mov esi, dword [ebp + 8]
or eax, 0xffffffff
fst dword [esi + 0x659c]
xor ebx, ebx
fst dword [esi + 0x6598]
xor edx, edx
fst dword [esi + 0x6594]
push 0x80
fstp dword [esi + 0x6590]
mov dword [esi + 0x66b0], edx
mov dword [esi + 0x65b0], eax
mov dword [esi + 0x66c8], eax
mov dword [esi + 0x66cc], eax
xor eax, eax
xor ecx, ecx
lea edx, [esi + 0x662c]
push ebx
push edx
mov word [esi + 0xe766], ax
mov dword [esi + 0x65e4], ebx
mov word [esi + 0x66c2], cx
mov dword [esi + 0x66b8], ecx
mov dword [esi + 0x66b4], eax
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 sub.MSVCR100.dll_memset
push 0x80
lea eax, [esi + 0x66e4]
push ebx
push eax
call sub.MSVCR100.dll_memset
fld1
mov eax, 1
fstp qword [esi + 0x66d8]
fldz
mov dword [esi + 0x6608], eax
mov dword [esi + 0x6604], eax
mov dword [esi + 0x6614], eax
mov eax, 0x7fffffff
add esp, 0x18
xor ecx, ecx
mov dword [esi + 0x6628], eax
mov dword [esi + 0x6624], eax
mov dword [esi + 0x66c4], ecx
mov dword [esi + 0x65d0], ebx
mov dword [esi + 0x65c4], ebx
mov dword [esi + 0x2e800], ebx
mov dword [esi + 0x2e7fc], ebx
mov dword [esi + 0x2e7f4], 0x4f6400
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
lea eax, [esi + 0xe784]
xor edx, edx
cmp ecx, 1
sete dl
cmp ecx, 3
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
sbb edx, edx
neg edx
mov dword [ebp - 0x78], edx
xor edx, edx
fstp dword [eax - 0x10]
fild dword [ebp - 0x78]
cmp ecx, ebx
sete dl
fstp dword [eax]
fst dword [eax + 0x10]
fst dword [eax + 0x20]
fst dword [eax + 0x30]
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
xor edx, edx
cmp ecx, 1
sete dl
fstp dword [eax + 0x40]
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
xor edx, edx
cmp ecx, 2
sete dl
fstp dword [eax + 0x50]
inc ecx
add eax, 4
mov dword [ebp - 0x78], edx
fild dword [ebp - 0x78]
fstp dword [eax + 0x5c]
cmp ecx, 4
jb 0x4f9e8a
fstp st(0)
mov dword [esi + 0x66d0], 3
mov dword [esi + 0x65f0], 0xc
xor eax, eax
lea ecx, [esi + 0x6764]
lea esp, [esp]
mov word [ecx], ax
inc eax
add ecx, 2
cmp eax, 0x4000
jb 0x4f9f10
push edi
push esi
call fcn.004e0df0
push esi
mov word [esi + 0x6274], ax
call fcn.004e0e90
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, [ebp - 0x24]
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, [ebp - 0x24]
push 0x20
push ecx
mov dword [ebp - 0x7c], eax
call fcn.004e0c30
add esp, 0x44
cmp eax, ebx
jne 0x4fa58f
push 4
push str.IIII
lea edx, [ebp - 0x24]
push 0x20
push edx
call fcn.004e0c30
add esp, 0x10
cmp eax, ebx
jne 0x4fa58f
movzx eax, word [esi + 0x6274]
mov ecx, 0x4949
cmp ax, cx
je 0x4fa550
mov edx, 0x4d4d
cmp ax, dx
je 0x4fa550
cmp dword [ebp - 0x24], 0xe1ffd8ff
jne 0x4fa036
cmp dword [ebp - 0x1e], 0x66697845
jne 0x4fa036
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.004e0df0
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 0x4fa02b
push 0xc
push esi
call fcn.004f8b30
add esp, 8
mov dword [esi + 0x65c4], ebx
jmp 0x4fa5ae
cmp dword [ebp - 0xb], 0x43455241
jne 0x4fa105
cmp byte [ebp - 7], 0x4f
jne 0x4fa105
cmp byte [ebp - 6], 0x59
jne 0x4fa105
cmp byte [ebp - 5], 0x4b
jne 0x4fa105
mov ecx, dword [str.Contax]
mov dword [esi + 0x6485], ecx
mov dx, word [0x53df98]
mov word [esi + 0x6489], dx
mov al, byte [0x53df9a]
mov byte [esi + 0x648b], al
mov ecx, dword [str.N_Digital]
mov dword [esi + 0x64c5], ecx
mov edx, dword [0x53df8c]
mov ecx, dword [esi]
mov dword [esi + 0x64c9], edx
mov ax, word [0x53df90]
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.004f22e0
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.004e0e90
add esp, 4
mov dword [ebp - 0x78], eax
fild dword [ebp - 0x78]
test eax, eax
jns 0x4fa0ed
fadd dword [0x546df0]
mov ecx, edi
shr ecx, 1
xor ecx, edi
inc edi
fstp dword [esi + ecx*4 + 0xe774]
cmp edi, 4
jb 0x4fa0d4
jmp 0x4fa5ae
mov ecx, 0x53df84
lea eax, [ebp - 0x24]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fa130
test dl, dl
je 0x4fa12c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fa130
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fa110
xor eax, eax
jmp 0x4fa135
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fa190
mov edx, dword [str.Logitech]
mov dword [esi + 0x6485], edx
mov eax, dword [0x53df7c]
mov dword [esi + 0x6489], eax
mov cl, byte [0x53df80]
mov byte [esi + 0x648d], cl
mov edx, dword [str.Fotoman_Pixtura]
mov dword [esi + 0x64c5], edx
mov eax, dword [0x53df6c]
mov dword [esi + 0x64c9], eax
mov ecx, dword [0x53df70]
mov dword [esi + 0x64cd], ecx
mov edx, dword [0x53df74]
mov dword [esi + 0x64d1], edx
jmp 0x4fa5ae
mov ecx, str.qktk
lea eax, [ebp - 0x24]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fa1b8
test dl, dl
je 0x4fa1b4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fa1b8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fa198
xor eax, eax
jmp 0x4fa1bd
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fa210
mov eax, dword [str.Apple]
mov dword [esi + 0x6485], eax
mov cx, word [0x53df5c]
mov word [esi + 0x6489], cx
mov edx, dword [str.QuickTake_100]
mov dword [esi + 0x64c5], edx
mov eax, dword [0x53df4c]
mov dword [esi + 0x64c9], eax
mov ecx, dword [0x53df50]
mov dword [esi + 0x64cd], ecx
mov dx, word [0x53df54]
mov word [esi + 0x64d1], dx
jmp 0x4fa5ae
mov ecx, str.qktn
lea eax, [ebp - 0x24]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fa238
test dl, dl
je 0x4fa234
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fa238
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fa218
xor eax, eax
jmp 0x4fa23d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fa290
mov eax, dword [str.Apple]
mov dword [esi + 0x6485], eax
mov cx, word [0x53df5c]
mov word [esi + 0x6489], cx
mov edx, dword [str.QuickTake_150]
mov dword [esi + 0x64c5], edx
mov eax, dword [0x53df34]
mov dword [esi + 0x64c9], eax
mov ecx, dword [0x53df38]
mov dword [esi + 0x64cd], ecx
mov dx, word [0x53df3c]
mov word [esi + 0x64d1], dx
jmp 0x4fa5ae
mov eax, 8
xor ecx, ecx
jmp 0x4fa2a0
mov edx, dword [ebp + ecx - 0x24]
cmp edx, dword [ecx + str.FUJIFILM]
jne 0x4fa379
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x4fa2a0
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.004e0e90
push esi
mov dword [esi + 0x65c4], eax
call fcn.004e0e90
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.004e0e90
push eax
push esi
call fcn.004f4240
add esp, 0x2c
cmp dword [esi + 0x65c4], 0x78
jle 0x4fa347
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.004e0e90
xor ecx, ecx
add esp, 0x10
cmp eax, ebx
setne cl
add dword [esi + 0x6614], ecx
cmp dword [esi + 0x6614], 2
jne 0x4fa347
cmp dword [esi + 0xa0], ebx
je 0x4fa347
push eax
push esi
call fcn.004f4240
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.004e0e90
mov edx, dword [esi + 0x65c4]
add edx, 0xc
push edx
push esi
mov dword [esi + 0x65c0], eax
call fcn.004f8b30
add esp, 0x18
jmp 0x4fa5ae
mov eax, dword [ebp - 0x24]
cmp eax, 0x46464952
jne 0x4fa39e
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.004f43b0
add esp, 0x10
jmp 0x4fa5ae
cmp eax, 0x1000100
jne 0x4fa457
cmp byte [ebp - 0x20], bl
jne 0x4fa457
cmp byte [ebp - 0x1f], 0x40
jne 0x4fa457
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.004e0df0
movzx ecx, ax
add esp, 0x40
push esi
mov dword [esi + 0x65c0], ecx
call fcn.004e0df0
push esi
call fcn.004e0df0
push esi
mov word [esi + 0x66b2], ax
call fcn.004e0df0
add esp, 0xc
mov word [esi + 0x66b0], ax
mov dword [esi + 0x2e7fc], 0x4e7000
mov dword [esi + 0x65b0], 0x61616161
jmp 0x4fa5ae
mov eax, 9
mov ecx, str.DSC_Image
lea edi, [ebp - 0x24]
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x4fa48c
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x4fa464
mov al, byte [ecx]
cmp al, byte [edi]
jne 0x4fa48c
push esi
call fcn.004f3730
add esp, 4
jmp 0x4fa5ae
mov eax, dword [ebp - 0x24]
cmp eax, 0x44415750
jne 0x4fa4a4
push esi
call fcn.004f3ae0
add esp, 4
jmp 0x4fa5ae
cmp eax, 0x4d524d00
jne 0x4fa4b7
push ebx
push esi
call fcn.004f9160
jmp 0x4fa5ab
cmp eax, 0x62564f46
jne 0x4fa4cc
push esi
call fcn.004f9720
add esp, 4
jmp 0x4fa5ae
cmp al, 0x43
jne 0x4fa4e3
cmp ah, 0x49
jne 0x4fa4e3
push esi
call fcn.004f4740
add esp, 4
jmp 0x4fa5ae
mov edx, 0x53c214
lea ebx, [esi + 0x64c5]
lea edi, [esi + 0x6485]
sub ebx, 0x53c220
mov dword [ebp - 0x80], edx
sub edi, edx
mov dword [ebp - 0x78], 0x44
mov ecx, dword [ebp - 0x7c]
cmp ecx, dword [edx - 4]
jne 0x4fa53b
mov eax, edx
mov cl, byte [eax]
mov byte [edi + eax], cl
inc eax
test cl, cl
jne 0x4fa510
lea eax, [edx + 0xc]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [ebx + eax], cl
inc eax
test cl, cl
jne 0x4fa520
cmp byte [edx + 0x1f], cl
je 0x4fa53b
push esi
call fcn.004f9370
mov edx, dword [ebp - 0x80]
add esp, 4
add edx, 0x24
sub edi, 0x24
sub ebx, 0x24
dec dword [ebp - 0x78]
mov dword [ebp - 0x80], edx
jne 0x4fa506
xor ebx, ebx
jmp 0x4fa5ae
mov eax, 8
xor ecx, ecx
jmp 0x4fa560
mov edx, dword [ebp + ecx - 0x1e]
cmp edx, dword [ecx + str.HEAPCCDR]
jne 0x4fa5a4
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x4fa560
mov eax, dword [ebp - 0x7c]
sub eax, edi
push eax
push edi
push esi
mov dword [esi + 0x65c0], edi
call fcn.004f3070
add esp, 0xc
jmp 0x4fa5ae
mov edi, eax
lea ecx, [ebp - 0x24]
sub edi, ecx
push edi
push esi
call fcn.004f3ce0
add esp, 8
cmp edi, ebx
je 0x4fa5ae
push ebx
push esi
call fcn.004f8b30
add esp, 8
cmp byte [esi + 0x6485], 0
jne 0x4fa5e0
mov edx, dword [ebp - 0x7c]
push edx
push ebx
push esi
call fcn.004f4640
add esp, 0xc
cmp byte [esi + 0x6485], 0
jne 0x4fa5e0
push ebx
push esi
mov dword [esi + 0x6614], ebx
call fcn.004f95c0
add esp, 8
mov edi, edi
mov eax, dword [ebx + 0x5518c4]
push eax
lea edi, [esi + 0x6485]
push edi
call sub.MSVCR100.dll_strstr
add esp, 8
test eax, eax
je 0x4fa60c
mov ecx, dword [ebx + 0x5518c4]
mov edx, edi
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x4fa602
add ebx, 4
cmp ebx, 0x3c
jb 0x4fa5e0
push 5
push str.KODAK
lea edi, [esi + 0x6485]
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4fa63a
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 0x4fa640
sub eax, edx
cmp byte [eax + esi + 0x6484], 0x20
lea eax, [eax + esi + 0x6484]
jne 0x4fa669
lea ebx, [ebx]
mov byte [eax], 0
dec eax
cmp byte [eax], 0x20
je 0x4fa660
lea eax, [esi + 0x64c5]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4fa672
sub eax, edx
cmp byte [eax + esi + 0x64c4], 0x20
lea eax, [eax + esi + 0x64c4]
jne 0x4fa699
lea esp, [esp]
mov byte [eax], 0
dec eax
cmp byte [eax], 0x20
je 0x4fa690
lea eax, [esi + 0x6485]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4fa6a2
sub eax, edx
mov edi, eax
push edi
lea eax, [esi + 0x6485]
push eax
lea ebx, [esi + 0x64c5]
push ebx
call sub.MSVCR100.dll__strnicmp
add esp, 0xc
test eax, eax
jne 0x4fa6ee
mov cl, byte [esi + edi + 0x64c5]
inc edi
cmp cl, 0x20
jne 0x4fa6ee
mov edx, 0x40
sub edx, edi
push edx
lea eax, [esi + edi + 0x64c5]
push eax
push ebx
call sub.MSVCR100.dll_memmove
add esp, 0xc
push 0xf
push str.Digital_Camera
push ebx
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4fa71a
lea eax, [esi + 0x64d4]
sub ebx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [ebx + eax], cl
inc eax
test cl, cl
jne 0x4fa710
cmp dword [esi + 0x6614], 0
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
je 0x4fe93a
cmp dword [esi + 0x65fc], 0
jne 0x4fa767
mov ecx, dword [esi + 0x65f0]
mov edx, 1
shl edx, cl
dec edx
mov dword [esi + 0x65fc], edx
cmp word [esi + 0x66b4], 0
jne 0x4fa77f
mov ax, word [esi + 0x66b0]
mov word [esi + 0x66b4], ax
cmp word [esi + 0x66b6], 0
jne 0x4fa797
mov cx, word [esi + 0x66b2]
mov word [esi + 0x66b6], cx
movzx ecx, word [esi + 0x66c2]
test cx, cx
je 0x4fa7c4
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 0x4fa7ed
mov eax, 0xf60
cmp word [esi + 0x66b6], ax
jne 0x4fa7ed
lea edx, [eax - 0x28]
mov dword [esi + 0x66b4], 0xf380a38
mov eax, 0xc40
cmp word [esi + 0x66b4], ax
jne 0x4fa816
mov ecx, 0x1300
cmp word [esi + 0x66b6], cx
jne 0x4fa816
lea edx, [eax - 0xc]
mov dword [esi + 0x66b4], 0x12500c34
mov ecx, 0xbc6
cmp word [esi + 0x66b4], cx
jne 0x4fa83e
mov edx, 0x1000
cmp word [esi + 0x66b6], dx
jne 0x4fa83e
mov eax, 0xfae
mov word [esi + 0x66b6], ax
cmp dword [esi + 0x6618], 0
je 0x4fa8ac
or ebx, 0xffffffff
cmp dword [esi + 0x65b0], ebx
jne 0x4fa85c
mov dword [esi + 0x65b0], 0
cmp dword [esi + 0x65b0], 0
je 0x4fa873
mov ecx, dword [esi + 0x65ec]
mov dword [esi + 0x6614], ecx
jmp 0x4fa87f
mov edx, dword [esi + 0x65ec]
mov dword [esi + 0x66d0], edx
mov eax, dword [esi + 0x65f4]
cmp eax, 1
jne 0x4fa894
mov dword [esi + 0x2e7fc], 0x4e3cd0
cmp eax, 7
jne 0x4fe848
mov dword [esi + 0x2e7fc], 0x4e3b50
jmp 0x4fe848
mov ecx, 0x538678
lea eax, [esi + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fa8d7
test dl, dl
je 0x4fa8d3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fa8d7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fa8b7
xor eax, eax
jmp 0x4fa8dc
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
test eax, eax
sete cl
xor ebx, ebx
mov edi, ecx
cmp edi, ebx
je 0x4fa912
lea eax, [ebx + 8]
xor ecx, ecx
mov edx, dword [ebp + ecx - 0x1e]
cmp edx, dword [ecx + str.HEAPCCDR]
jne 0x4fa940
sub eax, 4
add ecx, 4
cmp eax, 4
jae 0x4fa8f0
mov eax, 0x4e2760
mov dword [esi + 0x2e7fc], eax
mov ecx, 0x538670
lea eax, [esi + 0x6485]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fa947
test dl, dl
je 0x4fa93c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fa947
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fa920
xor eax, eax
jmp 0x4fa94c
mov eax, 0x4e3200
jmp 0x4fa90c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fa983
cmp dword [esi + 0x2e7fc], ebx
jne 0x4fa962
mov dword [esi + 0x2e7fc], 0x4e6bd0
cmp byte [esi + 0x64c5], 0x45
jne 0x4fa983
xor eax, eax
cmp dword [esi + 0x65c0], ebx
sete al
add eax, eax
add eax, eax
or eax, 2
or dword [esi + 0x66ac], eax
mov ecx, 0x538628
lea eax, [esi + 0x6485]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fa9b0
test dl, dl
je 0x4fa9ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fa9b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fa990
xor eax, eax
jmp 0x4fa9b5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fa9cd
mov dword [esi + 0x2e7fc], 0x4e6bd0
mov dword [esi + 0x65fc], 0xf7f
cmp dword [esi + 0x661c], ebx
jne 0x4fe7a1
cmp edi, ebx
je 0x4faa2c
cmp dword [esi + 0x65f0], 0xf
jne 0x4faa2c
movzx eax, word [esi + 0x66b6]
mov ecx, eax
cmp ecx, 0xd10
je 0x4faa01
cmp ecx, 0xf20
je 0x4faa0b
jmp 0x4faa17
add eax, 0xffffffbe
mov word [esi + 0x66b6], ax
mov ecx, 0xfffa
add word [esi + 0x66b6], cx
mov dword [esi + 0x65b0], ebx
mov dword [esi + 0x2e7fc], 0x4e3460
jmp 0x4fe7a1
mov ecx, 0x53def8
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4faa57
test dl, dl
je 0x4faa53
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4faa57
add eax, 2
add ecx, 2
test dl, dl
jne 0x4faa37
xor eax, eax
jmp 0x4faa5c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4faa8e
fld qword [0x53def0]
mov dword [esi + 0x66b4], 0x3560265
mov ecx, 0x380
mov dword [esi + 0x65b0], 0xe1e4e1e4
mov dword [esi + 0x2e7fc], 0x4e1bf0
jmp 0x4fe78a
mov ecx, str.PowerShot_A5
lea eax, [esi + 0x64c5]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4faac0
test dl, dl
je 0x4faabc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4faac0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4faaa0
xor eax, eax
jmp 0x4faac5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe761
mov ecx, str.PowerShot_A5_Zoom
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4faaf8
test dl, dl
je 0x4faaf4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4faaf8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4faad8
xor eax, eax
jmp 0x4faafd
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe761
mov ecx, str.PowerShot_A50
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fab30
test dl, dl
je 0x4fab2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fab30
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fab10
xor eax, eax
jmp 0x4fab35
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fab61
mov dword [esi + 0x66b4], 0x50a03c8
mov ecx, 0x528
mov dword [esi + 0x65b0], 0x1b4e4b1e
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe790
mov ecx, str.PowerShot_Pro70
lea eax, [esi + 0x64c5]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fab90
test dl, dl
je 0x4fab8c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fab90
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fab70
xor eax, eax
jmp 0x4fab95
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fabbc
mov dword [esi + 0x66b4], 0x6100400
mov dword [esi + 0x65b0], 0x1e4b4e1b
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe797
mov ecx, str.PowerShot_SD300
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fabe7
test dl, dl
je 0x4fabe3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fabe7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fabc7
xor eax, eax
jmp 0x4fabec
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fac1d
mov dword [esi + 0x66b4], 0x92806d8
mov dword [esi + 0x66b0], 0x96006e6
mov dword [esi + 0x66b8], 0xc000c
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A460
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fac48
test dl, dl
je 0x4fac44
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fac48
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fac28
xor eax, eax
jmp 0x4fac4d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fac7e
mov dword [esi + 0x66b4], 0xa3807a8
mov dword [esi + 0x66b0], 0xa6807b0
mov dword [esi + 0x66b8], 0x40004
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A530
lea eax, [esi + 0x64c5]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4facb0
test dl, dl
je 0x4facac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4facb0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fac90
xor eax, eax
jmp 0x4facb5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4facec
mov dword [esi + 0x66b4], 0xa3c07c0
mov dword [esi + 0x66b0], 0xa7007c8
mov dword [esi + 0x66b8], 0xa0006
mov dword [esi + 0x2e7fc], 0x4e2220
mov dword [esi + 0x6604], ebx
jmp 0x4fe7a1
mov ecx, str.PowerShot_A610
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fad17
test dl, dl
je 0x4fad13
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fad17
add eax, 2
add ecx, 2
test dl, dl
jne 0x4facf7
xor eax, eax
jmp 0x4fad1c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fad74
push esi
call fcn.004e21d0
add esp, 4
test eax, eax
je 0x4fad47
mov ecx, dword [str.S2_IS]
mov dword [esi + 0x64cf], ecx
mov dx, word [0x53de64]
mov word [esi + 0x64d3], dx
mov dword [esi + 0x66b4], 0xa3807a8
mov dword [esi + 0x66b0], 0xa7007b0
mov dword [esi + 0x66b8], 0xc0008
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A620
lea eax, [esi + 0x64c5]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fada0
test dl, dl
je 0x4fad9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fada0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fad80
xor eax, eax
jmp 0x4fada5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fadd6
mov dword [esi + 0x66b4], 0xc280918
mov dword [esi + 0x66b0], 0xc500924
mov dword [esi + 0x66b8], 0x24000c
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A720
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fae01
test dl, dl
je 0x4fadfd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fae01
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fade1
xor eax, eax
jmp 0x4fae06
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fae37
mov dword [esi + 0x66b4], 0xce209a8
mov dword [esi + 0x66b0], 0xd0809b0
mov dword [esi + 0x66b8], 0x60005
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A630
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fae62
test dl, dl
je 0x4fae5e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fae62
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fae42
xor eax, eax
jmp 0x4fae67
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fae98
mov dword [esi + 0x66b4], 0xcd809a8
mov dword [esi + 0x66b0], 0xd1009b4
mov dword [esi + 0x66b8], 0xc0006
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A640
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4faec3
test dl, dl
je 0x4faebf
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4faec3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4faea3
xor eax, eax
jmp 0x4faec8
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4faef9
mov dword [esi + 0x66b4], 0xe580ac8
mov dword [esi + 0x66b0], 0xe980ad4
mov dword [esi + 0x66b8], 0xc0006
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_A650
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4faf24
test dl, dl
je 0x4faf20
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4faf24
add eax, 2
add ecx, 2
test dl, dl
jne 0x4faf04
xor eax, eax
jmp 0x4faf29
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4faf5a
mov dword [esi + 0x66b4], 0xfc00bd0
mov dword [esi + 0x66b0], 0x10080be8
mov dword [esi + 0x66b8], 0x30000c
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_S3_IS
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4faf85
test dl, dl
je 0x4faf81
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4faf85
add eax, 2
add ecx, 2
test dl, dl
jne 0x4faf65
xor eax, eax
jmp 0x4faf8a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fafbb
mov dword [esi + 0x66b4], 0xb180850
mov dword [esi + 0x66b0], 0xb480858
mov dword [esi + 0x66b8], 0x2c0008
mov dword [esi + 0x2e7fc], 0x4e2220
jmp 0x4fe7a1
mov ecx, str.PowerShot_Pro90_IS
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fafe6
test dl, dl
je 0x4fafe2
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fafe6
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fafc6
xor eax, eax
jmp 0x4fafeb
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fb00a
mov eax, 0x768
mov word [esi + 0x66b6], ax
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x4fe797
cmp edi, ebx
je 0x4fb178
movzx eax, word [esi + 0x66b2]
mov ecx, 0x860
cmp ax, cx
jne 0x4fb083
mov dword [esi + 0x66b4], 0x828060e
mov edx, 4
mov dword [esi + 0x66b8], 0x40008
mov ecx, str.PowerShot_G1
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb067
test dl, dl
je 0x4fb063
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb067
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb047
xor eax, eax
jmp 0x4fb06c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fe7a1
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x4fe797
mov ecx, 0x8b0
cmp ax, cx
jne 0x4fb0a6
mov dword [esi + 0x66b4], 0x88005a8
mov dword [esi + 0x66b8], 0x300006
jmp 0x4fe7a1
mov ecx, 0x948
cmp ax, cx
jne 0x4fb0c9
mov dword [esi + 0x66b4], 0x90806b8
mov dword [esi + 0x66b8], 0xc0006
jmp 0x4fe7a1
mov ecx, 0xa70
cmp ax, cx
jne 0x4fb0ec
mov dword [esi + 0x66b4], 0xa3807a8
mov dword [esi + 0x66b8], 0xc0006
jmp 0x4fe7a1
mov ecx, 0xc50
cmp ax, cx
jne 0x4fb132
cmp dword [esi + 0x65b8], 0x80000170
mov dword [esi + 0x66b4], 0xc100808
mov dword [esi + 0x66b8], 0x40000c
jne 0x4fe7a1
push str.EOS_300D
push 0x538678
push esi
call fcn.004f4a60
add esp, 0xc
jmp 0x4fe7a1
mov ecx, 0xc58
cmp ax, cx
jne 0x4fb155
mov dword [esi + 0x66b4], 0xc280918
mov dword [esi + 0x66b8], 0x2c000c
jmp 0x4fe7a1
mov ecx, 0xd10
cmp ax, cx
jne 0x4fb178
mov dword [esi + 0x66b4], 0xcd809a8
mov dword [esi + 0x66b8], 0x40006
jmp 0x4fe7a1
mov ecx, str.EOS_D2000C
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb1a3
test dl, dl
je 0x4fb19f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb1a3
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb183
xor eax, eax
jmp 0x4fb1a8
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fb1c8
movzx eax, word [esi + 0x68f4]
mov dword [esi + 0x65b0], 0x61616161
mov dword [esi + 0x65f8], eax
jmp 0x4fe7a1
cmp edi, ebx
je 0x4fb429
movzx eax, word [esi + 0x66b2]
mov ecx, 0xdbc
cmp ax, cx
jne 0x4fb213
cmp dword [esi + 0x65b8], 0x80000189
mov dword [esi + 0x66b8], 0x2a000e
jne 0x4fb3e5
push str.EOS_350D
push 0x538678
push esi
call fcn.004f4a60
add esp, 0xc
jmp 0x4fb3e5
mov ecx, 0xe0c
cmp ax, cx
jne 0x4fb22c
mov dword [esi + 0x66b8], 0x4a000c
jmp 0x4fb3e5
mov ecx, 0xf68
cmp ax, cx
jne 0x4fb24f
mov dword [esi + 0x66b4], 0xf440a2a
mov dword [esi + 0x66b8], 0x1e0012
jmp 0x4fe7a1
mov ecx, 0xf6c
cmp ax, cx
jne 0x4fb2b6
mov ecx, 0xfffe
add word [esi + 0x66b4], cx
cmp dword [esi + 0x65b8], 0x80000236
mov dword [esi + 0x66b8], 0x2a0012
jne 0x4fb28e
push str.EOS_400D
push 0x538678
push esi
call fcn.004f4a60
add esp, 0xc
cmp dword [esi + 0x65b8], 0x80000254
jne 0x4fb3e5
push str.EOS_1000D
push 0x538678
push esi
call fcn.004f4a60
add esp, 0xc
jmp 0x4fb3e5
mov edx, 0xf90
cmp ax, dx
jne 0x4fb2db
mov edx, 0xfffe
add word [esi + 0x66b4], dx
mov dword [esi + 0x66b8], 0x4c0014
jmp 0x4fb3e5
mov ecx, 0x1008
cmp ax, cx
jne 0x4fb2fe
mov dword [esi + 0x66b4], 0xfc00bd0
mov dword [esi + 0x66b8], 0x30000c
jmp 0x4fe7a1
mov ecx, 0x10d8
cmp ax, cx
jne 0x4fb346
mov ecx, 0xfffe
add word [esi + 0x66b4], cx
cmp dword [esi + 0x65b8], 0x80000176
mov dword [esi + 0x66b8], 0x160012
jne 0x4fb3e5
push str.EOS_450D
push 0x538678
push esi
call fcn.004f4a60
add esp, 0xc
jmp 0x4fb3e5
mov edx, 0x117c
cmp ax, dx
jne 0x4fb35f
mov dword [esi + 0x66b8], 0x5a0022
jmp 0x4fb3e5
mov edx, 0x1180
cmp ax, dx
jne 0x4fb38c
mov dword [esi + 0x66b4], 0x11500cfe
mov dword [esi + 0x66b8], 0xc000a
mov dword [esi + 0x65b0], 0x49494949
jmp 0x4fe7a1
mov ecx, 0x4b8
cmp ax, cx
jne 0x4fb3bb
mov dword [esi + 0x66b8], 0x3e0033
movzx eax, word [esi + 0x66b6]
add eax, eax
add eax, eax
mov word [esi + 0x66b6], ax
mov word [esi + 0x66b2], ax
jmp 0x4fb3e5
mov ecx, 0x5a8
cmp ax, cx
jne 0x4fb3d1
mov dword [esi + 0x66b8], 0x9e0033
jmp 0x4fb3a0
mov ecx, 0x13f4
cmp ax, cx
jne 0x4fb406
mov dword [esi + 0x66b8], 0x62000d
mov cx, word [esi + 0x66b8]
mov dx, word [esi + 0x66ba]
sub word [esi + 0x66b4], cx
sub word [esi + 0x66b6], dx
jmp 0x4fe7a1
mov ecx, 0x1650
cmp ax, cx
jne 0x4fb429
mov dword [esi + 0x66b4], 0x16080ea8
mov dword [esi + 0x66b8], 0x3e0014
jmp 0x4fe7a1
mov ecx, 0x53dd90
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb454
test dl, dl
je 0x4fb450
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb454
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb434
xor eax, eax
jmp 0x4fb459
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fb486
fld dword [esi + 0xe774]
fmul qword [0x53dd88]
fstp dword [esi + 0xe774]
fld dword [esi + 0xe77c]
fmul qword [0x53dd80]
fstp dword [esi + 0xe77c]
jmp 0x4fe7a1
mov ecx, 0x53dd7c
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb4b1
test dl, dl
je 0x4fb4ad
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb4b1
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb491
xor eax, eax
jmp 0x4fb4b6
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x4fb4d7
fld qword [0x546e00]
mov eax, 0xfffc
add word [esi + 0x66b6], ax
fstp qword [esi + 0x66d8]
jmp 0x4fe7a1
mov ecx, str.D40X
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb502
test dl, dl
je 0x4fb4fe
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb502
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb4e2
xor eax, eax
jmp 0x4fb507
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe747
mov ecx, 0x53dd70
lea eax, [esi + 0x64c5]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb540
test dl, dl
je 0x4fb53c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb540
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb520
xor eax, eax
jmp 0x4fb545
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe747
mov ecx, 0x53dd6c
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb578
test dl, dl
je 0x4fb574
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb578
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb558
xor eax, eax
jmp 0x4fb57d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe747
mov ecx, 0x53dd68
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb5b0
test dl, dl
je 0x4fb5ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb5b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb590
xor eax, eax
jmp 0x4fb5b5
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe72d
mov ecx, str.D700
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb5e8
test dl, dl
je 0x4fb5e4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb5e8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb5c8
xor eax, eax
jmp 0x4fb5ed
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4fe72d
push 3
push 0x53dd5c
lea edi, [esi + 0x64c5]
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4fe71c
push 3
push 0x53dd58
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4fe71c
push 3
push 0x53dd54
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4fe71c
mov ecx, 0x53dd50
mov eax, edi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb670
test dl, dl
je 0x4fb66c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb670
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb650
xor eax, eax
jmp 0x4fb675
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fb68a
mov ecx, 0xffd6
add word [esi + 0x66b6], cx
jmp 0x4fe7a1
mov ecx, str.D100
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb6b5
test dl, dl
je 0x4fb6b1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb6b5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb695
xor eax, eax
jmp 0x4fb6ba
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fb710
cmp dword [esi + 0x65f4], 0x8799
jne 0x4fe7a1
push esi
call fcn.004e4450
add esp, 4
test eax, eax
jne 0x4fe7a1
movzx eax, word [esi + 0x66b6]
or dword [esi + 0x66ac], 8
add eax, 3
mov word [esi + 0x66b6], ax
add eax, 3
mov dword [esi + 0x2e7fc], 0x4e6bd0
mov word [esi + 0x66b2], ax
jmp 0x4fe7a1
mov ecx, str.D200
lea eax, [esi + 0x64c5]
jmp 0x4fb720
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb740
test dl, dl
je 0x4fb73c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb740
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb720
xor eax, eax
jmp 0x4fb745
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fb770
mov edx, 1
mov eax, 0xfffc
add word [esi + 0x66b6], ax
mov word [esi + 0x66ba], dx
mov dword [esi + 0x65b0], 0x94949494
jmp 0x4fe7a1
push 3
push 0x53dd3c
lea edi, [esi + 0x64c5]
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4fb7a7
mov ecx, 6
mov edx, 0xfff2
add word [esi + 0x66b6], dx
mov word [esi + 0x66ba], cx
jmp 0x4fe7a1
push 3
push 0x53dd38
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4fb7ec
movzx eax, word [esi + 0x66b6]
mov ecx, 0xcc0
cmp ax, cx
jne 0x4fb7dd
mov edx, 0xca0
mov word [esi + 0x66b6], dx
jmp 0x4fe7a1
add eax, 0xfffffff8
mov word [esi + 0x66b6], ax
jmp 0x4fe7a1
mov ecx, str.D300
mov eax, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb813
test dl, dl
je 0x4fb80f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb813
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb7f3
xor eax, eax
jmp 0x4fb818
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fb82d
mov eax, 0xffe0
add word [esi + 0x66b6], ax
jmp 0x4fe7a1
mov ecx, 0x53dd20
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb858
test dl, dl
je 0x4fb854
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb858
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb838
xor eax, eax
jmp 0x4fb85d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fb87a
mov dword [esi + 0x66ac], 1
mov dword [esi + 0x65b0], 0x94949494
jmp 0x4fe7a1
mov edi, dword [ebp - 0x7c]
cmp edi, 0x182004
jne 0x4fb8fb
mov eax, 0x660
push 3
push esi
mov dword [esi + 0x66b4], 0x50703c3
mov word [esi + 0x66b2], ax
mov dword [esi + 0x2e7fc], 0x4e48c0
mov dword [esi + 0x65fc], 0x3f4
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x65b0], 0x1e1e1e1e
call fcn.004f4bf0
fld dword [0x53dd1c]
fstp dword [esi + 0xe784]
add esp, 8
fld dword [0x53dd18]
fstp dword [esi + 0xe788]
fld dword [0x53dd14]
fstp dword [esi + 0xe790]
jmp 0x4fe7a1
cmp edi, 0x25a000
jne 0x4fb94f
push str.E950
mov eax, 0x800
push 0x538670
push esi
mov dword [esi + 0x66b4], 0x65004b3
mov word [esi + 0x66b2], ax
mov dword [esi + 0x2e7fc], 0x4e48c0
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x65b0], 0x4b4b4b4b
call fcn.004f4a60
add esp, 0xc
jmp 0x4fe7a1
cmp edi, 0x48d000
jne 0x4fba3b
mov eax, dword [esi + 0x65a0]
or eax, dword [esi + 0x65a4]
mov edx, 0x810
mov dword [esi + 0x66b4], 0x8100604
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x65b0], 0xe1e1e1e1
mov dword [esi + 0x2e7fc], 0x4e6bd0
mov dword [esi + 0x66ac], 6
jne 0x4fb9c5
push esi
call fcn.004e44e0
add esp, 4
test eax, eax
je 0x4fb9c5
mov ecx, dword [0x53dd04]
mov dword [esi + 0x64c5], ecx
mov dl, byte [0x53dd08]
mov byte [esi + 0x64c9], dl
mov ecx, 0x53dd04
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fb9f0
test dl, dl
je 0x4fb9ec
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fb9f0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fb9d0
xor eax, eax
jmp 0x4fb9f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4fe7a1
push 3
push esi
mov dword [esi + 0x65b0], 0xb4b4b4b4
call fcn.004f4bf0
fld dword [0x53dd00]
fstp dword [esi + 0xe784]
add esp, 8
fld dword [0x53dcfc]
fstp dword [esi + 0xe788]
fld dword [0x53dcf8]
fstp dword [esi + 0xe78c]
jmp 0x4fe7a1
mov ecx, str.E2100
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fba66
test dl, dl
je 0x4fba62
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fba66
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fba46
xor eax, eax
jmp 0x4fba6b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fbaa3
mov eax, dword [esi + 0x65a0]
or eax, dword [esi + 0x65a4]
jne 0x4fba8a
push esi
call fcn.004e45a0
add esp, 4
test eax, eax
je 0x4fbad9
mov dword [esi + 0x66b4], 0x65004b6
mov dword [esi + 0x66ac], 7
jmp 0x4fe7a1
mov ecx, 0x53dce8
lea eax, [esi + 0x64c5]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbad0
test dl, dl
je 0x4fbacc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbad0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbab0
xor eax, eax
jmp 0x4fbad5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fbb0b
mov eax, dword [0x53dce8]
mov dword [esi + 0x64c5], eax
mov cx, word [0x53dcec]
mov word [esi + 0x64c9], cx
mov dword [esi + 0x66b4], 0x65004b4
mov dword [esi + 0x65b0], 0x4b4b4b4b
jmp 0x4fe797
cmp edi, fcn.0048e000
jne 0x4fbbfe
fld dword [0x53dce4]
mov eax, dword [esi + 0x65a0]
or eax, dword [esi + 0x65a4]
fstp dword [esi + 0xe784]
fld dword [0x53dce0]
mov edx, 0x810
fstp dword [esi + 0xe78c]
mov dword [esi + 0x66b4], 0x8100606
mov dword [esi + 0x2e7fc], 0x4e6bd0
mov dword [esi + 0x66ac], 7
jne 0x4fbb69
push esi
call fcn.004e4650
add esp, 4
cmp byte [esi + 0x64c5], 0x45
jne 0x4fbb92
lea ecx, [esi + 0x64c6]
push ecx
call sub.MSVCR100.dll_atoi
add esp, 4
cmp eax, 0xe74
jge 0x4fbb92
mov dword [esi + 0x65b0], 0x49494949
mov ecx, str.Optio_33WR
lea eax, [esi + 0x64c5]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbbc0
test dl, dl
je 0x4fbbbc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbbc0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbba0
xor eax, eax
jmp 0x4fbbc5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fe7a1
fld dword [0x53dcdc]
mov dword [esi + 0x66c8], 1
fstp dword [esi + 0xe784]
mov dword [esi + 0x65b0], 0x16161616
fld dword [0x53dcd8]
fstp dword [esi + 0xe78c]
jmp 0x4fe7a1
cmp edi, 0x599000
jne 0x4fbc99
mov ecx, dword [esi + 0x65a0]
or ecx, dword [esi + 0x65a4]
mov dword [esi + 0x66b4], 0x8f006ae
mov dword [esi + 0x65b0], 0x16161616
jne 0x4fbc75
push esi
call fcn.004e4820
add esp, 4
test eax, eax
je 0x4fbc75
mov edx, dword [0x538638]
mov dword [esi + 0x6485], edx
mov eax, dword [0x53863c]
mov dword [esi + 0x6489], eax
mov ecx, dword [str.DiMAGE_Z2]
mov dword [esi + 0x64c5], ecx
mov edx, dword [0x53dcd0]
mov dword [esi + 0x64c9], edx
mov ax, word [0x53dcd4]
mov word [esi + 0x64cd], ax
xor ecx, ecx
cmp byte [esi + 0x6485], 0x4d
mov dword [esi + 0x2e7fc], 0x4e6bd0
sete cl
add ecx, 6
mov dword [esi + 0x66ac], ecx
jmp 0x4fe7a1
mov ecx, str.E4500
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbcc4
test dl, dl
je 0x4fbcc0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbcc4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbca4
xor eax, eax
jmp 0x4fbcc9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fbce6
mov dword [esi + 0x66b4], 0x8f006ac
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x4fe797
cmp edi, 0x718000
jne 0x4fbd07
mov dword [esi + 0x66b4], 0xa100784
mov dword [esi + 0x65b0], 0xb4b4b4b4
jmp 0x4fe797
cmp edi, 0x895000
jne 0x4fbd3c
mov dword [esi + 0x66b4], 0xb100846
mov dword [esi + 0x65fc], 0xf83
mov dword [esi + 0x2e7fc], 0x4e6bd0
mov dword [esi + 0x66ac], 7
jmp 0x4fe7a1
mov ecx, str.FinePix_S5100
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbd67
test dl, dl
je 0x4fbd63
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbd67
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbd47
xor eax, eax
jmp 0x4fbd6c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4fc8cd
mov ecx, str.FinePix_S5500
lea eax, [esi + 0x64c5]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbda0
test dl, dl
je 0x4fbd9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbda0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbd80
xor eax, eax
jmp 0x4fbda5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4fc8cd
mov ecx, str.FUJIFILM
lea eax, [esi + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbdd8
test dl, dl
je 0x4fbdd4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbdd8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbdb8
xor eax, eax
jmp 0x4fbddd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fbf5c
mov ecx, str.S2Pro
lea eax, [esi + 0x64cc]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbe10
test dl, dl
je 0x4fbe0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbe10
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbdf0
xor eax, eax
jmp 0x4fbe15
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fbe54
mov edx, dword [str._S2Pro]
mov dword [esi + 0x64cc], edx
mov ax, word [0x53dc98]
mov word [esi + 0x64d0], ax
mov cl, byte [0x53dc9a]
mov byte [esi + 0x64d2], cl
mov dword [esi + 0x66b4], 0xb400860
mov dword [esi + 0x66c8], 6
jmp 0x4fbe5e
mov dword [esi + 0x65fc], 0x3e00
cmp dword [esi + 0x6614], 2
jne 0x4fbe79
cmp dword [esi + 0xa0], ebx
je 0x4fbe79
mov dword [esi + 0x65fc], 0x2f00
movzx edi, word [esi + 0x66b0]
movzx ecx, word [esi + 0x66b4]
movzx ebx, word [esi + 0x66b6]
mov eax, edi
sub eax, ecx
movzx ecx, word [esi + 0x66b2]
cdq
sub eax, edx
sar eax, 1
mov word [esi + 0x66b8], ax
mov edx, ebx
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
cmp dword [esi + 0x6614], 2
mov word [esi + 0x66ba], ax
jne 0x4fbef1
cmp dword [esi + 0x65e4], 0
je 0x4fbed7
add ecx, ecx
mov word [esi + 0x66b2], cx
movzx ecx, cx
jmp 0x4fbedc
imul ecx, edi
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], 0x4e49c0
dec eax
mov word [esi + 0x66b4], ax
test dl, 1
jne 0x4fe7a1
mov dword [esi + 0x65b0], 0x49494949
jmp 0x4fe7a1
mov ecx, str.RD175
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbf87
test dl, dl
je 0x4fbf83
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbf87
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbf67
xor eax, eax
jmp 0x4fbf8c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fbfbd
mov dword [esi + 0x66b4], 0x5fe03da
mov dword [esi + 0x65c0], 0x201
mov dword [esi + 0x65b0], 0x61616161
mov dword [esi + 0x2e7fc], 0x4e7a70
jmp 0x4fe7a1
mov ecx, str.KD_400Z
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fbfe8
test dl, dl
je 0x4fbfe4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fbfe8
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fbfc8
xor eax, eax
jmp 0x4fbfed
sbb eax, eax
sbb eax, 0xffffffff
xor edi, edi
mov ebx, fcn.004e6ea0
cmp eax, edi
jne 0x4fc013
mov eax, 0x920
mov dword [esi + 0x66b4], 0x90806b0
mov word [esi + 0x66b2], ax
jmp 0x4fc183
mov ecx, str.KD_510Z
lea eax, [esi + 0x64c5]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fc040
test dl, dl
je 0x4fc03c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fc040
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fc020
xor eax, eax
jmp 0x4fc045
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x4fc14c
lea eax, [esi + 0x6485]
push str.MINOLTA
push eax
call sub.MSVCR100.dll__stricmp
add esp, 8
test eax, eax
jne 0x4fc1e5
push 8
push str.DiMAGE_A
lea edi, [esi + 0x64c5]
push edi
mov dword [esi + 0x2e7fc], ebx
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4fc0d2
mov eax, str.DiMAGE_A200
mov edi, edi
mov cl, byte [edi]
cmp cl, byte [eax]
jne 0x4fc0b0
test cl, cl
je 0x4fc0ac
mov cl, byte [edi + 1]
cmp cl, byte [eax + 1]
jne 0x4fc0b0
add edi, 2
add eax, 2
test cl, cl
jne 0x4fc090
xor eax, eax
jmp 0x4fc0b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4fc0c3
mov dword [esi + 0x65b0], 0x49494949
mov dword [esi + 0x2e7fc], 0x4e6bd0
jmp 0x4fe7a1
push 5
push str.ALPHA
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4fc1a4
push 5
push str.DYNAX
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4fc1a4
push 6
push str.MAXXUM
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4fc1a4
push 8
push str.DiMAGE_G
push edi
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4fe7a1
mov edx, 0xa40
mov dword [esi + 0x66b4], 0xa2f07a4
mov word [esi + 0x66b2], dx
jmp 0x4fc172
add dword [esi + 0x65c0], 0xe
mov dword [esi + 0x65b0], 0x61616161
mov edx, 0x4d4d
mov dword [esi + 0x2e7fc], ebx
mov dword [esi + 0x65fc], 0x3df
mov word [esi + 0x6274], dx
jmp 0x4fe7a1
xor eax, eax
cmp byte [edi], 0x4d
lea ebx, [esi + 0x64d9]
sete al
lea ecx, [eax + esi + 0x64cb]
push ecx
push str.DYNAX___10s
push ebx
call sub.MSVCR100.dll_sprintf
push ebx
lea eax, [esi + 0x6485]
push eax
push esi
call fcn.004f4a60
add esp, 0x18
mov dword [esi + 0x2e7fc], 0x4e6bd0
jmp 0x4fe7a1
mov ecx, str.ist_DS
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fc210
test dl, dl
je 0x4fc20c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fc210
add eax, 2
add ecx, 2
test dl, dl
jne 0x4fc1f0
xor eax, eax
jmp 0x4fc215
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x4fc22a
mov edx, 0xfffe
add word [esi + 0x66b4], dx
jmp 0x4fe7a1
mov ecx, str.K20D
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fc255
test dl, dl
je 0x4fc251
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4fc255
xor eax, eax
jmp 0x4fc25a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
jne 0x4fc26d
mov dword [esi + 0x65b0], 0x16161616
jmp 0x4fe7a1
mov ecx, 0x53dc28
lea eax, [esi + 0x64c5]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4fc298
mov dword [esi + 0x2e7fc], fcn.004e6ea0
jmp 0x4fe7a1
mov eax, 0xffff
add word [esi + 0x66b6], ax
jmp 0x4fe7a1
mov ecx, 0xfffc
add word [esi + 0x66b6], cx
mov edx, 2
mov word [esi + 0x66ba], dx
jmp 0x4fe7a1
mov eax, 0xfffd
add word [esi + 0x66b4], ax
mov ecx, 0xfffc
add word [esi + 0x66b6], cx
jmp 0x4fe7a1
fld qword [0x53d910]
mov dword [esi + 0x66b4], 0x3c00305
mov ecx, 0x3e0
mov dword [esi + 0x65b0], 0x1e4e1e4e
mov dword [esi + 0x2e7fc], 0x4e2220
fstp qword [esi + 0x66d8]
mov word [esi + 0x66b2], cx
mov dword [esi + 0x66d0], 4
cmp byte [esi + 0x64c5], 0
lea edi, [esi + 0x64c5]
jne 0x4fe7ce
movzx edx, word [esi + 0x66b4]
movzx eax, word [esi + 0x66b6]
push edx
push eax
push str._dx_d
push edi
call sub.MSVCR100.dll_sprintf
add esp, 0x10
or ebx, 0xffffffff
cmp dword [esi + 0x65b0], ebx
jne 0x4fe7e3
mov dword [esi + 0x65b0], 0x94949494
cmp dword [esi + 0x6604], 0
je 0x4fe7fd
push edi
lea eax, [esi + 0x6485]
push eax
push esi
call fcn.004f4a60
add esp, 0xc
mov eax, dword [esi + 0x65c4]
test eax, eax
je 0x4fe848
cmp word [esi + 0x66c6], 0
jne 0x4fe848
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, [ebp - 0x74]
push ecx
push esi
call fcn.004e2c50
add esp, 0x18
test eax, eax
je 0x4fe848
mov dx, word [ebp - 0x6c]
mov ax, word [ebp - 0x70]
mov word [esi + 0x66c4], dx
mov word [esi + 0x66c6], ax
mov eax, dword [esi + 0x2e7fc]
xor edi, edi
cmp eax, edi
je 0x4fe85e
cmp word [esi + 0x66b4], 0x16
jae 0x4fe864
mov dword [esi + 0x6614], edi
cmp eax, fcn.00401300
jne 0x4fe88e
mov ecx, dword [esi + 0x6278]
push ecx
push str._s:_You_must_link_dcraw_with_libjpeg___n
call sub.MSVCR100.dll___iob_func
add eax, 0x40
push eax
call sub.MSVCR100.dll_fprintf
add esp, 0xc
mov dword [esi + 0x6614], edi
cmp byte [esi + 0x6280], 0
lea edx, [esi + 0x6280]
jne 0x4fe8bc
cmp dword [esi + 0x66d0], 3
mov eax, 0x53d8d8
je 0x4fe8b0
mov eax, str.GMCY
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4fe8b2
cmp word [esi + 0x66b0], di
jne 0x4fe8d3
mov dx, word [esi + 0x66b4]
mov word [esi + 0x66b0], dx
cmp word [esi + 0x66b2], di
jne 0x4fe8ea
mov ax, word [esi + 0x66b6]
mov word [esi + 0x66b2], ax
mov eax, dword [esi + 0x65b0]
cmp eax, edi
je 0x4fe93d
cmp dword [esi + 0x66d0], 3
jne 0x4fe93d
xor ecx, ecx
nop
mov edx, eax
shr edx, cl
and edx, 0xf
cmp dl, 9
jne 0x4fe915
mov edx, 2
shl edx, cl
or eax, edx
mov edx, eax
shr edx, cl
and edx, 0xf
cmp dl, 6
jne 0x4fe92a
mov edx, 8
shl edx, cl
or eax, edx
add ecx, 4
cmp ecx, 0x20
jb 0x4fe900
mov dword [esi + 0x65b0], eax
jmp 0x4fe93d
or ebx, 0xffffffff
pop edi
cmp dword [esi + 0x66c8], ebx
jne 0x4fe960
mov eax, dword [esi + 0x66cc]
mov dword [esi + 0x66c8], eax
cmp eax, ebx
jne 0x4fe960
mov dword [esi + 0x66c8], 0
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0050bf32
mov esp, ebp
pop ebp
ret