Function at 0x408870
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa2c
or eax, 0xffffffff
push ebx
mov ebx, ecx
mov dword [ebx + 0x330], eax
mov dword [ebx + 0x450], eax
mov dword [ebx + 0x454], eax
push esi
xor esi, esi
push edi
xor eax, eax
mov word [ebx + 0x850e], si
mov dword [ebx + 0x364], esi
mov word [ebx + 0x44a], si
mov word [ebx + 0x43a], si
mov word [ebx + 0x438], si
mov word [ebx + 0x442], si
mov word [ebx + 0x440], si
mov word [ebx + 0x43e], si
mov word [ebx + 0x43c], si
mov dword [ebx + 0x384], esi
mov byte [ebx + 0x295], 0
mov byte [ebx + 0x255], 0
mov byte [ebx + 0x215], 0
mov byte [ebx + 0x2d5], 0
mov byte [ebx + 0x15], 0
mov byte [ebx + 0x10], 0
mov dword [ebx + 0x338], esi
mov dword [ebx + 0x320], esi
mov ecx, 0x20
lea edi, [ebx + 0x3b4]
rep stosd dword es:[edi], eax
mov ecx, 0x20
lea edi, [ebx + 0x48c]
rep stosd dword es:[edi], eax
mov eax, 1
mov dword [ebx + 0x390], eax
mov dword [ebx + 0x38c], eax
mov dword [ebx + 0x39c], eax
mov eax, SysReAllocString
lea ecx, [ebx + 0x8588]
mov word [ebx + 0x44e], si
mov word [ebx + 0x44c], si
mov dword [ebx + 0x350], esi
mov dword [ebx + 0x344], esi
mov dword [ebx + 0x798dc], esi
mov dword [ebx + 0x798d8], esi
mov dword [ebx + 0x37c], esi
mov dword [ebx + 0x378], esi
mov dword [ebx + 0x354], esi
mov dword [ebx + 0x340], esi
mov dword [ebx + 0x434], esi
mov dword [ebx + 0x3a0], esi
mov dword [ebx + 0x398], esi
mov dword [ebx + 0x32c], esi
mov dword [ebx + 0x3a4], esi
mov dword [ebx + 0x380], esi
mov dword [ebx + 0x374], esi
mov dword [ebx + 0x328], esi
mov dword [ebx + 0x324], esi
mov dword [ebx + 0x394], esi
mov dword [ebx + 0x3a8], esi
mov dword [ebx + 0x358], esi
mov dword [ebx + 0x388], esi
mov dword [ebx + 0x460], esi
mov dword [ebx + 0x464], 0x3ff00000
mov dword [ebx + 0x3b0], eax
mov dword [ebx + 0x3ac], eax
xor edi, edi
mov dword [esp + 0x24], ecx
xor eax, eax
cmp edi, 1
sete al
cmp edi, 3
sbb edx, edx
neg edx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
lea eax, [ecx + 0x10]
mov edx, 3
fstp dword [ecx - 0x10]
fild dword [esp + 0x20]
fstp dword [ecx]
mov dword [eax], esi
add eax, 0x10
dec edx
jne 0x408a24
xor eax, eax
add ecx, 0x40
xor edx, edx
cmp eax, edi
sete dl
inc eax
add ecx, 0x10
cmp eax, 3
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp dword [ecx - 0x10]
jb 0x408a31
mov ecx, dword [esp + 0x24]
inc edi
add ecx, 4
cmp edi, 4
mov dword [esp + 0x24], ecx
jb 0x4089f8
mov dword [ebx + 0x458], 3
mov dword [ebx + 0x378], 0xc
xor eax, eax
lea ecx, [ebx + 0x50c]
lea esp, [esp]
mov word [ecx], ax
inc eax
add ecx, 2
cmp eax, 0x4000
jb 0x408a80
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x20]
push 1
push ecx
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
call fcn.00487020
mov edi, 0x4949
add esp, 0x10
xor eax, eax
cmp word [ebx + 4], di
jne 0x408ac3
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x408acf
movzx dx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, edx
mov word [ebx + 4], ax
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x34]
push 1
push ecx
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov byte [esp + 0x3e], 0xff
mov byte [esp + 0x3f], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x3d]
movzx edx, byte [esp + 0x3e]
add esp, 0x10
cmp word [ebx + 4], di
jne 0x408b26
movzx eax, byte [esp + 0x2f]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x2c]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x408b3d
xor eax, eax
mov ah, byte [esp + 0x2c]
or eax, ecx
movzx ecx, byte [esp + 0x2f]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edx, dword [ebx]
push esi
push esi
push edx
mov dword [esp + 0x30], eax
call fcn.00487810
mov eax, dword [ebx]
push eax
push 0x20
lea ecx, [esp + 0xa4]
push 1
push ecx
call fcn.00487020
mov edx, dword [ebx]
push 2
push esi
push edx
call fcn.00487810
mov eax, dword [ebx]
push eax
call fcn.00487c33
mov dword [esp + 0x58], eax
add esp, 0x2c
lea eax, [esp + 0x90]
mov edx, dword [eax]
mov ecx, str.MMMM
cmp edx, dword [ecx]
je 0x408b99
inc eax
lea ecx, [esp + 0xac]
cmp eax, ecx
jbe 0x408b80
jmp 0x408ba1
cmp eax, esi
jne 0x40c193
lea eax, [esp + 0x90]
mov ecx, dword [eax]
mov edx, str.IIII
cmp ecx, dword [edx]
je 0x408bc1
inc eax
lea edx, [esp + 0xac]
cmp eax, edx
jbe 0x408ba8
jmp 0x408bc9
cmp eax, esi
jne 0x40c193
xor eax, eax
mov ax, word [ebx + 4]
cmp ax, di
mov dword [esp + 0x30], eax
je 0x40b2c9
cmp ax, 0x4d4d
je 0x40b2c9
lea ecx, [esp + 0x90]
mov edx, dword [ecx]
mov eax, 0x695e64
cmp edx, dword [eax]
jne 0x4092ee
lea ecx, [esp + 0x96]
mov edx, dword [ecx]
mov eax, 0x69525c
cmp edx, dword [eax]
jne 0x4092ee
mov eax, dword [ebx]
push esi
push 4
push eax
call fcn.00487810
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x2c]
push 1
push edx
mov byte [esp + 0x34], 0xff
mov byte [esp + 0x35], 0xff
call fcn.00487020
add esp, 0x1c
xor eax, eax
cmp word [ebx + 4], di
jne 0x408c4d
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x408c59
movzx cx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, ecx
mov edx, dword [ebx]
movzx eax, ax
add eax, 4
push esi
push eax
push edx
mov dword [ebx + 0x340], eax
call fcn.00487810
mov eax, dword [ebx]
push eax
call fcn.00487bf7
add esp, 0x10
cmp eax, 0xff
je 0x4092e3
mov ecx, dword [ebx]
push esi
or eax, 0xffffffff
push 0xc
push ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x34], eax
call fcn.00487810
mov edx, dword [ebx]
push edx
push 2
lea eax, [esp + 0x2c]
push 1
push eax
mov byte [esp + 0x34], 0xff
mov byte [esp + 0x35], 0xff
call fcn.00487020
add esp, 0x1c
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.004103a0
cmp ax, di
mov word [ebx + 4], ax
je 0x408cdc
cmp ax, 0x4d4d
jne 0x4092e3
mov edx, dword [ebx]
push edx
push 2
lea eax, [esp + 0x20]
push 1
push eax
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
call fcn.00487020
add esp, 0x10
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.004103a0
xor eax, eax
lea edi, [ebx + 0x7f934]
mov ecx, 0x5a
rep stosd dword es:[edi], eax
mov edx, dword [ebx]
push edx
push 4
lea eax, [esp + 0x18]
push 1
push eax
mov dword [ebx + 0x370], esi
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call fcn.004084a0
cmp eax, esi
je 0x408da8
mov edx, dword [ebx]
push esi
add eax, 0xc
push eax
push edx
call fcn.00487810
add esp, 0xc
push 0xc
mov ecx, ebx
call fcn.004218c0
test eax, eax
jne 0x408da8
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
cmp eax, esi
jne 0x408d53
mov eax, dword [ebx + 0x344]
cmp eax, esi
mov dword [ebx + 0x35c], 0x10
je 0x408e09
push esi
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
add esp, 0xc
push 1
lea ecx, [esp + 0xc4]
push ecx
mov ecx, ebx
call fcn.004126e0
test eax, eax
je 0x408e09
mov edx, dword [esp + 0xc0]
mov ax, word [esp + 0xc8]
mov cx, word [esp + 0xc4]
mov dword [ebx + 0x35c], edx
mov word [ebx + 0x44c], ax
mov word [ebx + 0x44e], cx
mov eax, dword [ebx + 0x370]
xor edx, edx
cmp eax, esi
jbe 0x408ec6
lea eax, [ebx + 0x7f938]
nop
mov ecx, dword [eax + 0x18]
mov edi, dword [esp + 0x1c]
cmp edi, ecx
jge 0x408e31
mov edi, ecx
mov dword [esp + 0x1c], edi
cmp edi, 3
jle 0x408e3e
mov dword [esp + 0x1c], 3
cmp dword [eax + 8], 6
jne 0x408e49
cmp ecx, 3
je 0x408eae
movzx edi, word [ebx + 0x43a]
movzx ecx, word [ebx + 0x438]
imul ecx, edi
mov edi, dword [eax]
imul edi, dword [eax - 4]
cmp edi, ecx
jle 0x408eae
mov cx, word [eax - 4]
mov word [ebx + 0x43a], cx
mov cx, word [eax]
mov word [ebx + 0x438], cx
mov ecx, dword [eax + 4]
mov dword [ebx + 0x378], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x37c], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x340], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x454], ecx
mov ecx, dword [eax + 0x18]
mov edi, edx
mov dword [ebx + 0x374], ecx
mov dword [esp + 0x14], edi
jmp 0x408eb2
mov edi, dword [esp + 0x14]
mov ecx, dword [ebx + 0x370]
inc edx
add eax, 0x24
cmp edx, ecx
jb 0x408e20
jmp 0x408eca
mov edi, dword [esp + 0x14]
movzx ecx, word [ebx + 0x43a]
lea eax, [ecx + 1]
cdq
sub eax, edx
sar eax, 1
imul ax, word [ebx + 0x44a]
mov word [ebx + 0x44a], ax
mov eax, dword [ebx + 0x7f94c]
cmp eax, esi
je 0x408ef8
mov dword [ebx + 0x454], eax
cmp edi, esi
jl 0x409113
cmp dword [ebx + 0x798d8], esi
jne 0x409113
mov eax, dword [ebx + 0x37c]
cmp eax, 0x8001
ja 0x409085
je 0x40906c
cmp eax, 0x63
ja 0x408ffd
je case.0x408f42.6
cmp eax, 7
ja case.0x408f42.2
movzx edx, byte [eax + 0x4100d8]
jmp dword [edx*4 + 0x4100cc]
mov eax, dword [ebx + 0x378]
add eax, 0xfffffff8
cmp eax, 8
ja case.0x408f5e.9
movzx eax, byte [eax + 0x4100f0]
jmp dword [eax*4 + 0x4100e0]
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x408f5e.9
lea ecx, [edi + edi*8]
mov dword [ebx + 0x798d8], 0x419c50
cmp dword [ebx + ecx*4 + 0x7f944], 2
jne 0x408f92
mov dword [ebx + 0x434], 6
push 6
lea eax, [ebx + 0x215]
push str.PENTAX
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
jne case.0x408f5e.9
mov dword [ebx + 0x798d8], 0x419fb0
movzx eax, word [ebx + 0x43a]
movzx edx, word [ebx + 0x438]
imul edx, eax
lea ecx, [edi + edi*8]
mov eax, dword [ebx + ecx*4 + 0x7f954]
shl edx, 3
lea eax, [eax + eax*4]
cmp eax, edx
jne 0x409113
mov dword [ebx + 0x798d8], 0x41a8c0
jmp 0x409113
mov dword [ebx + 0x798d8], 0x412a20
jmp 0x409113
cmp eax, 0x106
je 0x40905d
cmp eax, 0x7fff
jne case.0x408f42.2
mov ax, word [ebx + 0x438]
xor edx, edx
mov dx, ax
mov dword [ebx + 0x798d8], 0x420d90
imul edx, ecx
imul edx, dword [ebx + 0x378]
lea ecx, [edi + edi*8]
mov ecx, dword [ebx + ecx*4 + 0x7f954]
shl ecx, 3
cmp ecx, edx
je 0x409113
add eax, 8
mov word [ebx + 0x438], ax
mov dword [ebx + 0x798d8], 0x420500
jmp 0x409113
mov dword [ebx + 0x798d8], 0x41ed40
jmp 0x409113
mov dword [ebx + 0x434], 8
mov dword [ebx + 0x798d8], 0x419c50
jmp 0x409113
cmp eax, 0x8799
ja 0x4090ae
je 0x4090a2
sub eax, 0x8005
je 0x409076
sub eax, 0x5e
je 0x409113
mov dword [ebx + 0x39c], esi
jmp 0x409113
mov dword [ebx + 0x798d8], 0x415c90
jmp 0x409113
cmp eax, 0xfde8
je 0x4090d0
cmp eax, 0xffff
je 0x4090c4
mov dword [ebx + 0x39c], esi
jmp 0x409113
mov dword [ebx + 0x798d8], 0x4156b0
jmp 0x409113
lea edx, [edi + edi*8]
mov eax, dword [ebx + edx*4 + 0x7f944]
sub eax, 2
je 0x409103
sub eax, 4
je 0x4090f7
sub eax, 0x801d
jne 0x409113
mov dword [ebx + 0x798d8], 0x41f540
jmp 0x409113
mov dword [ebx + 0x798d8], 0x403af0
jmp 0x40910d
mov dword [ebx + 0x798d8], 0x41fa20
mov dword [ebx + 0x330], esi
mov ecx, dword [ebx + 0x3a0]
cmp ecx, esi
jne 0x409178
cmp dword [ebx + 0x374], 3
jne 0x40914a
lea eax, [edi + edi*8]
cmp dword [ebx + eax*4 + 0x7f954], esi
je 0x40914a
mov eax, dword [ebx + 0x378]
cmp eax, 0xe
je 0x40914a
cmp eax, 0x800
je 0x40914a
mov dword [ebx + 0x39c], esi
cmp ecx, esi
jne 0x409178
cmp dword [ebx + 0x378], 8
jne 0x409190
mov ecx, dword [ebx + 0x37c]
mov eax, 1
cmp ecx, eax
jne 0x409178
lea ecx, [edi + edi*8]
cmp dword [ebx + ecx*4 + 0x7f944], eax
jne 0x409178
mov dword [ebx + 0x39c], esi
cmp dword [ebx + 0x378], 8
jne 0x409190
cmp dword [ebx + 0x374], 4
jne 0x409190
mov dword [ebx + 0x39c], esi
mov ecx, dword [ebx + 0x370]
xor eax, eax
cmp ecx, esi
mov dword [esp + 0x10], eax
jbe 0x4092e3
mov edx, dword [esp + 0x28]
lea ecx, [ebx + 0x7f934]
mov dword [esp + 0x18], ecx
cmp eax, edi
je 0x40925e
mov edi, dword [esp + 0x1c]
cmp dword [ecx + 0x1c], edi
jne 0x40925a
mov eax, dword [ecx + 8]
movzx edi, word [ebx + 0x44e]
inc eax
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x35c]
lea edx, [eax + 1]
movzx eax, word [ebx + 0x44c]
imul eax, edi
mov edi, edx
imul edi, edx
xor edx, edx
div edi
mov edi, eax
mov eax, dword [ecx]
imul eax, dword [ecx + 4]
mov ecx, dword [esp + 0x20]
mov edx, ecx
imul edx, ecx
mov ecx, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x18]
cmp eax, edi
mov edi, dword [esp + 0x14]
jbe 0x409250
mov dx, word [ecx]
mov word [ebx + 0x44c], dx
mov ax, word [ecx + 4]
mov word [ebx + 0x44e], ax
mov edx, dword [ecx + 0x14]
mov dword [ebx + 0x344], edx
mov eax, dword [ecx + 0x20]
mov dword [ebx + 0x350], eax
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x35c], edx
mov edx, eax
mov dword [esp + 0x28], edx
jmp 0x40925e
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x28]
jmp 0x40925e
mov edi, dword [esp + 0x14]
inc eax
add ecx, 0x24
cmp eax, dword [ebx + 0x370]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
jb 0x4091b2
cmp edx, esi
jl 0x4092e3
mov edi, dword [ebx + 0x35c]
lea eax, [edx + edx*8 + 0x1fe54]
mov ecx, dword [ebx + eax*4]
shl ecx, 5
or edi, ecx
lea edx, [edx + edx*8]
lea eax, [ebx + edx*4]
mov dword [ebx + 0x35c], edi
mov ecx, dword [eax + 0x7f940]
dec ecx
je 0x4092b7
sub ecx, 0xfde7
je 0x4092ca
mov dword [ebx + 0x344], esi
jmp 0x40cc86
cmp dword [eax + 0x7f93c], 8
jle 0x4092e3
mov dword [ebx + 0x798dc], 0x41fe50
cmp dword [eax + 0x7f944], 6
mov eax, 0x403af0
je 0x4092dd
mov eax, 0x41fa20
mov dword [ebx + 0x798dc], eax
mov dword [ebx + 0x344], esi
jmp 0x40cc86
mov ecx, 7
mov edi, str.ARECOYK
lea esi, [esp + 0xa9]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x4094a6
mov eax, str.Contax
lea edx, [ebx + 0x215]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x409316
mov eax, str.N_Digital
lea edx, [ebx + 0x255]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x409330
mov ecx, dword [ebx]
push 0
push 0x21
push ecx
call fcn.00487810
add esp, 0xc
mov byte [esp + 0x133], 0
mov edi, 0x13
mov edx, dword [ebx]
push edx
dec edi
call fcn.00487bf7
add esp, 4
test edi, edi
mov byte [esp + edi + 0x120], al
jne 0x409356
xor eax, eax
mov ecx, 9
lea edi, [esp + 0x50]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x138]
push str._d:_d:_d__d:_d:_d
push eax
call fcn.00488a42
add esp, 0x20
cmp eax, 6
jne 0x4093f4
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
sub eax, 0x76c
lea ecx, [esp + 0x50]
dec edi
push ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x74], 0xffffffff
call fcn.00488850
add esp, 4
test eax, eax
jle 0x4093f4
lea edx, [esp + 0x50]
push edx
call fcn.00488850
add esp, 4
mov dword [ebx + 0x324], eax
mov eax, dword [ebx]
push 0
push 0x3c
push eax
call fcn.00487810
add esp, 0xc
xor edi, edi
mov esi, 0x4949
lea ebx, [ebx]
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x1c]
push 1
push edx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov byte [esp + 0x26], 0xff
mov byte [esp + 0x27], 0xff
call fcn.00487020
movzx edx, byte [esp + 0x25]
movzx ecx, byte [esp + 0x26]
add esp, 0x10
cmp word [ebx + 4], si
jne 0x409463
movzx eax, byte [esp + 0x17]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x14]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x40947a
xor eax, eax
mov ah, byte [esp + 0x14]
or eax, edx
movzx edx, byte [esp + 0x17]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [esp + 0x30], eax
mov eax, edi
shr eax, 1
xor eax, edi
mov dword [esp + 0x34], 0
fild qword [esp + 0x30]
inc edi
cmp edi, 4
fstp dword [ebx + eax*4 + 0x8578]
jb 0x409410
jmp 0x40cc86
mov edi, 0x695e3c
lea esi, [esp + 0x90]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4094f6
mov eax, str.Logitech
lea edx, [ebx + 0x215]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4094d0
mov eax, str.Fotoman_Pixtura
lea edx, [ebx + 0x255]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4094e7
jmp 0x40cc86
mov edi, str.qktk
lea esi, [esp + 0x90]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x409546
mov eax, str.Apple
lea edx, [ebx + 0x215]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x409520
mov eax, str.QuickTake_100
lea edx, [ebx + 0x255]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x409537
jmp 0x40cc86
mov edi, str.qktn
lea esi, [esp + 0x90]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x409596
mov eax, str.Apple
lea edx, [ebx + 0x215]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x409570
mov eax, str.QuickTake_150
lea edx, [ebx + 0x255]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x409587
jmp 0x40cc86
mov ecx, 2
mov edi, str.FUJIFILM
lea esi, [esp + 0x90]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x40a246
mov ecx, dword [ebx]
push eax
push 0x54
push ecx
call fcn.00487810
mov edx, dword [ebx]
push edx
push 4
lea eax, [esp + 0x28]
push 1
push eax
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
call fcn.00487020
movzx edx, byte [esp + 0x31]
movzx ecx, byte [esp + 0x32]
mov edi, 0x4949
add esp, 0x1c
cmp word [ebx + 4], di
jne 0x409614
movzx eax, byte [esp + 0x17]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x14]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x40962b
xor eax, eax
mov ah, byte [esp + 0x14]
or eax, edx
movzx edx, byte [esp + 0x17]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov dword [ebx + 0x344], eax
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x1c]
push 1
push ecx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov byte [esp + 0x26], 0xff
mov byte [esp + 0x27], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x25]
movzx edx, byte [esp + 0x26]
add esp, 0x10
cmp word [ebx + 4], di
jne 0x409684
movzx eax, byte [esp + 0x17]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x14]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x40969b
xor eax, eax
mov ah, byte [esp + 0x14]
or eax, ecx
movzx ecx, byte [esp + 0x17]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edx, dword [ebx]
push 0
push 0x5c
push edx
mov dword [ebx + 0x350], eax
call fcn.00487810
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x24]
push 1
push ecx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x2d]
movzx edx, byte [esp + 0x2e]
add esp, 0x1c
cmp word [ebx + 4], di
jne 0x409700
movzx eax, byte [esp + 0x13]
shl eax, 8
or eax, edx
movzx edx, byte [esp + 0x10]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
jmp 0x409717
xor eax, eax
mov ah, byte [esp + 0x10]
or eax, ecx
movzx ecx, byte [esp + 0x13]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edx, dword [ebx]
push 0
push eax
push edx
call fcn.00487810
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x28]
push 1
push ecx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004084a0
cmp eax, 0xff
ja 0x409916
test eax, eax
je 0x4098fe
mov dword [esp + 0x24], eax
lea ecx, [ecx]
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x20]
push 1
push ecx
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x18]
push edx
mov ecx, ebx
call fcn.004103a0
xor esi, esi
mov si, ax
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x30]
push 1
push ecx
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x28]
push edx
mov ecx, ebx
call fcn.004103a0
xor edi, edi
mov di, ax
mov eax, dword [ebx]
push eax
call fcn.00487c33
add esp, 4
cmp esi, 0x100
mov dword [esp + 0x38], eax
jne 0x40984c
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.004103a0
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x1c]
push 1
push edx
mov word [ebx + 0x438], ax
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.004103a0
mov word [ebx + 0x43a], ax
jmp 0x4098d6
cmp esi, 0x121
jne 0x409881
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
mov word [ebx + 0x43c], ax
call fcn.004103d0
cmp ax, 0x10bc
mov word [ebx + 0x43e], ax
jne 0x4098d6
mov word [ebx + 0x43e], 0x10bf
jmp 0x4098d6
cmp esi, 0x130
jne 0x40989f
mov ecx, dword [ebx]
push ecx
call fcn.00487bf7
add esp, 4
sar eax, 7
mov dword [ebx + 0x364], eax
jmp 0x4098d6
cmp esi, 0x2ff0
jne 0x4098d6
xor esi, esi
lea esp, [esp]
mov ecx, ebx
call fcn.004103d0
xor edx, edx
mov dx, ax
mov eax, esi
xor eax, 1
inc esi
cmp esi, 4
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp dword [ebx + eax*4 + 0x8578]
jb 0x4098b0
mov ecx, dword [esp + 0x38]
mov edx, dword [ebx]
push 0
add ecx, edi
push ecx
push edx
call fcn.00487810
mov eax, dword [esp + 0x30]
add esp, 0xc
dec eax
mov dword [esp + 0x24], eax
jne 0x409770
mov edi, 0x4949
mov ax, word [ebx + 0x364]
mov cx, ax
shl word [ebx + 0x43c], cl
shr word [ebx + 0x43e], cl
cmp dword [ebx + 0x344], 0x78
jle 0x409bc4
mov eax, dword [ebx]
push 0
push 0x78
push eax
call fcn.00487810
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
movzx edx, byte [esp + 0x2d]
movzx ecx, byte [esp + 0x2e]
add esp, 0x1c
cmp word [ebx + 4], di
jne 0x409982
movzx eax, byte [esp + 0x13]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x10]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x409999
xor eax, eax
mov ah, byte [esp + 0x10]
or eax, edx
movzx edx, byte [esp + 0x13]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov edx, dword [ebx + 0x39c]
xor ecx, ecx
test eax, eax
setne cl
add edx, ecx
mov ecx, edx
cmp ecx, 2
mov dword [ebx + 0x39c], edx
jne 0x409bc4
mov ecx, dword [ebx + 0x368]
test ecx, ecx
je 0x409bc4
push 0
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
add esp, 0x1c
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004084a0
cmp eax, 0xff
ja 0x409bc4
test eax, eax
je 0x409ba7
mov dword [esp + 0x24], eax
lea ecx, [ecx]
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x1c]
push 1
push edx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.004103a0
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x24]
push 1
xor esi, esi
push edx
mov si, ax
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
call fcn.004103a0
mov ecx, dword [ebx]
xor edi, edi
push ecx
mov di, ax
call fcn.00487c33
add esp, 4
cmp esi, 0x100
mov dword [esp + 0x38], eax
jne 0x409afc
mov edx, dword [ebx]
push edx
push 2
lea eax, [esp + 0x30]
push 1
push eax
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00487020
add esp, 0x10
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebx
call fcn.004103a0
mov edx, dword [ebx]
push edx
push 2
mov word [ebx + 0x438], ax
lea eax, [esp + 0x20]
push 1
push eax
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
call fcn.00487020
add esp, 0x10
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.004103a0
mov word [ebx + 0x43a], ax
jmp 0x409b84
cmp esi, 0x121
jne 0x409b31
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
mov word [ebx + 0x43c], ax
call fcn.004103d0
cmp ax, 0x10bc
mov word [ebx + 0x43e], ax
jne 0x409b84
mov word [ebx + 0x43e], 0x10bf
jmp 0x409b84
cmp esi, 0x130
jne 0x409b4f
mov edx, dword [ebx]
push edx
call fcn.00487bf7
add esp, 4
sar eax, 7
mov dword [ebx + 0x364], eax
jmp 0x409b84
cmp esi, 0x2ff0
jne 0x409b84
xor esi, esi
lea esp, [esp]
mov ecx, ebx
call fcn.004103d0
movzx eax, ax
mov ecx, esi
mov dword [esp + 0x20], eax
xor ecx, 1
inc esi
cmp esi, 4
fild dword [esp + 0x20]
fstp dword [ebx + ecx*4 + 0x8578]
jb 0x409b60
mov edx, dword [esp + 0x38]
mov eax, dword [ebx]
push 0
add edx, edi
push edx
push eax
call fcn.00487810
mov eax, dword [esp + 0x30]
add esp, 0xc
dec eax
mov dword [esp + 0x24], eax
jne 0x409a20
mov ax, word [ebx + 0x364]
mov cx, ax
shl word [ebx + 0x43c], cl
shr word [ebx + 0x43e], cl
mov edi, 0x4949
mov ecx, dword [ebx]
push 0
push 0x64
push ecx
call fcn.00487810
mov edx, dword [ebx]
push edx
push 4
lea eax, [esp + 0x24]
push 1
push eax
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
movzx edx, byte [esp + 0x2d]
movzx ecx, byte [esp + 0x2e]
add esp, 0x1c
cmp word [ebx + 4], di
jne 0x409c23
movzx eax, byte [esp + 0x13]
shl eax, 8
or eax, ecx
movzx ecx, byte [esp + 0x10]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
jmp 0x409c3a
xor eax, eax
mov ah, byte [esp + 0x10]
or eax, edx
movzx edx, byte [esp + 0x13]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, edx
mov esi, dword [ebx + 0x344]
mov dword [ebx + 0x340], eax
or eax, 0xffffffff
push 0
add esi, 0xc
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx]
push esi
push eax
mov dword [esp + 0x34], 0
call fcn.00487810
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x28]
push 1
push edx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
call fcn.00487020
add esp, 0x1c
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.004103a0
cmp ax, di
mov word [ebx + 4], ax
je 0x409ca4
cmp ax, 0x4d4d
jne 0x40cc86
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x1c]
push 1
push edx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.004103a0
xor eax, eax
lea edi, [ebx + 0x7f934]
mov ecx, 0x5a
rep stosd dword es:[edi], eax
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x18]
push 1
push edx
mov dword [ebx + 0x370], eax
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004084a0
test eax, eax
je 0x409d74
nop
lea esp, [esp]
mov ecx, dword [ebx]
push 0
add eax, esi
push eax
push ecx
call fcn.00487810
add esp, 0xc
push esi
mov ecx, ebx
call fcn.004218c0
test eax, eax
jne 0x409d74
mov edx, dword [ebx]
push edx
push 4
lea eax, [esp + 0x18]
push 1
push eax
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call fcn.004084a0
test eax, eax
jne 0x409d20
mov eax, dword [ebx + 0x344]
xor esi, esi
cmp eax, esi
mov dword [ebx + 0x35c], 0x10
je 0x409dd7
mov edx, dword [ebx]
push esi
push eax
push edx
call fcn.00487810
add esp, 0xc
push 1
lea eax, [esp + 0xc4]
push eax
mov ecx, ebx
call fcn.004126e0
test eax, eax
je 0x409dd7
mov ecx, dword [esp + 0xc0]
mov dx, word [esp + 0xc8]
mov ax, word [esp + 0xc4]
mov dword [ebx + 0x35c], ecx
mov word [ebx + 0x44c], dx
mov word [ebx + 0x44e], ax
mov eax, dword [ebx + 0x370]
mov edi, dword [esp + 0x1c]
xor edx, edx
cmp eax, esi
jbe 0x409e94
mov esi, dword [esp + 0x28]
lea eax, [ebx + 0x7f938]
mov ecx, dword [eax + 0x18]
cmp esi, ecx
jge 0x409dfe
mov esi, ecx
cmp esi, 3
jle 0x409e08
mov esi, 3
cmp dword [eax + 8], 6
jne 0x409e13
cmp ecx, 3
je 0x409e7c
movzx edi, word [ebx + 0x43a]
movzx ecx, word [ebx + 0x438]
imul ecx, edi
mov edi, dword [eax - 4]
imul edi, dword [eax]
cmp edi, ecx
jle 0x409e78
mov cx, word [eax - 4]
mov word [ebx + 0x43a], cx
mov cx, word [eax]
mov word [ebx + 0x438], cx
mov ecx, dword [eax + 4]
mov dword [ebx + 0x378], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x37c], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x340], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x454], ecx
mov ecx, dword [eax + 0x18]
mov edi, edx
mov dword [ebx + 0x374], ecx
mov dword [esp + 0x1c], edi
jmp 0x409e7c
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x370]
inc edx
add eax, 0x24
cmp edx, ecx
jb 0x409df5
mov dword [esp + 0x28], esi
xor esi, esi
movzx ecx, word [ebx + 0x43a]
lea eax, [ecx + 1]
cdq
sub eax, edx
sar eax, 1
imul ax, word [ebx + 0x44a]
mov word [ebx + 0x44a], ax
mov eax, dword [ebx + 0x7f94c]
cmp eax, esi
je 0x409ec2
mov dword [ebx + 0x454], eax
cmp edi, esi
jl 0x40a01a
cmp dword [ebx + 0x798d8], esi
jne 0x40a01a
mov eax, dword [ebx + 0x37c]
cmp eax, 0x8001
ja 0x40a170
je 0x40a157
cmp eax, 0x63
ja 0x409fbd
je case.0x409f0c.6
cmp eax, 7
ja case.0x409f0c.2
movzx edx, byte [eax + 0x410108]
jmp dword [edx*4 + 0x4100fc]
mov eax, dword [ebx + 0x378]
add eax, 0xfffffff8
cmp eax, 8
ja case.0x409f28.9
movzx eax, byte [eax + 0x410120]
jmp dword [eax*4 + 0x410110]
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x409f28.9
lea ecx, [edi + edi*8]
mov dword [ebx + 0x798d8], 0x419c50
cmp dword [ebx + ecx*4 + 0x7f944], 2
jne 0x409f5c
mov dword [ebx + 0x434], 6
push 6
lea eax, [ebx + 0x215]
push str.PENTAX
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
jne case.0x409f28.9
mov dword [ebx + 0x798d8], 0x419fb0
movzx ecx, word [ebx + 0x438]
lea edx, [edi + edi*8]
mov eax, dword [ebx + edx*4 + 0x7f954]
movzx edx, word [ebx + 0x43a]
imul ecx, edx
lea eax, [eax + eax*4]
shl ecx, 3
cmp eax, ecx
jne 0x40a01a
mov dword [ebx + 0x798d8], 0x41a8c0
jmp 0x40a01a
mov dword [ebx + 0x798d8], 0x412a20
jmp 0x40a01a
cmp eax, 0x106
je 0x40a148
cmp eax, 0x7fff
jne case.0x409f0c.2
mov ax, word [ebx + 0x438]
xor esi, esi
mov si, ax
lea edx, [edi + edi*8]
mov dword [ebx + 0x798d8], 0x420d90
mov edx, dword [ebx + edx*4 + 0x7f954]
shl edx, 3
imul esi, ecx
imul esi, dword [ebx + 0x378]
cmp edx, esi
je 0x40a018
add eax, 8
mov word [ebx + 0x438], ax
mov dword [ebx + 0x798d8], 0x420500
xor esi, esi
mov ecx, dword [ebx + 0x3a0]
cmp ecx, esi
jne 0x40a07f
cmp dword [ebx + 0x374], 3
jne 0x40a051
lea edx, [edi + edi*8]
cmp dword [ebx + edx*4 + 0x7f954], esi
je 0x40a051
mov eax, dword [ebx + 0x378]
cmp eax, 0xe
je 0x40a051
cmp eax, 0x800
je 0x40a051
mov dword [ebx + 0x39c], esi
cmp ecx, esi
jne 0x40a07f
cmp dword [ebx + 0x378], 8
jne 0x40a097
mov ecx, dword [ebx + 0x37c]
mov eax, 1
cmp ecx, eax
jne 0x40a07f
lea ecx, [edi + edi*8]
cmp dword [ebx + ecx*4 + 0x7f944], eax
jne 0x40a07f
mov dword [ebx + 0x39c], esi
cmp dword [ebx + 0x378], 8
jne 0x40a097
cmp dword [ebx + 0x374], 4
jne 0x40a097
mov dword [ebx + 0x39c], esi
mov ecx, dword [ebx + 0x370]
xor eax, eax
cmp ecx, esi
mov dword [esp + 0x10], eax
jbe 0x40cc86
lea ecx, [ebx + 0x7f934]
cmp eax, dword [esp + 0x1c]
je 0x40a227
mov edx, dword [esp + 0x28]
cmp dword [ecx + 0x1c], edx
jne 0x40a227
mov eax, dword [ecx + 8]
movzx edi, word [ebx + 0x44e]
lea esi, [eax + 1]
mov eax, dword [ebx + 0x35c]
lea edx, [eax + 1]
movzx eax, word [ebx + 0x44c]
imul eax, edi
mov edi, edx
imul edi, edx
xor edx, edx
div edi
mov edx, esi
imul edx, esi
mov esi, edx
mov edi, eax
mov eax, dword [ecx]
imul eax, dword [ecx + 4]
cdq
idiv esi
cmp eax, edi
jbe 0x40a223
mov ax, word [ecx]
mov word [ebx + 0x44c], ax
mov dx, word [ecx + 4]
mov word [ebx + 0x44e], dx
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x344], eax
mov edx, dword [ecx + 0x20]
mov dword [ebx + 0x350], edx
mov eax, dword [ecx + 8]
mov dword [ebx + 0x35c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], eax
jmp 0x40a227
mov dword [ebx + 0x798d8], 0x41ed40
jmp 0x40a01a
mov dword [ebx + 0x434], 8
mov dword [ebx + 0x798d8], 0x419c50
jmp 0x40a01a
cmp eax, 0x8799
ja 0x40a1a3
je 0x40a194
sub eax, 0x8005
je 0x40a161
sub eax, 0x5e
je 0x40a01a
mov dword [ebx + 0x39c], esi
jmp 0x40a01a
mov dword [ebx + 0x798d8], 0x415c90
jmp 0x40a01a
cmp eax, 0xfde8
je 0x40a1cb
cmp eax, 0xffff
je 0x40a1bc
mov dword [ebx + 0x39c], esi
jmp 0x40a01a
mov dword [ebx + 0x798d8], 0x4156b0
jmp 0x40a01a
lea eax, [edi + edi*8]
mov eax, dword [ebx + eax*4 + 0x7f944]
sub eax, 2
je 0x40a20e
sub eax, 4
je 0x40a1f9
sub eax, 0x801d
jne 0x40a01a
mov dword [ebx + 0x798d8], 0x41f540
jmp 0x40a01a
mov dword [ebx + 0x798d8], 0x403af0
mov dword [ebx + 0x330], esi
jmp 0x40a01a
mov dword [ebx + 0x798d8], 0x41fa20
mov dword [ebx + 0x330], esi
jmp 0x40a01a
mov eax, dword [esp + 0x10]
mov edx, dword [ebx + 0x370]
inc eax
add ecx, 0x24
cmp eax, edx
mov dword [esp + 0x10], eax
jb 0x40a0b1
mov eax, dword [esp + 0x24]
jmp 0x40cc22
lea edx, [esp + 0x90]
mov eax, dword [edx]
mov ecx, str.RIFF
cmp eax, dword [ecx]
jne 0x40a47b
mov ecx, dword [ebx]
push 0
push 0
push ecx
call fcn.00487810
mov edx, dword [ebx]
push edx
push 1
lea eax, [esp + 0x28]
push 4
mov esi, 0x4949
push eax
mov word [ebx + 4], si
call fcn.00487020
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x34]
push 1
push edx
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov byte [esp + 0x3e], 0xff
mov byte [esp + 0x3f], 0xff
call fcn.00487020
movzx ecx, byte [esp + 0x3d]
add esp, 0x2c
cmp word [ebx + 4], si
jne 0x40a2d5
movzx edi, byte [esp + 0x13]
movzx eax, byte [esp + 0x12]
movzx edx, byte [esp + 0x10]
shl edi, 8
or edi, eax
shl edi, 8
or edi, ecx
shl edi, 8
or edi, edx
jmp 0x40a2f3
movzx edx, byte [esp + 0x12]
xor eax, eax
mov ah, byte [esp + 0x10]
or eax, ecx
movzx ecx, byte [esp + 0x13]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
mov edi, eax
lea eax, [esp + 0x14]
mov ecx, dword [eax]
mov edx, str.RIFF
cmp ecx, dword [edx]
je 0x40a41c
lea eax, [esp + 0x14]
mov ecx, dword [eax]
mov edx, str.LIST
cmp ecx, dword [edx]
je 0x40a41c
lea eax, [esp + 0x14]
mov ecx, dword [eax]
mov edx, str.IDIT
cmp ecx, dword [edx]
jne 0x40a409
cmp edi, 0x40
jae 0x40a409
mov edx, dword [ebx]
push edx
push 1
lea eax, [esp + 0xc8]
push 0x40
push eax
call fcn.00487020
mov byte [esp + edi + 0xd0], 0
xor eax, eax
mov ecx, 9
lea edi, [esp + 0x60]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0x15c]
push eax
lea ecx, [esp + 0xe8]
push str._s__s__d__d:_d:_d__d
push ecx
call fcn.00488a42
add esp, 0x30
cmp eax, 6
jne 0x40cc86
xor esi, esi
mov edi, 0x65cd28
lea edx, [esp + 0x138]
push edx
push edi
call fcn.00488780
add esp, 8
test eax, eax
je 0x40a3c2
inc esi
add edi, 4
cmp esi, 0xc
jb 0x40a3a4
mov edi, dword [esp + 0x64]
lea eax, [esp + 0x50]
sub edi, 0x76c
push eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], 0xffffffff
call fcn.00488850
add esp, 4
test eax, eax
jle 0x40cc86
lea ecx, [esp + 0x50]
push ecx
call fcn.00488850
add esp, 4
mov dword [ebx + 0x324], eax
jmp 0x40cc86
mov edx, dword [ebx]
push 1
push edi
push edx
call fcn.00487810
add esp, 0xc
jmp 0x40cc86
mov eax, dword [ebx]
push eax
call fcn.00487c33
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x1c]
mov esi, eax
push 1
push edx
add esi, edi
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov byte [esp + 0x26], 0xff
mov byte [esp + 0x27], 0xff
call fcn.00487020
mov eax, dword [ebx]
push eax
call fcn.00487c33
add esp, 0x18
cmp eax, esi
jae 0x40cc86
mov ecx, ebx
call fcn.0042af20
mov ecx, dword [ebx]
push ecx
call fcn.00487c33
add esp, 4
cmp eax, esi
jb 0x40a460
jmp 0x40cc86
mov ecx, 3
mov edi, 0x695da4
lea esi, [esp + 0x90]
xor edx, edx
repe cmpsw word [esi], word es:[edi]
jne 0x40a5e1
mov eax, dword [ebx]
push edx
push 6
push eax
call fcn.00487810
mov ecx, dword [ebx]
push ecx
push 8
lea eax, [ebx + 0x215]
push 1
push eax
call fcn.00487020
mov edx, dword [ebx]
push edx
push 8
lea eax, [ebx + 0x255]
push 1
push eax
call fcn.00487020
mov eax, dword [ebx]
push eax
push 0x10
lea eax, [ebx + 0x295]
push 1
push eax
call fcn.00487020
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x5c]
push 1
push edx
mov byte [esp + 0x64], 0xff
mov byte [esp + 0x65], 0xff
call fcn.00487020
mov esi, 0x4949
add esp, 0x4c
xor eax, eax
cmp word [ebx + 4], si
jne 0x40a510
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x40a51c
movzx cx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, ecx
xor edx, edx
mov dx, ax
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x1c]
push 1
push ecx
mov dword [ebx + 0x340], edx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
mov edx, dword [ebx]
push edx
push 2
lea eax, [esp + 0x30]
push 1
push eax
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00487020
add esp, 0x20
xor eax, eax
cmp word [ebx + 4], si
jne 0x40a572
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x40a57e
movzx cx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, ecx
mov edx, dword [ebx]
push edx
push 2
mov word [ebx + 0x43a], ax
lea eax, [esp + 0x20]
push 1
push eax
mov byte [esp + 0x28], 0xff
mov byte [esp + 0x29], 0xff
call fcn.00487020
add esp, 0x10
xor eax, eax
cmp word [ebx + 4], si
jne 0x40a5b5
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x40a5c1
movzx cx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, ecx
mov word [ebx + 0x438], ax
mov dword [ebx + 0x798d8], 0x41a240
mov dword [ebx + 0x330], 0x61616161
jmp 0x40cc86
mov ecx, 9
mov edi, str.DSC_Image
lea esi, [esp + 0x90]
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a866
mov eax, dword [ebx]
push edx
push edx
push eax
call fcn.00487810
add esp, 0xc
mov ecx, 9
xor eax, eax
lea edi, [esp + 0x50]
rep stosd dword es:[edi], eax
mov ecx, dword [ebx]
push ecx
lea edx, [esp + 0x13c]
push 0x80
push edx
call fcn.0048871c
lea eax, [esp + 0x144]
push 0x3d
push eax
call fcn.00488660
add esp, 0x14
test eax, eax
je 0x40a64b
mov byte [eax], 0
inc eax
mov dword [esp + 0x10], eax
jmp 0x40a667
or ecx, 0xffffffff
xor eax, eax
lea edi, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [esp + ecx + 0x138]
mov dword [esp + 0x10], ecx
mov edi, 0x695d94
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a69f
lea eax, [esp + 0x64]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x64]
push edx
push str._d._d._d
push eax
call fcn.00488a42
add esp, 0x14
mov edi, 0x695d84
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a6d7
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x60]
push edx
push str._d:_d:_d
push eax
call fcn.00488a42
add esp, 0x14
mov edi, 0x695d74
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a701
mov eax, dword [esp + 0x10]
push eax
call fcn.00488582
add esp, 4
mov dword [ebx + 0x344], eax
mov edi, 0x695d70
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a72c
mov eax, dword [esp + 0x10]
push eax
call fcn.00488582
add esp, 4
mov word [ebx + 0x43a], ax
mov edi, 0x695d6c
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a757
mov eax, dword [esp + 0x10]
push eax
call fcn.00488582
add esp, 4
mov word [ebx + 0x438], ax
mov edi, 0x695d68
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a782
mov eax, dword [esp + 0x10]
push eax
call fcn.00488582
add esp, 4
mov word [ebx + 0x44c], ax
mov edi, 0x695d64
lea esi, [esp + 0x138]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a7ad
mov eax, dword [esp + 0x10]
push eax
call fcn.00488582
add esp, 4
mov word [ebx + 0x44e], ax
push 4
lea ecx, [esp + 0x13c]
push str.EOHD
push ecx
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40a616
movzx eax, word [ebx + 0x44e]
movzx edx, word [ebx + 0x44c]
mov edi, dword [esp + 0x60]
imul edx, eax
mov eax, dword [esp + 0x64]
mov ecx, dword [ebx + 0x344]
sub eax, 0x76c
mov dword [esp + 0x64], eax
lea eax, [esp + 0x50]
lea edx, [ecx + edx*2]
dec edi
push eax
mov dword [ebx + 0x340], edx
mov dword [esp + 0x64], edi
mov dword [esp + 0x74], 0xffffffff
call fcn.00488850
add esp, 4
test eax, eax
jle 0x40a82e
lea ecx, [esp + 0x50]
push ecx
call fcn.00488850
add esp, 4
mov dword [ebx + 0x324], eax
mov eax, str.Rollei
lea edx, [ebx + 0x215]
sub edx, eax
nop
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40a840
mov eax, str.d530flex
lea edx, [ebx + 0x255]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40a857
jmp 0x40cc86
lea eax, [esp + 0x90]
mov ecx, dword [eax]
mov edx, str.PWAD
cmp ecx, dword [edx]
jne 0x40aa8b
mov edx, dword [ebx]
push 0
push 4
push edx
mov word [ebx + 4], 0x4949
call fcn.00487810
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x24]
push 1
push ecx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
mov esi, eax
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
push 0
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004084a0
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
add esp, 0xc
test esi, esi
je 0x40a9df
mov dword [esp + 0x1c], esi
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x18]
push 1
push edx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004084a0
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x1c]
push 1
push edx
mov dword [esp + 0x34], eax
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov byte [esp + 0x26], 0xff
mov byte [esp + 0x27], 0xff
call fcn.00487020
mov eax, dword [ebx]
push eax
push 1
lea ecx, [esp + 0x48]
push 8
push ecx
call fcn.00487020
mov eax, dword [esp + 0x44]
add esp, 0x20
mov edi, str.META
lea esi, [esp + 0x30]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a9a1
mov dword [ebx + 0x348], eax
mov edi, str.THUMB
lea esi, [esp + 0x30]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a9bb
mov dword [ebx + 0x344], eax
mov edi, str.RAW0
lea esi, [esp + 0x30]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a9d5
mov dword [ebx + 0x340], eax
dec dword [esp + 0x1c]
jne 0x40a912
mov eax, dword [ebx + 0x348]
mov ecx, dword [ebx]
push 0
add eax, 0x14
push eax
push ecx
call fcn.00487810
mov edx, dword [ebx]
push edx
push 1
push 0x40
lea esi, [ebx + 0x215]
push esi
call fcn.00487020
push 0x20
push esi
mov byte [ebx + 0x254], 0
call fcn.00488660
add esp, 0x24
test eax, eax
je 0x40aa33
lea ecx, [eax + 1]
lea esi, [ebx + 0x255]
sub esi, ecx
mov dl, byte [ecx]
mov byte [ecx + esi], dl
inc ecx
test dl, dl
jne 0x40aa27
mov byte [eax], dl
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
mov word [ebx + 0x43a], ax
call fcn.004103d0
mov ecx, ebx
mov word [ebx + 0x438], ax
mov dword [ebx + 0x798d8], 0x419fb0
call fcn.00410420
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
mov word [ebx + 0x44c], ax
call fcn.004103d0
mov word [ebx + 0x44e], ax
mov dword [ebx + 0x384], 0x3fff
jmp 0x40cc86
lea ecx, [esp + 0x90]
mov edx, dword [ecx]
mov eax, 0x695d20
cmp edx, dword [eax]
jne 0x40ad2f
xor eax, eax
push eax
push eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebx]
push eax
call fcn.00487810
mov ecx, dword [ebx]
push ecx
call fcn.00487bf7
add esp, 0x10
test eax, eax
jne 0x40cc86
mov edx, dword [ebx]
push edx
call fcn.00487bf7
add esp, 4
sub eax, 0x4d
jne 0x40cc86
mov eax, dword [ebx]
push eax
call fcn.00487bf7
add esp, 4
sub eax, 0x52
jne 0x40cc86
mov ecx, dword [ebx]
push ecx
call fcn.00487bf7
imul eax, eax, 0x101
mov edx, dword [ebx]
push edx
push 4
mov word [ebx + 4], ax
lea eax, [esp + 0x1c]
push 1
push eax
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
mov byte [esp + 0x26], 0xff
mov byte [esp + 0x27], 0xff
call fcn.00487020
add esp, 0x14
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call fcn.004084a0
mov edx, dword [ebx]
mov esi, eax
add esi, 8
push edx
mov dword [esp + 0x1c], esi
call fcn.00487c33
add esp, 4
cmp eax, esi
mov dword [esp + 0x24], eax
jge 0x40ad09
xor esi, esi
mov edi, 4
lea ecx, [ecx]
mov eax, dword [ebx]
push eax
call fcn.00487bf7
shl esi, 8
add esp, 4
or esi, eax
dec edi
jne 0x40ab60
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x18]
push 1
push edx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004084a0
cmp esi, 0x505244
mov dword [esp + 0x44], eax
je 0x40ac67
cmp esi, 0x545457
je 0x40ac48
cmp esi, 0x574247
jne 0x40acd7
mov ecx, ebx
call fcn.00410420
xor edx, edx
mov edi, str.DiMAGE_A200
lea esi, [ebx + 0x255]
mov ecx, 0xc
repe cmpsb byte [esi], byte es:[edi]
mov eax, edx
setne al
dec eax
and eax, 3
mov edi, eax
xor esi, esi
mov ecx, dword [ebx]
push ecx
push 2
lea edx, [esp + 0x1c]
push 1
push edx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x14]
push eax
mov ecx, ebx
call fcn.004103a0
xor ecx, ecx
mov cx, ax
mov edx, esi
sar edx, 1
xor edx, esi
xor edx, edi
inc esi
cmp esi, 4
mov dword [esp + 0x48], ecx
fild dword [esp + 0x48]
fstp dword [ebx + edx*4 + 0x8578]
jl 0x40abf7
jmp 0x40acd7
mov eax, dword [ebx]
push eax
call fcn.00487c33
add esp, 4
push eax
mov ecx, ebx
call fcn.00428f20
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x340], ecx
jmp 0x40acd7
mov edx, dword [ebx]
push 1
push 8
push edx
call fcn.00487810
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x30]
push 1
push ecx
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.004103a0
mov ecx, dword [ebx]
push ecx
push 2
movzx eax, ax
lea edx, [esp + 0x30]
push 1
push edx
mov dword [esp + 0x48], eax
mov byte [esp + 0x38], 0xff
mov byte [esp + 0x39], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.004103a0
xor ecx, ecx
mov cx, ax
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x24]
lea ecx, [edx + eax + 8]
mov edx, dword [ebx]
push 0
push ecx
push edx
call fcn.00487810
mov eax, dword [ebx]
push eax
call fcn.00487c33
mov ecx, dword [esp + 0x28]
add esp, 0x10
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x40ab56
mov cx, word [esp + 0x38]
mov dx, word [esp + 0x20]
mov ax, word [esp + 0x30]
mov word [ebx + 0x438], cx
mov word [ebx + 0x43a], dx
mov word [ebx + 4], ax
jmp 0x40cc86
lea edx, [esp + 0x90]
mov eax, dword [edx]
mov ecx, str.FOVb
cmp eax, dword [ecx]
jne 0x40b224
mov ecx, dword [ebx]
push 0
push 0x24
push ecx
mov dword [esp + 0x44], 0
mov word [ebx + 4], 0x4949
call fcn.00487810
add esp, 0xc
mov ecx, ebx
call fcn.00410420
mov edx, dword [ebx]
push 2
push 0xfffffffffffffffc
push edx
mov dword [ebx + 0x450], eax
call fcn.00487810
add esp, 0xc
push 0
mov ecx, ebx
call fcn.00410420
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
add esp, 0xc
mov ecx, ebx
call fcn.00410420
cmp eax, 0x64434553
jne 0x40cc86
mov ecx, ebx
call fcn.00410420
mov ecx, ebx
call fcn.00410420
test eax, eax
je 0x40b215
nop
lea esp, [esp]
dec eax
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.00410420
mov ecx, ebx
mov esi, eax
call fcn.00410420
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.00410420
mov ecx, dword [ebx]
push ecx
mov edi, eax
call fcn.00487c33
mov edx, dword [ebx]
push 0
push esi
push edx
mov dword [esp + 0x58], eax
call fcn.00487810
add esp, 0x10
mov ecx, ebx
call fcn.00410420
mov ecx, edi
shl ecx, 0x18
or ecx, 0x20434553
cmp eax, ecx
jne 0x40cc86
cmp edi, 0x47414d49
jg 0x40af4f
je 0x40ae68
cmp edi, 0x32414d49
je 0x40ae68
cmp edi, 0x464d4143
jne 0x40b1f7
mov edx, dword [esp + 0x20]
lea eax, [edx - 0x1c]
add esi, 0x18
cmp eax, 0x20000
mov dword [ebx + 0x348], esi
mov dword [ebx + 0x354], eax
jbe 0x40b1f7
mov dword [ebx + 0x354], 0x20000
jmp 0x40b1f7
mov eax, dword [ebx]
push 1
push 0xc
push eax
call fcn.00487810
add esp, 0xc
mov ecx, ebx
call fcn.00410420
mov edi, eax
mov ecx, ebx
mov dword [esp + 0x30], edi
call fcn.00410420
movzx ecx, word [ebx + 0x43a]
cmp edi, ecx
mov dword [esp + 0x44], eax
jle 0x40aebc
movzx edx, word [ebx + 0x438]
cmp eax, edx
jle 0x40aebc
mov word [ebx + 0x438], ax
lea eax, [esi + 0x18]
mov word [ebx + 0x43a], di
mov dword [ebx + 0x340], eax
mov ecx, dword [ebx]
push 0
lea edi, [esi + 0x1c]
push edi
push ecx
call fcn.00487810
mov edx, dword [ebx]
push edx
call fcn.00487bf7
add esp, 0x10
cmp eax, 0xff
jne 0x40af09
mov eax, dword [ebx]
push eax
call fcn.00487bf7
add esp, 4
cmp eax, 0xd8
jne 0x40af09
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 0x1c]
cmp dword [ebx + 0x350], eax
jae 0x40af09
mov dword [ebx + 0x344], edi
mov dword [ebx + 0x350], eax
mov eax, dword [esp + 0x38]
inc eax
cmp eax, 2
mov dword [esp + 0x38], eax
jne 0x40b1f7
mov eax, dword [ebx + 0x350]
test eax, eax
jne 0x40b1f7
mov dx, word [esp + 0x30]
mov ax, word [esp + 0x44]
add esi, 0x18
mov dword [ebx + 0x344], esi
mov word [ebx + 0x44c], dx
mov word [ebx + 0x44e], ax
jmp 0x40b1f7
cmp edi, 0x504f5250
jne 0x40b1f7
mov ecx, ebx
call fcn.00410420
mov ecx, ebx
call fcn.00410420
mov ecx, dword [ebx]
push 1
mov edi, eax
push 0xc
push ecx
mov dword [esp + 0x2c], edi
call fcn.00487810
add esp, 0xc
cmp edi, 0x100
lea edx, [esi + edi*8 + 0x18]
mov dword [esp + 0x30], edx
jbe 0x40af97
mov edi, pe_nt_image_headers32
mov dword [esp + 0x20], edi
lea eax, [edi + edi]
xor esi, esi
test eax, eax
jle 0x40afbd
mov ecx, ebx
call fcn.00410420
mov ecx, dword [esp + 0x30]
lea edx, [ecx + eax*2]
mov dword [esp + esi*4 + 0x238], edx
inc esi
lea eax, [edi + edi]
cmp esi, eax
jl 0x40afa0
test edi, edi
mov dword [esp + 0x10], 0
jle 0x40b1f7
lea ecx, [ecx]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + esi*8 + 0x238]
push 0x40
lea eax, [esp + 0xc4]
push eax
push ecx
mov ecx, ebx
call fcn.0042c910
mov eax, dword [esp + esi*8 + 0x23c]
push 0x40
lea edx, [esp + 0x54]
push edx
push eax
mov ecx, ebx
call fcn.0042c910
mov edi, 0x695d08
lea esi, [esp + 0xc0]
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b035
lea eax, [esp + 0x50]
push eax
call fcn.00488582
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
add esp, 4
fstp dword [ebx + 0x320]
mov edi, str.CAMMANUF
lea esi, [esp + 0xc0]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b06a
lea edx, [ebx + 0x215]
lea ecx, [esp + 0x50]
lea eax, [esp + 0x50]
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40b060
mov edi, str.CAMMODEL
lea esi, [esp + 0xc0]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b09b
lea edx, [ebx + 0x255]
lea ecx, [esp + 0x50]
lea eax, [esp + 0x50]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40b091
mov edi, str.WB_DESC
lea esi, [esp + 0xc0]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b0cc
lea edx, [ebx + 0x295]
lea ecx, [esp + 0x50]
lea eax, [esp + 0x50]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40b0c2
mov edi, str.TIME
lea esi, [esp + 0xc0]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b0f6
lea eax, [esp + 0x50]
push eax
call fcn.00488582
add esp, 4
mov dword [ebx + 0x324], eax
mov edi, str.EXPTIME
lea esi, [esp + 0xc0]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b148
lea eax, [esp + 0x50]
push 0xf4240
push eax
call fcn.00488582
add esp, 4
push eax
lea ecx, [esp + 0x108]
call fcn.00410360
mov edx, dword [eax]
lea ecx, [ebx + 0x8648]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edi, str.APERTURE
lea esi, [esp + 0xc0]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b195
lea eax, [esp + 0x50]
push eax
call fcn.004884a0
push ecx
lea ecx, [esp + 0xb8]
fstp qword [esp]
call fcn.00410380
mov edx, dword [eax]
lea ecx, [ebx + 0x8658]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov edi, str.FLENGTH
lea esi, [esp + 0xc0]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40b1e2
lea eax, [esp + 0x50]
push eax
call fcn.004884a0
push ecx
lea ecx, [esp + 0x118]
fstp qword [esp]
call fcn.00410380
mov edx, dword [eax]
lea ecx, [ebx + 0x8638]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x40afd0
mov ecx, dword [esp + 0x48]
mov edx, dword [ebx]
push 0
push ecx
push edx
call fcn.00487810
mov eax, dword [esp + 0x30]
add esp, 0xc
test eax, eax
jne 0x40adc0
mov dword [ebx + 0x3a4], 1
jmp 0x40cc86
lea ecx, [esp + 0x90]
mov dx, word [ecx]
mov eax, 0x695cc0
cmp dx, word [eax]
jne 0x40b244
mov ecx, ebx
call fcn.0042c3c0
jmp 0x40cc86
mov edx, 0x65c3e4
lea edi, [ebx + 0x255]
lea esi, [ebx + 0x215]
sub edi, 0x65c3f0
mov dword [esp + 0x20], edx
sub esi, edx
mov dword [esp + 0x38], 0x42
lea esp, [esp]
mov eax, dword [esp + 0x2c]
cmp eax, dword [edx - 4]
jne 0x40b2ac
mov eax, edx
nop
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + esi], cl
inc eax
test cl, cl
jne 0x40b280
lea eax, [edx + 0xc]
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edi], cl
inc eax
test cl, cl
jne 0x40b290
mov al, byte [edx + 0x1f]
test al, al
je 0x40b2ac
mov ecx, ebx
call fcn.00429a60
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add edx, 0x24
sub esi, 0x24
sub edi, 0x24
dec eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], eax
jne 0x40b270
jmp 0x40cc86
xor edx, edx
mov ecx, 2
mov edi, str.HEAPCCDR
lea esi, [esp + 0x96]
repe cmpsd dword [esi], dword es:[edi]
push edx
jne 0x40bba6
mov eax, dword [esp + 0x30]
mov ecx, dword [ebx]
mov esi, dword [esp + 0x28]
add eax, 0xfffffffc
push eax
push ecx
mov dword [ebx + 0x340], esi
mov dword [esp + 0x1c], 0xffffffff
mov word [esp + 0x24], 0x410
mov word [esp + 0x26], 0x45f3
call fcn.00487810
mov edx, dword [ebx]
push edx
push 4
lea eax, [esp + 0x28]
push 1
push eax
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
call fcn.00487020
add esp, 0x1c
push 0
lea ecx, [esp + 0x18]
push ecx
mov ecx, ebx
call fcn.004084a0
mov edx, dword [ebx]
add eax, esi
push eax
push edx
call fcn.00487810
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x28]
push 1
push ecx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004103a0
movzx eax, ax
cmp eax, 0x64
jg 0x40cc86
test eax, eax
je 0x40cc86
mov dword [esp + 0x20], eax
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x1c]
push 1
push ecx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004103a0
xor edi, edi
mov di, ax
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x24]
push 1
push ecx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x1c]
push edx
mov ecx, ebx
call fcn.004084a0
mov esi, eax
mov eax, dword [ebx]
push eax
call fcn.00487c33
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x34]
add eax, 4
push 1
push edx
mov dword [esp + 0x58], eax
mov byte [esp + 0x3c], 0xff
mov byte [esp + 0x3d], 0xff
mov byte [esp + 0x3e], 0xff
mov byte [esp + 0x3f], 0xff
call fcn.00487020
add esp, 0x14
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.004084a0
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx]
mov dword [esp + 0x30], eax
push 0
add eax, ecx
push eax
push edx
call fcn.00487810
mov eax, edi
sar eax, 8
add eax, 8
or eax, 8
add esp, 0xc
cmp eax, 0x38
jne 0x40b47c
mov ecx, dword [ebx]
push esi
push ecx
call fcn.00487c33
add esp, 4
push eax
mov ecx, ebx
call fcn.00429ea0
cmp edi, 0x810
jne 0x40b49f
mov edx, dword [ebx]
push edx
push 1
lea eax, [ebx + 0x2d5]
push 0x40
push eax
call fcn.00487020
add esp, 0x10
jmp 0x40bb80
cmp edi, 0x80a
jne 0x40b4ec
mov eax, dword [ebx]
push eax
push 1
push 0x40
lea edi, [ebx + 0x215]
push edi
call fcn.00487020
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xffffffc0
push 1
push ecx
mov ecx, dword [ebx]
push ecx
call fcn.00487810
mov edx, dword [ebx]
push edx
push 1
lea eax, [ebx + 0x255]
push 0x40
push eax
call fcn.00487020
add esp, 0x2c
jmp 0x40bb80
cmp edi, 0x1807
jne 0x40b510
push 0xb
lea eax, [esp + 0x1dc]
push eax
mov ecx, ebx
call fcn.004104a0
lea ecx, [ebx + 0x8618]
jmp 0x40b61b
cmp edi, 0x1810
jne 0x40b539
mov ecx, dword [ebx]
push 1
push 0xc
push ecx
call fcn.00487810
add esp, 0xc
mov ecx, ebx
call fcn.00410420
mov dword [ebx + 0x450], eax
jmp 0x40bb80
cmp edi, 0x1835
jne 0x40b553
mov ecx, ebx
call fcn.00410420
mov dword [ebx + 0x37c], eax
jmp 0x40bb80
cmp edi, 0x2007
jne 0x40b577
mov edx, dword [ebx]
push edx
call fcn.00487c33
add esp, 4
mov dword [ebx + 0x344], eax
mov dword [ebx + 0x350], esi
jmp 0x40bb80
cmp edi, 0x1818
jne 0x40b636
mov ecx, ebx
call fcn.00410420
mov ecx, ebx
call fcn.00410420
fld qword [0x65c0b0]
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fchs
call fcn.004879b0
lea esi, [ebx + 0x8648]
fstp qword [esp + 0x100]
mov ecx, esi
call fcn.00403980
test al, al
jne 0x40b5e3
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0x104]
mov edx, dword [esp + 0x10c]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov eax, 2
mov dword [esi + 8], eax
mov dword [esi + 0xc], edx
mov ecx, ebx
call fcn.00410420
fld qword [0x65c0b0]
mov dword [esp + 0x30], eax
fld dword [esp + 0x30]
fmul qword [0x65c2f8]
call fcn.004879b0
sub esp, 8
lea ecx, [esp + 0x1c0]
fstp qword [esp]
call fcn.00410380
lea ecx, [ebx + 0x8658]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
jmp 0x40bb80
cmp edi, 0x102a
jne 0x40b82a
mov ecx, ebx
call fcn.00410420
mov ecx, ebx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0x40000000
call fcn.004103d0
xor ecx, ecx
mov cx, ax
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul dword [0x65c3dc]
fsub dword [0x65c3d8]
fld qword [esp + 0x48]
fxch st(1)
call fcn.004879b0
fmul qword [0x65c3d0]
fld dword [ebx + 0x320]
fcomp dword [0x65c2f0]
fnstsw ax
test ah, 0x44
jp 0x40b6a5
fstp dword [ebx + 0x320]
jmp 0x40b6a7
fstp st(0)
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x40000000
call fcn.004103d0
movsx edx, ax
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul dword [0x65c3c8]
fld qword [esp + 0x38]
fxch st(1)
call fcn.004879b0
sub esp, 8
lea ecx, [esp + 0x1d0]
fstp qword [esp]
call fcn.00410380
mov edx, dword [eax]
lea ecx, [ebx + 0x8658]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov ecx, ebx
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0x40000000
call fcn.004103d0
movsx ecx, ax
neg ecx
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fmul dword [0x65c3dc]
fld qword [esp + 0x110]
fxch st(1)
call fcn.004879b0
sub esp, 8
lea ecx, [esp + 0xb8]
fstp qword [esp]
call fcn.00410380
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
call fcn.004103d0
movzx eax, ax
cmp eax, 0x11
mov dword [esp + 0x10], eax
jle 0x40b781
mov dword [esp + 0x10], 0
mov edx, dword [ebx]
push 1
push 0x20
push edx
call fcn.00487810
add esp, 0xc
lea ecx, [esp + 0xb0]
call fcn.004039a0
fcomp qword [0x65c308]
fnstsw ax
test ah, 0x41
jne 0x40b7e9
push 0xa
mov ecx, ebx
call fcn.004103d0
movzx eax, ax
push eax
lea ecx, [esp + 0x1f0]
call fcn.00410360
mov ecx, dword [eax]
mov dword [esp + 0xb0], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xb4], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xb8], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xbc], edx
lea esi, [ebx + 0x8648]
mov ecx, esi
call fcn.00403980
test al, al
jne 0x40bb80
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
mov dword [esi], eax
mov eax, dword [esp + 0xbc]
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov dword [esi + 0xc], eax
jmp 0x40bb80
cmp edi, 0x102c
jne 0x40b8bf
mov ecx, ebx
call fcn.004103d0
cmp ax, 0x200
mov ecx, dword [ebx]
push 1
jbe 0x40b87f
push 0x76
push ecx
call fcn.00487810
add esp, 0xc
xor esi, esi
mov ecx, ebx
call fcn.004103d0
xor edx, edx
mov dx, ax
mov eax, esi
xor eax, 2
inc esi
cmp esi, 4
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fstp dword [ebx + eax*4 + 0x8578]
jl 0x40b854
jmp 0x40bb80
push 0x62
push ecx
call fcn.00487810
add esp, 0xc
xor esi, esi
lea esp, [esp]
mov ecx, ebx
call fcn.004103d0
xor edx, edx
mov dx, ax
mov eax, esi
xor eax, 2
sar eax, 1
xor eax, esi
inc esi
cmp esi, 4
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fstp dword [ebx + eax*4 + 0x8578]
jl 0x40b890
jmp 0x40bb80
cmp edi, 0x32
jne 0x40b9eb
cmp esi, 0x300
jne 0x40b919
mov ecx, dword [ebx]
push 1
push 0x48
push ecx
call fcn.00487810
add esp, 0xc
xor esi, esi
mov ecx, ebx
call fcn.004103d0
xor edx, edx
mov dx, ax
mov eax, esi
sar eax, 1
xor eax, esi
inc esi
cmp esi, 4
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fdivr qword [0x65c3c0]
fstp dword [ebx + eax*4 + 0x8578]
jl 0x40b8e1
mov eax, dword [esp + 0x10]
test eax, eax
jmp 0x40b9d6
fld dword [ebx + 0x8578]
fcomp dword [0x65c2f0]
fnstsw ax
test ah, 0x44
jp 0x40bb80
mov ecx, ebx
call fcn.004103d0
cmp ax, word [esp + 0x18]
jne 0x40b96d
lea eax, [ebx + 0x255]
push str.Pro1
push eax
call fcn.00488420
add esp, 8
test eax, eax
mov eax, str.012346000000000000
jne 0x40b960
mov eax, str.01345:000000006008
mov esi, dword [esp + 0x10]
movsx eax, byte [esi + eax]
sub eax, 0x2e
jmp 0x40b987
mov esi, dword [esp + 0x10]
movsx eax, byte [esi + str.023457000000006000]
sub eax, 0x30
xor ecx, ecx
mov word [esp + 0x1a], cx
mov word [esp + 0x18], cx
mov edx, dword [ebx]
push 1
lea ecx, [eax*8 + 0x4e]
push ecx
push edx
call fcn.00487810
add esp, 0xc
xor edi, edi
mov edi, edi
mov ecx, ebx
call fcn.004103d0
mov ecx, edi
and ecx, 1
xor ax, word [esp + ecx*2 + 0x18]
xor edx, edx
mov dx, ax
mov eax, edi
xor eax, 2
sar eax, 1
xor eax, edi
inc edi
cmp edi, 4
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fstp dword [ebx + eax*4 + 0x8578]
jl 0x40b9a0
test esi, esi
jne 0x40bb80
mov dword [ebx + 0x8578], 0xbf800000
jmp 0x40bb80
cmp edi, 0x10a9
jne 0x40ba4f
cmp esi, 0x42
jle 0x40ba0a
mov ecx, dword [esp + 0x10]
movsx edx, byte [ecx + str.0134567028]
sub edx, 0x30
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov edx, dword [ebx]
push 1
lea ecx, [eax*8 + 2]
push ecx
push edx
call fcn.00487810
add esp, 0xc
xor esi, esi
mov ecx, ebx
call fcn.004103d0
movzx eax, ax
mov ecx, esi
sar ecx, 1
xor ecx, esi
mov dword [esp + 0x30], eax
inc esi
cmp esi, 4
fild dword [esp + 0x30]
fstp dword [ebx + ecx*4 + 0x8578]
jl 0x40ba25
jmp 0x40bb80
cmp edi, 0x1030
jne 0x40ba77
mov ecx, dword [esp + 0x10]
mov edx, 0x18040
sar edx, cl
test dl, 1
je 0x40bb80
mov ecx, ebx
call fcn.00429c70
jmp 0x40bb80
cmp edi, 0x1031
jne 0x40baa7
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
call fcn.004103d0
mov ecx, ebx
mov word [ebx + 0x43a], ax
call fcn.004103d0
mov word [ebx + 0x438], ax
jmp 0x40bb80
cmp edi, 0x5029
jne 0x40bb0f
mov eax, esi
and eax, 0xffff
sub eax, 2
neg eax
sbb eax, eax
and eax, 0xffffffe1
add eax, 0x20
push eax
sar esi, 0x10
push esi
lea ecx, [esp + 0x128]
call fcn.00410360
mov edx, dword [eax]
lea ecx, [ebx + 0x8638]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x30]
and eax, 0xffff
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul qword [0x65c3b8]
fstp dword [ebx + 0x8668]
jmp 0x40bb80
cmp edi, 0x5813
jne 0x40bb25
mov ecx, esi
mov dword [esp + 0x30], esi
mov dword [ebx + 0x318], ecx
jmp 0x40bb80
cmp edi, 0x5814
jne 0x40bb3b
mov edx, esi
mov dword [esp + 0x30], esi
mov dword [ebx + 0x31c], edx
jmp 0x40bb80
cmp edi, 0x5817
jne 0x40bb4b
mov dword [ebx + 0x328], esi
jmp 0x40bb80
cmp edi, 0x5834
jne 0x40bb5b
mov dword [ebx + 0x338], esi
jmp 0x40bb80
cmp edi, 0x580e
jne 0x40bb6b
mov dword [ebx + 0x324], esi
jmp 0x40bb80
cmp edi, 0x180e
jne 0x40bb80
mov ecx, ebx
call fcn.00410420
mov dword [ebx + 0x324], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [ebx]
push 0
push eax
push ecx
call fcn.00487810
mov eax, dword [esp + 0x2c]
add esp, 0xc
dec eax
mov dword [esp + 0x20], eax
jne 0x40b398
jmp 0x40cc86
mov edx, dword [ebx]
or esi, 0xffffffff
push 0
push edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call fcn.00487810
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x28]
push 1
push ecx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004103a0
cmp ax, 0x4949
mov word [ebx + 4], ax
je 0x40bc01
cmp ax, 0x4d4d
jne 0x40cc86
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x1c]
push 1
push ecx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004103a0
xor eax, eax
lea edi, [ebx + 0x7f934]
mov ecx, 0x5a
rep stosd dword es:[edi], eax
mov dword [ebx + 0x370], eax
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
test eax, eax
je 0x40bccb
push 0
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
add esp, 0xc
push 0
mov ecx, ebx
call fcn.004218c0
test eax, eax
jne 0x40bccb
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x18]
push 1
push edx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004084a0
test eax, eax
jne 0x40bc78
mov eax, dword [ebx + 0x344]
test eax, eax
mov dword [ebx + 0x35c], 0x10
je 0x40bd2d
mov ecx, dword [ebx]
push 0
push eax
push ecx
call fcn.00487810
add esp, 0xc
push 1
lea edx, [esp + 0xc4]
push edx
mov ecx, ebx
call fcn.004126e0
test eax, eax
je 0x40bd2d
mov eax, dword [esp + 0xc0]
mov cx, word [esp + 0xc8]
mov dx, word [esp + 0xc4]
mov dword [ebx + 0x35c], eax
mov word [ebx + 0x44c], cx
mov word [ebx + 0x44e], dx
mov edi, dword [ebx + 0x370]
xor edx, edx
test edi, edi
jbe 0x40bde1
lea eax, [ebx + 0x7f938]
mov ecx, dword [eax + 0x18]
mov esi, dword [esp + 0x28]
cmp esi, ecx
jge 0x40bd54
mov esi, ecx
mov dword [esp + 0x28], esi
cmp esi, 3
jle 0x40bd61
mov dword [esp + 0x28], 3
cmp dword [eax + 8], 6
jne 0x40bd6c
cmp ecx, 3
je 0x40bdd1
movzx esi, word [ebx + 0x43a]
movzx ecx, word [ebx + 0x438]
imul ecx, esi
mov esi, dword [eax - 4]
imul esi, dword [eax]
cmp esi, ecx
jle 0x40bdd1
mov cx, word [eax - 4]
mov word [ebx + 0x43a], cx
mov cx, word [eax]
mov word [ebx + 0x438], cx
mov ecx, dword [eax + 4]
mov dword [ebx + 0x378], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x37c], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x340], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x454], ecx
mov ecx, dword [eax + 0x18]
mov esi, edx
mov dword [ebx + 0x374], ecx
mov dword [esp + 0x1c], esi
jmp 0x40bdd5
mov esi, dword [esp + 0x1c]
inc edx
add eax, 0x24
cmp edx, edi
jb 0x40bd43
movzx ecx, word [ebx + 0x43a]
lea eax, [ecx + 1]
cdq
sub eax, edx
sar eax, 1
imul ax, word [ebx + 0x44a]
mov word [ebx + 0x44a], ax
mov eax, dword [ebx + 0x7f94c]
xor edi, edi
cmp eax, edi
je 0x40be11
mov dword [ebx + 0x454], eax
cmp esi, edi
jl 0x40bf69
cmp dword [ebx + 0x798d8], edi
jne 0x40bf69
mov eax, dword [ebx + 0x37c]
cmp eax, 0x8001
ja 0x40c0c1
je 0x40c0a8
cmp eax, 0x63
ja 0x40bf0c
je case.0x40be5b.6
cmp eax, 7
ja case.0x40be5b.2
movzx edx, byte [eax + 0x410138]
jmp dword [edx*4 + 0x41012c]
mov eax, dword [ebx + 0x378]
add eax, 0xfffffff8
cmp eax, 8
ja case.0x40be77.9
movzx eax, byte [eax + 0x410150]
jmp dword [eax*4 + 0x410140]
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40be77.9
lea ecx, [esi + esi*8]
mov dword [ebx + 0x798d8], 0x419c50
cmp dword [ebx + ecx*4 + 0x7f944], 2
jne 0x40beab
mov dword [ebx + 0x434], 6
push 6
lea eax, [ebx + 0x215]
push str.PENTAX
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
jne case.0x40be77.9
mov dword [ebx + 0x798d8], 0x419fb0
movzx ecx, word [ebx + 0x438]
lea edx, [esi + esi*8]
mov eax, dword [ebx + edx*4 + 0x7f954]
movzx edx, word [ebx + 0x43a]
imul ecx, edx
lea eax, [eax + eax*4]
shl ecx, 3
cmp eax, ecx
jne 0x40bf69
mov dword [ebx + 0x798d8], 0x41a8c0
jmp 0x40bf69
mov dword [ebx + 0x798d8], 0x412a20
jmp 0x40bf69
cmp eax, 0x106
je 0x40c099
cmp eax, 0x7fff
jne case.0x40be5b.2
mov ax, word [ebx + 0x438]
xor edi, edi
mov di, ax
lea edx, [esi + esi*8]
mov dword [ebx + 0x798d8], 0x420d90
mov edx, dword [ebx + edx*4 + 0x7f954]
shl edx, 3
imul edi, ecx
imul edi, dword [ebx + 0x378]
cmp edx, edi
je 0x40bf67
add eax, 8
mov word [ebx + 0x438], ax
mov dword [ebx + 0x798d8], 0x420500
xor edi, edi
mov ecx, dword [ebx + 0x3a0]
cmp ecx, edi
jne 0x40bfce
cmp dword [ebx + 0x374], 3
jne 0x40bfa0
lea edx, [esi + esi*8]
cmp dword [ebx + edx*4 + 0x7f954], edi
je 0x40bfa0
mov eax, dword [ebx + 0x378]
cmp eax, 0xe
je 0x40bfa0
cmp eax, 0x800
je 0x40bfa0
mov dword [ebx + 0x39c], edi
cmp ecx, edi
jne 0x40bfce
cmp dword [ebx + 0x378], 8
jne 0x40bfe6
mov ecx, dword [ebx + 0x37c]
mov eax, 1
cmp ecx, eax
jne 0x40bfce
lea ecx, [esi + esi*8]
cmp dword [ebx + ecx*4 + 0x7f944], eax
jne 0x40bfce
mov dword [ebx + 0x39c], edi
cmp dword [ebx + 0x378], 8
jne 0x40bfe6
cmp dword [ebx + 0x374], 4
jne 0x40bfe6
mov dword [ebx + 0x39c], edi
mov ecx, dword [ebx + 0x370]
xor eax, eax
cmp ecx, edi
mov dword [esp + 0x24], eax
jbe 0x40cc86
lea ecx, [ebx + 0x7f934]
cmp eax, esi
je 0x40c178
mov edx, dword [esp + 0x28]
cmp dword [ecx + 0x1c], edx
jne 0x40c178
mov eax, dword [ecx + 8]
movzx edi, word [ebx + 0x44e]
lea esi, [eax + 1]
mov eax, dword [ebx + 0x35c]
lea edx, [eax + 1]
movzx eax, word [ebx + 0x44c]
imul eax, edi
mov edi, edx
imul edi, edx
xor edx, edx
div edi
mov edx, esi
imul edx, esi
mov esi, edx
mov edi, eax
mov eax, dword [ecx + 4]
imul eax, dword [ecx]
cdq
idiv esi
mov esi, dword [esp + 0x1c]
cmp eax, edi
jbe 0x40c174
mov ax, word [ecx]
mov word [ebx + 0x44c], ax
mov dx, word [ecx + 4]
mov word [ebx + 0x44e], dx
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x344], eax
mov edx, dword [ecx + 0x20]
mov dword [ebx + 0x350], edx
mov eax, dword [ecx + 8]
mov dword [ebx + 0x35c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
jmp 0x40c178
mov dword [ebx + 0x798d8], 0x41ed40
jmp 0x40bf69
mov dword [ebx + 0x434], 8
mov dword [ebx + 0x798d8], 0x419c50
jmp 0x40bf69
cmp eax, 0x8799
ja 0x40c0f4
je 0x40c0e5
sub eax, 0x8005
je 0x40c0b2
sub eax, 0x5e
je 0x40bf69
mov dword [ebx + 0x39c], edi
jmp 0x40bf69
mov dword [ebx + 0x798d8], 0x415c90
jmp 0x40bf69
cmp eax, 0xfde8
je 0x40c11c
cmp eax, 0xffff
je 0x40c10d
mov dword [ebx + 0x39c], edi
jmp 0x40bf69
mov dword [ebx + 0x798d8], 0x4156b0
jmp 0x40bf69
lea eax, [esi + esi*8]
mov eax, dword [ebx + eax*4 + 0x7f944]
sub eax, 2
je 0x40c15f
sub eax, 4
je 0x40c14a
sub eax, 0x801d
jne 0x40bf69
mov dword [ebx + 0x798d8], 0x41f540
jmp 0x40bf69
mov dword [ebx + 0x798d8], 0x403af0
mov dword [ebx + 0x330], edi
jmp 0x40bf69
mov dword [ebx + 0x798d8], 0x41fa20
mov dword [ebx + 0x330], edi
jmp 0x40bf69
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x370]
inc eax
add ecx, 0x24
cmp eax, edx
mov dword [esp + 0x24], eax
jb 0x40c000
jmp 0x40cc1e
mov edx, eax
lea ecx, [esp + 0x90]
sub edx, ecx
xor eax, eax
push esi
lea edi, [ebx + 0x7fa9c]
mov ecx, 7
push edx
mov dword [esp + 0x2c], edx
rep stosd dword es:[edi], eax
mov edx, dword [ebx]
push edx
call fcn.00487810
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x24]
push 1
push ecx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
mov word [ebx + 4], ax
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
and eax, 0xffffff00
cmp eax, 0x52617700
jne 0x40c62a
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
push 0
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004084a0
add eax, dword [esp + 0x28]
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x2c], 0xff
mov byte [esp + 0x2d], 0xff
mov byte [esp + 0x2e], 0xff
mov byte [esp + 0x2f], 0xff
call fcn.00487020
add esp, 0x1c
lea eax, [esp + 0x10]
push eax
mov ecx, ebx
call fcn.004084a0
mov ecx, dword [ebx]
push ecx
push 4
lea edx, [esp + 0x18]
push 1
push edx
mov esi, eax
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
test esi, esi
je 0x40c563
mov dword [esp + 0x38], esi
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
mov ecx, ebx
mov esi, eax
call fcn.00410420
mov ecx, ebx
call fcn.00410420
mov ecx, ebx
mov dword [esp + 0x30], eax
call fcn.00410420
mov edi, eax
mov eax, dword [ebx]
push eax
call fcn.00487c33
mov ecx, dword [esp + 0x28]
mov edx, dword [ebx]
mov dword [esp + 0x24], eax
lea eax, [edi + ecx]
push 0
push eax
push edx
mov dword [esp + 0x24], eax
call fcn.00487810
add esp, 0x10
cmp esi, 0x10f
ja 0x40c448
je 0x40c439
lea eax, [esi - 0x100]
cmp eax, 0xe
ja case.0x40c4e7.542
jmp dword [eax*4 + 0x41015c]
and edi, 3
movsx eax, byte [edi + str.0653]
sub eax, 0x30
mov dword [ebx + 0x450], eax
jmp case.0x40c4e7.542
xor esi, esi
lea esp, [esp]
push 0xb
mov ecx, ebx
call fcn.004107c0
fstp dword [esp + esi*4 + 0x50]
inc esi
cmp esi, 9
jb 0x40c3a0
lea ecx, [esp + 0x50]
push ecx
mov ecx, ebx
call fcn.00421850
jmp case.0x40c4e7.542
lea esi, [ebx + 0x8578]
mov edi, 3
nop
push 0xb
mov ecx, ebx
call fcn.004107c0
fstp dword [esi]
add esi, 4
dec edi
jne 0x40c3d0
jmp case.0x40c4e7.542
mov word [ebx + 0x43a], di
jmp case.0x40c4e7.542
mov word [ebx + 0x438], di
jmp case.0x40c4e7.542
mov word [ebx + 0x442], di
jmp case.0x40c4e7.542
mov word [ebx + 0x440], di
jmp case.0x40c4e7.542
mov word [ebx + 0x43e], di
jmp case.0x40c4e7.542
mov word [ebx + 0x43c], di
jmp case.0x40c4e7.542
mov dword [ebx + 0x7fa9c], edi
jmp case.0x40c4e7.542
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x340], edx
jmp case.0x40c4e7.542
cmp esi, 0x21c
ja 0x40c4d3
je 0x40c4c4
cmp esi, 0x210
ja 0x40c4ad
je 0x40c49c
sub esi, 0x110
je 0x40c483
sub esi, 2
jne case.0x40c4e7.542
mov eax, dword [esp + 0x20]
add eax, 0xfffffffc
mov dword [ebx + 0x7faa0], eax
jmp case.0x40c4e7.542
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
mov dword [ebx + 0x348], ecx
mov dword [ebx + 0x354], edx
jmp case.0x40c4e7.542
mov eax, edi
mov dword [esp + 0x30], edi
mov dword [ebx + 0x7fab4], eax
jmp case.0x40c4e7.542
cmp esi, 0x21a
jne case.0x40c4e7.542
mov dword [ebx + 0x7fab0], edi
jmp case.0x40c4e7.542
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x33c], ecx
jmp case.0x40c4e7.542
lea eax, [esi - 0x21d]
cmp eax, 0xe4
ja case.0x40c4e7.542
movzx edx, byte [eax + 0x4101ac]
jmp dword [edx*4 + 0x410198]
mov dword [ebx + 0x7faa4], edi
jmp case.0x40c4e7.542
movzx eax, word [ebx + 0x442]
sub edi, eax
mov dword [ebx + 0x7faac], edi
jmp case.0x40c4e7.542
mov ecx, dword [esp + 0x14]
mov dword [ebx + 0x7faa8], ecx
jmp case.0x40c4e7.542
mov edx, dword [ebx]
push edx
push 0x3f
push 1
lea esi, [ebx + 0x255]
push esi
mov byte [ebx + 0x294], 0
call fcn.00487020
push str._camera
push esi
call fcn.00488420
add esp, 0x18
test eax, eax
je case.0x40c4e7.542
mov byte [eax], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx]
push 0
push eax
push ecx
call fcn.00487810
mov eax, dword [esp + 0x44]
add esp, 0xc
dec eax
mov dword [esp + 0x38], eax
jne 0x40c2e4
cmp dword [ebx + 0x7fa9c], 3
mov eax, 0x417010
jl 0x40c576
mov eax, 0x418ca0
mov dword [ebx + 0x798d8], eax
mov eax, str.Phase_One
lea edx, [ebx + 0x215]
mov dword [ebx + 0x384], 0xffff
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40c593
mov al, byte [ebx + 0x255]
test al, al
lea edx, [ebx + 0x255]
jne 0x40c62a
movzx eax, word [ebx + 0x438]
cmp eax, 0x1020
jg 0x40c60f
je 0x40c5fc
cmp eax, 0x80c
je 0x40c5e2
cmp eax, 0xa7a
jne 0x40c62a
mov eax, str.H_10
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40c5d6
jmp 0x40c62a
mov eax, str.LightPhase
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40c5f0
jmp 0x40c62a
mov eax, str.H_20
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40c603
jmp 0x40c62a
cmp eax, 0x1570
jne 0x40c62a
mov eax, str.H_25
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40c620
mov eax, dword [esp + 0x24]
test eax, eax
je 0x40cc86
mov edx, dword [ebx]
push 0
or esi, 0xffffffff
push 0
push edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call fcn.00487810
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x28]
push 1
push ecx
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
call fcn.00487020
add esp, 0x1c
lea edx, [esp + 0x14]
push edx
mov ecx, ebx
call fcn.004103a0
cmp ax, 0x4949
mov word [ebx + 4], ax
je 0x40c693
cmp ax, 0x4d4d
jne 0x40cc86
mov eax, dword [ebx]
push eax
push 2
lea ecx, [esp + 0x1c]
push 1
push ecx
mov byte [esp + 0x24], 0xff
mov byte [esp + 0x25], 0xff
call fcn.00487020
xor eax, eax
lea edi, [ebx + 0x7f934]
mov ecx, 0x5a
rep stosd dword es:[edi], eax
mov edx, dword [ebx]
push edx
push 4
mov dword [ebx + 0x370], eax
lea eax, [esp + 0x28]
push 1
push eax
mov byte [esp + 0x30], 0xff
mov byte [esp + 0x31], 0xff
mov byte [esp + 0x32], 0xff
mov byte [esp + 0x33], 0xff
call fcn.00487020
add esp, 0x20
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call fcn.004084a0
test eax, eax
je 0x40c753
nop
lea esp, [esp]
mov edx, dword [ebx]
push 0
push eax
push edx
call fcn.00487810
add esp, 0xc
push 0
mov ecx, ebx
call fcn.004218c0
test eax, eax
jne 0x40c753
mov eax, dword [ebx]
push eax
push 4
lea ecx, [esp + 0x18]
push 1
push ecx
mov byte [esp + 0x20], 0xff
mov byte [esp + 0x21], 0xff
mov byte [esp + 0x22], 0xff
mov byte [esp + 0x23], 0xff
call fcn.00487020
add esp, 0x10
lea edx, [esp + 0x10]
push edx
mov ecx, ebx
call fcn.004084a0
test eax, eax
jne 0x40c700
mov eax, dword [ebx + 0x344]
test eax, eax
mov dword [ebx + 0x35c], 0x10
je 0x40c7b5
push 0
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
add esp, 0xc
push 1
lea ecx, [esp + 0xc4]
push ecx
mov ecx, ebx
call fcn.004126e0
test eax, eax
je 0x40c7b5
mov edx, dword [esp + 0xc0]
mov ax, word [esp + 0xc8]
mov cx, word [esp + 0xc4]
mov dword [ebx + 0x35c], edx
mov word [ebx + 0x44c], ax
mov word [ebx + 0x44e], cx
mov edi, dword [ebx + 0x370]
xor edx, edx
test edi, edi
jbe 0x40c86e
lea eax, [ebx + 0x7f938]
nop
lea esp, [esp]
mov ecx, dword [eax + 0x18]
mov esi, dword [esp + 0x28]
cmp esi, ecx
jge 0x40c7e1
mov esi, ecx
mov dword [esp + 0x28], esi
cmp esi, 3
jle 0x40c7ee
mov dword [esp + 0x28], 3
cmp dword [eax + 8], 6
jne 0x40c7f9
cmp ecx, 3
je 0x40c85e
movzx esi, word [ebx + 0x43a]
movzx ecx, word [ebx + 0x438]
imul ecx, esi
mov esi, dword [eax]
imul esi, dword [eax - 4]
cmp esi, ecx
jle 0x40c85e
mov cx, word [eax - 4]
mov word [ebx + 0x43a], cx
mov cx, word [eax]
mov word [ebx + 0x438], cx
mov ecx, dword [eax + 4]
mov dword [ebx + 0x378], ecx
mov ecx, dword [eax + 8]
mov dword [ebx + 0x37c], ecx
mov ecx, dword [eax + 0x10]
mov dword [ebx + 0x340], ecx
mov ecx, dword [eax + 0x14]
mov dword [ebx + 0x454], ecx
mov ecx, dword [eax + 0x18]
mov esi, edx
mov dword [ebx + 0x374], ecx
mov dword [esp + 0x1c], esi
jmp 0x40c862
mov esi, dword [esp + 0x1c]
inc edx
add eax, 0x24
cmp edx, edi
jb 0x40c7d0
movzx ecx, word [ebx + 0x43a]
lea eax, [ecx + 1]
cdq
sub eax, edx
sar eax, 1
imul ax, word [ebx + 0x44a]
mov word [ebx + 0x44a], ax
mov eax, dword [ebx + 0x7f94c]
xor edi, edi
cmp eax, edi
je 0x40c89e
mov dword [ebx + 0x454], eax
cmp esi, edi
jl 0x40c9f6
cmp dword [ebx + 0x798d8], edi
jne 0x40c9f6
mov eax, dword [ebx + 0x37c]
cmp eax, 0x8001
ja 0x40cb51
je 0x40cb38
cmp eax, 0x63
ja 0x40c999
je case.0x40c8e8.6
cmp eax, 7
ja case.0x40c8e8.2
movzx edx, byte [eax + 0x4102a0]
jmp dword [edx*4 + 0x410294]
mov eax, dword [ebx + 0x378]
add eax, 0xfffffff8
cmp eax, 8
ja case.0x40c904.9
movzx eax, byte [eax + 0x4102b8]
jmp dword [eax*4 + 0x4102a8]
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40c904.9
lea ecx, [esi + esi*8]
mov dword [ebx + 0x798d8], 0x419c50
cmp dword [ebx + ecx*4 + 0x7f944], 2
jne 0x40c938
mov dword [ebx + 0x434], 6
push 6
lea eax, [ebx + 0x215]
push str.PENTAX
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
jne case.0x40c904.9
mov dword [ebx + 0x798d8], 0x419fb0
movzx ecx, word [ebx + 0x438]
lea edx, [esi + esi*8]
mov eax, dword [ebx + edx*4 + 0x7f954]
movzx edx, word [ebx + 0x43a]
imul ecx, edx
lea eax, [eax + eax*4]
shl ecx, 3
cmp eax, ecx
jne 0x40c9f6
mov dword [ebx + 0x798d8], 0x41a8c0
jmp 0x40c9f6
mov dword [ebx + 0x798d8], 0x412a20
jmp 0x40c9f6
cmp eax, 0x106
je 0x40cb29
cmp eax, 0x7fff
jne case.0x40c8e8.2
mov ax, word [ebx + 0x438]
xor edi, edi
mov di, ax
lea edx, [esi + esi*8]
mov dword [ebx + 0x798d8], 0x420d90
mov edx, dword [ebx + edx*4 + 0x7f954]
shl edx, 3
imul edi, ecx
imul edi, dword [ebx + 0x378]
cmp edx, edi
je 0x40c9f4
add eax, 8
mov word [ebx + 0x438], ax
mov dword [ebx + 0x798d8], 0x420500
xor edi, edi
mov ecx, dword [ebx + 0x3a0]
cmp ecx, edi
jne 0x40ca5b
cmp dword [ebx + 0x374], 3
jne 0x40ca2d
lea edx, [esi + esi*8]
cmp dword [ebx + edx*4 + 0x7f954], edi
je 0x40ca2d
mov eax, dword [ebx + 0x378]
cmp eax, 0xe
je 0x40ca2d
cmp eax, 0x800
je 0x40ca2d
mov dword [ebx + 0x39c], edi
cmp ecx, edi
jne 0x40ca5b
cmp dword [ebx + 0x378], 8
jne 0x40ca73
mov ecx, dword [ebx + 0x37c]
mov eax, 1
cmp ecx, eax
jne 0x40ca5b
lea ecx, [esi + esi*8]
cmp dword [ebx + ecx*4 + 0x7f944], eax
jne 0x40ca5b
mov dword [ebx + 0x39c], edi
cmp dword [ebx + 0x378], 8
jne 0x40ca73
cmp dword [ebx + 0x374], 4
jne 0x40ca73
mov dword [ebx + 0x39c], edi
mov ecx, dword [ebx + 0x370]
xor eax, eax
cmp ecx, edi
mov dword [esp + 0x24], eax
jbe 0x40cc86
lea ecx, [ebx + 0x7f934]
lea ecx, [ecx]
cmp eax, esi
je 0x40cc08
mov edx, dword [esp + 0x28]
cmp dword [ecx + 0x1c], edx
jne 0x40cc08
mov eax, dword [ecx + 8]
movzx edi, word [ebx + 0x44e]
lea esi, [eax + 1]
mov eax, dword [ebx + 0x35c]
lea edx, [eax + 1]
movzx eax, word [ebx + 0x44c]
imul eax, edi
mov edi, edx
imul edi, edx
xor edx, edx
div edi
mov edi, eax
mov eax, esi
imul eax, esi
mov esi, eax
mov eax, dword [ecx]
imul eax, dword [ecx + 4]
cdq
idiv esi
mov esi, dword [esp + 0x1c]
cmp eax, edi
jbe 0x40cc04
mov ax, word [ecx]
mov word [ebx + 0x44c], ax
mov dx, word [ecx + 4]
mov word [ebx + 0x44e], dx
mov eax, dword [ecx + 0x14]
mov dword [ebx + 0x344], eax
mov edx, dword [ecx + 0x20]
mov dword [ebx + 0x350], edx
mov eax, dword [ecx + 8]
mov dword [ebx + 0x35c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], eax
jmp 0x40cc08
mov dword [ebx + 0x798d8], 0x41ed40
jmp 0x40c9f6
mov dword [ebx + 0x434], 8
mov dword [ebx + 0x798d8], 0x419c50
jmp 0x40c9f6
cmp eax, 0x8799
ja 0x40cb84
je 0x40cb75
sub eax, 0x8005
je 0x40cb42
sub eax, 0x5e
je 0x40c9f6
mov dword [ebx + 0x39c], edi
jmp 0x40c9f6
mov dword [ebx + 0x798d8], 0x415c90
jmp 0x40c9f6
cmp eax, 0xfde8
je 0x40cbac
cmp eax, 0xffff
je 0x40cb9d
mov dword [ebx + 0x39c], edi
jmp 0x40c9f6
mov dword [ebx + 0x798d8], 0x4156b0
jmp 0x40c9f6
lea eax, [esi + esi*8]
mov eax, dword [ebx + eax*4 + 0x7f944]
sub eax, 2
je 0x40cbef
sub eax, 4
je 0x40cbda
sub eax, 0x801d
jne 0x40c9f6
mov dword [ebx + 0x798d8], 0x41f540
jmp 0x40c9f6
mov dword [ebx + 0x798d8], 0x403af0
mov dword [ebx + 0x330], edi
jmp 0x40c9f6
mov dword [ebx + 0x798d8], 0x41fa20
mov dword [ebx + 0x330], edi
jmp 0x40c9f6
mov eax, dword [esp + 0x24]
mov edx, dword [ebx + 0x370]
inc eax
add ecx, 0x24
cmp eax, edx
mov dword [esp + 0x24], eax
jb 0x40ca90
mov eax, dword [esp + 0x20]
test eax, eax
jl 0x40cc86
mov esi, dword [ebx + 0x35c]
lea ecx, [eax + eax*8 + 0x1fe54]
mov edx, dword [ebx + ecx*4]
shl edx, 5
or esi, edx
lea eax, [eax + eax*8]
lea eax, [ebx + eax*4]
mov dword [ebx + 0x35c], esi
mov ecx, dword [eax + 0x7f940]
dec ecx
je 0x40cc5a
sub ecx, 0xfde7
je 0x40cc6d
jmp 0x40cc86
cmp dword [eax + 0x7f93c], 8
jle 0x40cc86
mov dword [ebx + 0x798dc], 0x41fe50
cmp dword [eax + 0x7f944], 6
mov eax, 0x403af0
je 0x40cc80
mov eax, 0x41fa20
mov dword [ebx + 0x798dc], eax
mov al, byte [ebx + 0x215]
test al, al
jne 0x40ccbb
mov ecx, dword [esp + 0x2c]
push ecx
push 0
mov ecx, ebx
call fcn.0042b150
mov al, byte [ebx + 0x215]
test al, al
jne 0x40ccbb
push 0
mov ecx, ebx
mov dword [ebx + 0x39c], 0
call fcn.0042ac60
xor edi, edi
lea ecx, [ecx]
mov edx, dword [edi + 0x695be8]
push edx
lea esi, [ebx + 0x215]
push esi
call fcn.00488420
add esp, 8
test eax, eax
je 0x40ccec
mov ecx, dword [edi + 0x695be8]
mov edx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x40cce2
add edi, 4
cmp edi, 0x3c
jb 0x40ccc0
push 5
push str.KODAK
lea edi, [ebx + 0x215]
push edi
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40cd1a
mov byte [ebx + 0x265], al
mov byte [ebx + 0x225], al
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx + ebx + 0x214]
cmp byte [eax], 0x20
jne 0x40cd3c
mov byte [eax], 0
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x20
je 0x40cd30
xor eax, eax
lea edi, [ebx + 0x255]
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx + ebx + 0x254]
cmp byte [eax], 0x20
jne 0x40cd6c
lea ebx, [ebx]
mov byte [eax], 0
mov cl, byte [eax - 1]
dec eax
cmp cl, 0x20
je 0x40cd60
lea edx, [ebx + 0x215]
xor eax, eax
mov edi, edx
mov ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov esi, ecx
push esi
push edx
lea edi, [ebx + 0x255]
push edi
call fcn.00488310
add esp, 0xc
test eax, eax
jne 0x40cdbc
mov al, byte [esi + ebx + 0x255]
inc esi
cmp al, 0x20
jne 0x40cdbc
mov ecx, 0x40
sub ecx, esi
push ecx
lea edx, [esi + ebx + 0x255]
push edx
push edi
call fcn.00487f10
add esp, 0xc
push 0xf
push str.Digital_Camera
push edi
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40cde2
lea eax, [ebx + 0x264]
sub edi, eax
mov cl, byte [eax]
mov byte [eax + edi], cl
inc eax
test cl, cl
jne 0x40cdd8
mov eax, dword [ebx + 0x39c]
xor edx, edx
cmp eax, edx
mov byte [ebx + 0x2d4], 0
mov byte [ebx + 0x294], 0
mov byte [ebx + 0x254], 0
mov byte [ebx + 0x314], 0
mov byte [ebx + 0x214], 0
je 0x41009e
cmp dword [ebx + 0x384], edx
jne 0x40ce31
mov ecx, dword [ebx + 0x378]
mov eax, 1
shl eax, cl
dec eax
mov dword [ebx + 0x384], eax
cmp word [ebx + 0x43c], dx
jne 0x40ce48
mov cx, word [ebx + 0x438]
mov word [ebx + 0x43c], cx
cmp word [ebx + 0x43e], dx
jne 0x40ce5f
mov ax, word [ebx + 0x43a]
mov word [ebx + 0x43e], ax
mov cx, word [ebx + 0x44a]
cmp cx, dx
je 0x40ce96
xor eax, eax
mov ax, word [ebx + 0x43c]
add ax, cx
mov word [ebx + 0x43e], ax
mov dword [ebx + 0x460], edx
mov dword [ebx + 0x464], 0x3ff00000
dec eax
mov word [ebx + 0x43c], ax
cmp word [ebx + 0x43c], 0xa40
jne 0x40cebe
cmp word [ebx + 0x43e], 0xf60
jne 0x40cebe
mov word [ebx + 0x43c], 0xa38
mov word [ebx + 0x43e], 0xf38
cmp word [ebx + 0x43c], 0xc40
jne 0x40cee6
cmp word [ebx + 0x43e], 0x1300
jne 0x40cee6
mov word [ebx + 0x43c], 0xc34
mov word [ebx + 0x43e], 0x1250
cmp dword [ebx + 0x3a0], edx
je 0x40cf4c
cmp dword [ebx + 0x330], 0xffffffff
jne 0x40cefd
mov dword [ebx + 0x330], edx
cmp dword [ebx + 0x330], edx
je 0x40cf13
mov ecx, dword [ebx + 0x374]
mov dword [ebx + 0x39c], ecx
jmp 0x40cf1f
mov edx, dword [ebx + 0x374]
mov dword [ebx + 0x458], edx
mov eax, dword [ebx + 0x37c]
cmp eax, 1
jne 0x40cf34
mov dword [ebx + 0x798d8], 0x415170
cmp eax, 7
jne 0x40ffbb
mov dword [ebx + 0x798d8], 0x414be0
jmp 0x40ffbb
xor edx, edx
lea eax, [ebx + 0x215]
mov edi, str.Canon
mov esi, eax
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
sete dl
mov ecx, edx
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x40cf96
mov ecx, 2
mov edi, str.HEAPCCDR
lea esi, [esp + 0x96]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
mov ecx, 0x412a20
jne 0x40cf90
mov ecx, 0x411a50
mov dword [ebx + 0x798d8], ecx
mov edi, str.NIKON
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40cfe6
cmp dword [ebx + 0x798d8], edx
jne 0x40cfba
mov dword [ebx + 0x798d8], 0x419c50
cmp byte [ebx + 0x255], 0x45
jne 0x40cfe8
mov edi, dword [ebx + 0x340]
mov esi, dword [ebx + 0x434]
xor ecx, ecx
cmp edi, edx
sete cl
shl ecx, 2
or ecx, 2
or esi, ecx
mov dword [ebx + 0x434], esi
jmp 0x40cfe8
xor edx, edx
mov esi, eax
mov edi, str.CASIO
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d00e
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x384], 0xf7f
cmp dword [ebx + 0x3a4], edx
je 0x40d07b
mov ax, word [ebx + 0x43c]
mov cx, word [ebx + 0x43e]
xor esi, esi
mov si, ax
xor edi, edi
mov di, cx
shl esi, 1
cmp esi, edi
jge 0x40d044
mov dword [ebx + 0x460], edx
mov dword [ebx + 0x464], 0x3fe00000
cmp ax, cx
jbe 0x40d059
mov dword [ebx + 0x460], edx
mov dword [ebx + 0x464], 0x40000000
push 0
mov ecx, ebx
mov dword [ebx + 0x330], 0
mov dword [ebx + 0x798d8], 0x421130
call fcn.0042cde0
jmp case.0x40fd8c.3711
cmp dword [esp + 0x24], edx
je 0x40d09f
cmp dword [ebx + 0x378], 0xf
jne 0x40d09f
mov dword [ebx + 0x330], edx
mov dword [ebx + 0x798d8], 0x4145f0
jmp case.0x40fd8c.3711
lea eax, [ebx + 0x255]
mov edi, str.PowerShot_600
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d0ff
mov word [ebx + 0x43c], 0x265
mov word [ebx + 0x43e], 0x356
mov word [ebx + 0x43a], 0x380
mov dword [ebx + 0x460], 0x4e447bec
mov dword [ebx + 0x464], 0x3feeee10
mov dword [ebx + 0x330], 0xe1e4e1e4
mov dword [ebx + 0x798d8], 0x410c10
jmp 0x40ff02
mov edi, str.PowerShot_A5
mov esi, eax
mov ecx, 0xd
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40febf
mov edi, str.PowerShot_A5_Zoom
mov esi, eax
mov ecx, 0x12
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40febf
mov edi, str.PowerShot_A50
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d167
mov word [ebx + 0x43c], 0x3c8
mov word [ebx + 0x43e], 0x50a
mov word [ebx + 0x43a], 0x528
mov dword [ebx + 0x330], 0x1b4e4b1e
jmp 0x40fef8
mov edi, str.PowerShot_Pro70
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d19a
mov word [ebx + 0x43c], 0x400
mov word [ebx + 0x43e], 0x610
mov dword [ebx + 0x330], 0x1e4b4e1b
jmp 0x40fef8
mov edi, str.PowerShot_SD300
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d1f2
mov word [ebx + 0x43c], 0x6d8
mov word [ebx + 0x43e], 0x928
mov word [ebx + 0x438], 0x6e6
mov word [ebx + 0x43a], 0x960
mov eax, 0xc
mov word [ebx + 0x440], ax
mov word [ebx + 0x442], ax
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_A460
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d22f
mov word [ebx + 0x43c], 0x7a8
mov word [ebx + 0x43e], 0xa38
mov word [ebx + 0x438], 0x7b0
mov word [ebx + 0x43a], 0xa68
mov eax, 4
jmp 0x40d1d5
mov edi, str.PowerShot_A530
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d28c
mov word [ebx + 0x43c], 0x7c0
mov word [ebx + 0x43e], 0xa3c
mov word [ebx + 0x438], 0x7c8
mov word [ebx + 0x43a], 0xa70
mov word [ebx + 0x440], 6
mov word [ebx + 0x442], 0xa
mov dword [ebx + 0x798d8], 0x411610
mov dword [ebx + 0x38c], edx
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_A610
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d307
mov ecx, ebx
call fcn.004115c0
test eax, eax
je 0x40d2c2
mov eax, str.S2_IS
mov ecx, ebx
sub ecx, eax
lea edx, [ecx + 0x25f]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40d2b8
mov word [ebx + 0x43c], 0x7a8
mov word [ebx + 0x43e], 0xa38
mov word [ebx + 0x438], 0x7b0
mov word [ebx + 0x43a], 0xa70
mov word [ebx + 0x440], 8
mov word [ebx + 0x442], 0xc
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_A620
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d35e
mov word [ebx + 0x43c], 0x918
mov word [ebx + 0x43e], 0xc28
mov word [ebx + 0x438], 0x924
mov word [ebx + 0x43a], 0xc50
mov word [ebx + 0x440], 0xc
mov word [ebx + 0x442], 0x24
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_A720
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d3b5
mov word [ebx + 0x43c], 0x9a8
mov word [ebx + 0x43e], 0xce2
mov word [ebx + 0x438], 0x9b0
mov word [ebx + 0x43a], 0xd08
mov word [ebx + 0x440], 5
mov word [ebx + 0x442], 6
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_A630
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d3ed
mov word [ebx + 0x43c], 0x9a8
mov word [ebx + 0x43e], 0xcd8
mov word [ebx + 0x438], 0x9b4
mov word [ebx + 0x43a], 0xd10
jmp 0x40d423
mov edi, str.PowerShot_A640
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d444
mov word [ebx + 0x43c], 0xac8
mov word [ebx + 0x43e], 0xe58
mov word [ebx + 0x438], 0xad4
mov word [ebx + 0x43a], 0xe98
mov word [ebx + 0x440], 6
mov word [ebx + 0x442], 0xc
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_A650
mov esi, eax
mov ecx, 0xf
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d49b
mov word [ebx + 0x43c], 0xbd0
mov word [ebx + 0x43e], 0xfc0
mov word [ebx + 0x438], 0xbe8
mov word [ebx + 0x43a], 0x1008
mov word [ebx + 0x440], 0xc
mov word [ebx + 0x442], 0x30
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_S3_IS
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d4f2
mov word [ebx + 0x43c], 0x850
mov word [ebx + 0x43e], 0xb18
mov word [ebx + 0x438], 0x858
mov word [ebx + 0x43a], 0xb48
mov word [ebx + 0x440], 8
mov word [ebx + 0x442], 0x2c
mov dword [ebx + 0x798d8], 0x411610
jmp case.0x40fd8c.3711
mov edi, str.PowerShot_Pro90_IS
mov esi, eax
mov ecx, 0x13
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d51c
mov word [ebx + 0x43e], 0x768
mov dword [ebx + 0x330], 0xb4b4b4b4
jmp 0x40ff02
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x40d6ab
mov cx, word [ebx + 0x43a]
cmp cx, 0x860
jne 0x40d57f
mov esi, eax
mov edi, str.PowerShot_G1
mov ecx, 0xd
xor eax, eax
mov word [ebx + 0x43c], 0x60e
mov word [ebx + 0x43e], 0x828
mov word [ebx + 0x440], 8
mov word [ebx + 0x442], 4
repe cmpsb byte [esi], byte es:[edi]
jne case.0x40fd8c.3711
mov dword [ebx + 0x330], 0xb4b4b4b4
jmp 0x40ff02
cmp cx, 0x8b0
jne 0x40d5af
mov word [ebx + 0x43c], 0x5a8
mov word [ebx + 0x43e], 0x880
mov word [ebx + 0x440], 6
mov word [ebx + 0x442], 0x30
jmp case.0x40fd8c.3711
cmp cx, 0x948
jne 0x40d5df
mov word [ebx + 0x43c], 0x6b8
mov word [ebx + 0x43e], 0x908
mov word [ebx + 0x440], 6
mov word [ebx + 0x442], 0xc
jmp case.0x40fd8c.3711
cmp cx, 0xa70
jne 0x40d5fa
mov word [ebx + 0x43c], 0x7a8
mov word [ebx + 0x43e], 0xa38
jmp 0x40d5c8
cmp cx, 0xc50
jne 0x40d64b
cmp dword [ebx + 0x338], 0x80000170
mov word [ebx + 0x43c], 0x808
mov word [ebx + 0x43e], 0xc10
mov word [ebx + 0x440], 0xc
mov word [ebx + 0x442], 0x40
jne case.0x40fd8c.3711
push str.EOS_300D
push str.Canon
mov ecx, ebx
call fcn.0042c9b0
jmp case.0x40fd8c.3711
cmp cx, 0xc58
jne 0x40d67b
mov word [ebx + 0x43c], 0x918
mov word [ebx + 0x43e], 0xc28
mov word [ebx + 0x440], 0xc
mov word [ebx + 0x442], 0x2c
jmp case.0x40fd8c.3711
cmp cx, 0xd10
jne 0x40d6ab
mov word [ebx + 0x43c], 0x9a8
mov word [ebx + 0x43e], 0xcd8
mov word [ebx + 0x440], 6
mov word [ebx + 0x442], 4
jmp case.0x40fd8c.3711
mov edi, str.EOS_D2000C
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d6d9
movzx eax, word [ebx + 0x69c]
mov dword [ebx + 0x330], 0x61616161
mov dword [ebx + 0x380], eax
jmp case.0x40fd8c.3711
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x40d942
mov cx, word [ebx + 0x43a]
cmp cx, 0xdbc
jne 0x40d72b
cmp dword [ebx + 0x338], 0x80000189
mov word [ebx + 0x440], 0xe
mov word [ebx + 0x442], 0x2a
jne 0x40d8f1
push str.EOS_350D
push str.Canon
mov ecx, ebx
call fcn.0042c9b0
jmp 0x40d8f1
cmp cx, 0xe0c
jne 0x40d749
mov word [ebx + 0x440], 0xc
mov word [ebx + 0x442], 0x4a
jmp 0x40d8f1
cmp cx, 0xf68
jne 0x40d779
mov word [ebx + 0x43c], 0xa2a
mov word [ebx + 0x43e], 0xf44
mov word [ebx + 0x440], 0x12
mov word [ebx + 0x442], 0x1e
jmp case.0x40fd8c.3711
cmp cx, 0xf6c
jne 0x40d7df
mov eax, dword [ebx + 0x338]
add word [ebx + 0x43c], 0xfffe
cmp eax, 0x80000236
mov word [ebx + 0x440], 0x12
mov word [ebx + 0x442], 0x2a
jne 0x40d7b9
push str.EOS_400D
push str.Canon
mov ecx, ebx
call fcn.0042c9b0
cmp dword [ebx + 0x338], 0x80000254
jne 0x40d8f1
push str.EOS_1000D
push str.Canon
mov ecx, ebx
call fcn.0042c9b0
jmp 0x40d8f1
cmp cx, 0xf90
jne 0x40d806
add word [ebx + 0x43c], 0xfffe
mov word [ebx + 0x440], 0x14
mov word [ebx + 0x442], 0x4c
jmp 0x40d8f1
cmp cx, 0x1008
jne 0x40d836
mov word [ebx + 0x43c], 0xbd0
mov word [ebx + 0x43e], 0xfc0
mov word [ebx + 0x440], 0xc
mov word [ebx + 0x442], 0x30
jmp case.0x40fd8c.3711
cmp cx, 0x10d8
jne 0x40d87f
mov eax, dword [ebx + 0x338]
add word [ebx + 0x43c], 0xfffe
cmp eax, 0x80000176
mov word [ebx + 0x440], 0x12
mov word [ebx + 0x442], 0x16
jne 0x40d8f1
push str.EOS_450D
push str.Canon
mov ecx, ebx
call fcn.0042c9b0
jmp 0x40d8f1
cmp cx, 0x117c
jne 0x40d89a
mov word [ebx + 0x440], 0x22
mov word [ebx + 0x442], 0x5a
jmp 0x40d8f1
cmp cx, 0x4b8
jne 0x40d8d8
mov ax, word [ebx + 0x43e]
shl ax, 2
mov word [ebx + 0x440], 0x33
mov word [ebx + 0x442], 0x3e
mov word [ebx + 0x43e], ax
mov word [ebx + 0x43a], ax
mov dword [ebx + 0x384], 0x3d93
jmp 0x40d8f1
cmp cx, 0x13f4
jne 0x40d912
mov word [ebx + 0x440], 0xd
mov word [ebx + 0x442], 0x62
mov cx, word [ebx + 0x440]
mov dx, word [ebx + 0x442]
sub word [ebx + 0x43c], cx
sub word [ebx + 0x43e], dx
jmp case.0x40fd8c.3711
cmp cx, 0x1650
jne 0x40d942
mov word [ebx + 0x43c], 0xea8
mov word [ebx + 0x43e], 0x1608
mov word [ebx + 0x440], 0x14
mov word [ebx + 0x442], 0x3e
jmp case.0x40fd8c.3711
mov edi, 0x695a4c
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d97d
fld dword [ebx + 0x8578]
fmul qword [0x65c3b0]
fstp dword [ebx + 0x8578]
fld dword [ebx + 0x8580]
fmul qword [0x65c3a8]
fstp dword [ebx + 0x8580]
jmp case.0x40fd8c.3711
mov edi, 0x695a48
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40d9ad
add word [ebx + 0x43e], 0xfffc
mov dword [ebx + 0x460], edx
mov dword [ebx + 0x464], 0x3fe00000
jmp case.0x40fd8c.3711
mov edi, str.D40X
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40feab
mov edi, 0x695a3c
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40feab
mov edi, 0x695a38
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40feab
mov edi, 0x695a34
mov esi, eax
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40fe97
mov esi, eax
mov edi, str.D700
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40fe97
push 3
push 0x695a28
lea esi, [ebx + 0x255]
push esi
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40fe8b
push 3
push 0x695a24
push esi
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40fe8b
push 3
push 0x695a20
push esi
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40fe8b
lea eax, [ebx + 0x255]
mov edi, 0x695a1c
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40da8f
add word [ebx + 0x43e], 0xffd6
jmp case.0x40fd8c.3711
mov edi, str.D100
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40daf9
cmp dword [ebx + 0x37c], 0x8799
jne case.0x40fd8c.3711
mov ecx, ebx
call fcn.00416670
test eax, eax
jne case.0x40fd8c.3711
add word [ebx + 0x43e], 3
mov ecx, dword [ebx + 0x434]
xor eax, eax
mov ax, word [ebx + 0x43e]
or ecx, 8
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x434], ecx
add eax, 3
mov word [ebx + 0x43a], ax
jmp case.0x40fd8c.3711
mov esi, eax
mov edi, str.D200
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40db2c
add word [ebx + 0x43e], 0xfffc
mov word [ebx + 0x442], 1
mov dword [ebx + 0x330], 0x94949494
jmp case.0x40fd8c.3711
push 3
push 0x695a08
lea esi, [ebx + 0x255]
push esi
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40db5d
add word [ebx + 0x43e], 0xfff2
mov word [ebx + 0x442], 6
jmp case.0x40fd8c.3711
push 3
push 0x695a04
push esi
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40db9b
mov ax, word [ebx + 0x43e]
cmp ax, 0xcc0
jne 0x40db8c
mov word [ebx + 0x43e], 0xca0
jmp case.0x40fd8c.3711
add eax, 0xfffffff8
mov word [ebx + 0x43e], ax
jmp case.0x40fd8c.3711
lea eax, [ebx + 0x255]
mov edi, str.D300
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40dbc1
add word [ebx + 0x43e], 0xffe0
jmp case.0x40fd8c.3711
mov edi, str.COOLPIX_P6000
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40dbec
mov dword [ebx + 0x434], 1
mov dword [ebx + 0x330], 0x94949494
jmp case.0x40fd8c.3711
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x182004
jne 0x40dc6b
push 3
mov ecx, ebx
mov word [ebx + 0x43c], 0x3c3
mov word [ebx + 0x43e], 0x507
mov word [ebx + 0x43a], 0x660
mov dword [ebx + 0x798d8], 0x4168e0
mov dword [ebx + 0x384], 0x3f4
mov dword [ebx + 0x458], 4
mov dword [ebx + 0x330], 0x1e1e1e1e
call fcn.0042cde0
mov dword [ebx + 0x8588], 0x3f9ab021
mov dword [ebx + 0x858c], 0x3f8c1206
mov dword [ebx + 0x8594], 0x3f8e1e4f
jmp case.0x40fd8c.3711
cmp ecx, 0x25a000
jne 0x40dcc2
push str.E950
push str.NIKON
mov ecx, ebx
mov word [ebx + 0x43c], 0x4b3
mov word [ebx + 0x43e], 0x650
mov word [ebx + 0x43a], 0x800
mov dword [ebx + 0x798d8], 0x4168e0
mov dword [ebx + 0x458], 4
mov dword [ebx + 0x330], 0x4b4b4b4b
call fcn.0042c9b0
jmp case.0x40fd8c.3711
cmp ecx, 0x48d000
jne 0x40dd8a
mov eax, dword [ebx + 0x324]
test eax, eax
mov word [ebx + 0x43c], 0x604
mov word [ebx + 0x43e], 0x810
mov dword [ebx + 0x458], 4
mov dword [ebx + 0x330], 0xe1e1e1e1
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x434], 6
jne 0x40dd3a
mov ecx, ebx
call fcn.004166d0
test eax, eax
je 0x40dd3a
mov eax, str.E995
lea edx, [ebx + 0x255]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40dd30
mov edi, str.E995
lea esi, [ebx + 0x255]
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je case.0x40fd8c.3711
push 3
mov ecx, ebx
mov dword [ebx + 0x330], 0xb4b4b4b4
call fcn.0042cde0
mov dword [ebx + 0x8588], 0x3f991687
mov dword [ebx + 0x858c], 0x3f9f7cee
mov dword [ebx + 0x8590], 0x3f824dd3
jmp case.0x40fd8c.3711
mov edi, str.E2100
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ddd2
mov eax, dword [ebx + 0x324]
test eax, eax
jne 0x40ddb1
mov ecx, ebx
call fcn.00416760
test eax, eax
je 0x40dde4
mov word [ebx + 0x43c], 0x4b6
mov word [ebx + 0x43e], 0x650
mov dword [ebx + 0x434], 7
jmp case.0x40fd8c.3711
mov esi, eax
mov edi, str.E2500
mov ecx, 6
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40de1c
mov eax, str.E2500
lea edx, [ebx + 0x255]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40ddf1
mov word [ebx + 0x43c], 0x4b4
mov word [ebx + 0x43e], 0x650
mov dword [ebx + 0x330], 0x4b4b4b4b
jmp 0x40ff02
mov eax, dword [esp + 0x2c]
cmp eax, 0x48e000
jne 0x40dee6
mov eax, dword [ebx + 0x324]
test eax, eax
mov word [ebx + 0x43c], 0x606
mov word [ebx + 0x43e], 0x810
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x434], 7
mov dword [ebx + 0x8588], 0x3fe8b439
mov dword [ebx + 0x8590], 0x3fcf1aa0
jne 0x40de76
mov ecx, ebx
call fcn.004167f0
cmp byte [ebx + 0x255], 0x45
jne 0x40de9f
lea ecx, [ebx + 0x256]
push ecx
call fcn.00488582
add esp, 4
cmp eax, 0xe74
jge 0x40de9f
mov dword [ebx + 0x330], 0x49494949
mov edi, str.Optio_33WR
lea esi, [ebx + 0x255]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne case.0x40fd8c.3711
mov dword [ebx + 0x450], 1
mov dword [ebx + 0x330], 0x16161616
mov dword [ebx + 0x8588], 0x3faa5e35
mov dword [ebx + 0x8590], 0x3fe8f5c3
jmp case.0x40fd8c.3711
cmp eax, 0x599000
jne 0x40df77
mov eax, dword [ebx + 0x324]
test eax, eax
mov word [ebx + 0x43c], 0x6ae
mov word [ebx + 0x43e], 0x8f0
mov dword [ebx + 0x330], 0x16161616
jne 0x40df51
mov ecx, ebx
call fcn.00416880
test eax, eax
je 0x40df51
mov eax, str.Minolta
lea edx, [ebx + 0x215]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40df30
mov eax, str.DiMAGE_Z2
lea edx, [ebx + 0x255]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40df47
mov dl, byte [ebx + 0x215]
xor eax, eax
cmp dl, 0x4d
sete al
mov dword [ebx + 0x798d8], 0x419c50
add eax, 6
mov dword [ebx + 0x434], eax
jmp case.0x40fd8c.3711
lea eax, [ebx + 0x255]
mov edi, str.E4500
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40dfb0
mov word [ebx + 0x43c], 0x6ac
mov word [ebx + 0x43e], 0x8f0
mov dword [ebx + 0x330], 0xb4b4b4b4
jmp 0x40ff02
mov ecx, dword [esp + 0x2c]
cmp ecx, 0x718000
jne 0x40dfdd
mov word [ebx + 0x43c], 0x784
mov word [ebx + 0x43e], 0xa10
mov dword [ebx + 0x330], 0xb4b4b4b4
jmp 0x40ff02
cmp ecx, 0x895000
jne 0x40e01a
mov word [ebx + 0x43c], 0x846
mov word [ebx + 0x43e], 0xb10
mov dword [ebx + 0x384], 0xf83
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x434], 7
jmp case.0x40fd8c.3711
mov edi, str.FinePix_S5100
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40e88d
mov edi, str.FinePix_S5500
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40e88d
mov edi, str.FUJIFILM
lea esi, [ebx + 0x215]
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
mov ecx, 6
jne 0x40e1ca
lea edx, [ebx + 0x25c]
mov edi, str.S2Pro
mov esi, edx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e0a8
mov eax, str._S2Pro
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40e080
mov word [ebx + 0x43c], 0x860
mov word [ebx + 0x43e], 0xb40
mov dword [ebx + 0x450], 6
jmp 0x40e0b2
mov dword [ebx + 0x384], 0x3e00
cmp dword [ebx + 0x39c], 2
jne 0x40e0cf
mov eax, dword [ebx + 0x368]
test eax, eax
je 0x40e0cf
mov dword [ebx + 0x384], 0x2f00
mov si, word [ebx + 0x43c]
movzx ecx, word [ebx + 0x438]
mov di, word [ebx + 0x43a]
xor edx, edx
mov dx, si
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
mov dx, word [ebx + 0x43e]
sar eax, 1
mov word [ebx + 0x440], ax
xor eax, eax
mov ax, di
movzx edx, dx
mov dword [esp + 0x30], eax
sub eax, edx
cdq
sub eax, edx
sar eax, 1
mov word [ebx + 0x442], ax
cmp dword [ebx + 0x39c], 2
jne 0x40e164
mov eax, dword [ebx + 0x364]
test eax, eax
je 0x40e13e
lea eax, [edi + edi]
xor ecx, ecx
mov word [ebx + 0x43a], ax
mov cx, ax
jmp 0x40e145
imul ecx, dword [esp + 0x30]
shl ecx, 1
mov edx, dword [ebx + 0x368]
xor eax, eax
cmp eax, edx
mov eax, dword [ebx + 0x340]
sbb edx, edx
neg edx
imul edx, ecx
add eax, edx
mov dword [ebx + 0x340], eax
mov edi, dword [ebx + 0x364]
xor ecx, ecx
test edi, edi
sete cl
xor eax, eax
mov ax, word [ebx + 0x43e]
shr ax, cl
mov edx, esi
mov cx, di
shr dx, cl
mov word [ebx + 0x44a], ax
mov word [ebx + 0x438], si
mov dword [ebx + 0x798d8], 0x416c50
add eax, edx
mov word [ebx + 0x43e], ax
dec eax
mov word [ebx + 0x43c], ax
test byte [ebx + 0x44a], 1
jne case.0x40fd8c.3711
mov dword [ebx + 0x330], 0x49494949
jmp case.0x40fd8c.3711
mov edi, str.RD175
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e20c
mov word [ebx + 0x43c], 0x3da
mov word [ebx + 0x43e], 0x5fe
mov dword [ebx + 0x340], 0x201
mov dword [ebx + 0x330], 0x61616161
mov dword [ebx + 0x798d8], 0x41ba70
jmp case.0x40fd8c.3711
mov edi, str.KD_400Z
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e23e
mov word [ebx + 0x43c], 0x6b0
mov word [ebx + 0x43e], 0x908
mov word [ebx + 0x43a], 0x920
jmp 0x40e393
mov esi, eax
mov edi, str.KD_510Z
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40e34f
lea eax, [ebx + 0x215]
push str.MINOLTA
push eax
call fcn.00488780
add esp, 8
test eax, eax
jne 0x40e3f6
push 8
push str.DiMAGE_A
lea edi, [ebx + 0x255]
push edi
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x384], 0xfff
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40e2cd
mov edi, str.DiMAGE_A200
lea esi, [ebx + 0x255]
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e2be
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x798d8], 0x419c50
jmp case.0x40fd8c.3711
push 5
push str.ALPHA
push edi
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40e3b2
push 5
push str.DYNAX
push edi
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40e3b2
push 6
push str.MAXXUM
push edi
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40e3b2
push 8
push str.DiMAGE_G
push edi
call fcn.004882a0
add esp, 0xc
test eax, eax
jne case.0x40fd8c.3711
mov al, byte [ebx + 0x25d]
cmp al, 0x34
jne 0x40e34b
mov word [ebx + 0x43c], 0x6b4
mov word [ebx + 0x43e], 0x900
jmp 0x40e382
cmp al, 0x35
jne 0x40e36c
mov word [ebx + 0x43c], 0x7a4
mov word [ebx + 0x43e], 0xa2f
mov word [ebx + 0x43a], 0xa40
jmp 0x40e382
cmp al, 0x36
jne 0x40e382
mov word [ebx + 0x43c], 0x858
mov word [ebx + 0x43e], 0xb20
add dword [ebx + 0x340], 0xe
mov dword [ebx + 0x330], 0x61616161
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x384], 0x3df
mov word [ebx + 4], 0x4d4d
jmp case.0x40fd8c.3711
mov cl, byte [edi]
xor eax, eax
cmp cl, 0x4d
sete al
lea esi, [ebx + 0x269]
lea ecx, [eax + ebx + 0x25b]
push ecx
push str.DYNAX___10s
push esi
call fcn.00488245
add esp, 0xc
push esi
lea eax, [ebx + 0x215]
push eax
mov ecx, ebx
call fcn.0042c9b0
mov dword [ebx + 0x798d8], 0x419c50
jmp case.0x40fd8c.3711
lea eax, [ebx + 0x255]
mov edi, str.ist_DS
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e41c
add word [ebx + 0x43c], 0xfffe
jmp case.0x40fd8c.3711
mov edi, str.K20D
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e43d
mov dword [ebx + 0x330], 0x16161616
jmp case.0x40fd8c.3711
mov edi, str.Optio_S
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e4fe
cmp dword [esp + 0x2c], 0x308040
jne 0x40e4b6
fld dword [ebx + 0x8578]
mov word [ebx + 0x43c], 0x604
fmul dword [0x65c3d8]
mov word [ebx + 0x43e], 0x810
mov dword [ebx + 0x798d8], 0x41e930
mov dword [ebx + 0x8588], 0x3fb20c4a
fstp dword [ebx + 0x8578]
mov dword [ebx + 0x8590], 0x3f981062
fld dword [ebx + 0x8580]
fmul dword [0x65c3d8]
fstp dword [ebx + 0x8580]
jmp case.0x40fd8c.3711
mov word [ebx + 0x43c], 0x608
mov word [ebx + 0x43e], 0x814
mov word [ebx + 0x43a], 0xc40
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x384], 0xf7c
mov dword [ebx + 0x8588], 0x3f918937
mov dword [ebx + 0x8590], 0x3fb9fbe7
jmp case.0x40fd8c.3711
cmp dword [esp + 0x2c], 0x5d4bc0
jne 0x40e550
mov word [ebx + 0x43c], 0x6c9
mov word [ebx + 0x43e], 0x914
mov word [ebx + 0x43a], 0xdc0
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x384], 0xf7a
mov dword [ebx + 0x8588], 0x3ffd70a4
mov dword [ebx + 0x8590], 0x3fc8f5c3
jmp case.0x40fd8c.3711
mov edi, str.Optio_750Z
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e58d
mov word [ebx + 0x43c], 0x8fe
mov word [ebx + 0x43e], 0xc00
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x434], 7
jmp case.0x40fd8c.3711
mov edi, str.STV680_VGA
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e5f2
mov word [ebx + 0x43c], 0x1e4
mov word [ebx + 0x43e], 0x284
mov dword [ebx + 0x798d8], 0x41e930
mov dword [ebx + 0x450], 2
mov dword [ebx + 0x330], 0x16161616
mov dword [ebx + 0x380], 0x10
mov dword [ebx + 0x8588], 0x3f8c6a7f
mov dword [ebx + 0x8590], 0x3f90624e
jmp case.0x40fd8c.3711
mov edi, str.KAI_0340
mov esi, eax
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e649
mov word [ebx + 0x43c], 0x1dd
mov word [ebx + 0x43e], 0x280
mov word [ebx + 4], 0x4949
mov dword [ebx + 0x340], 0xf00
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x8588], 0x3fc7ced9
mov dword [ebx + 0x8590], 0x401d0e56
jmp case.0x40fd8c.3711
mov edi, 0x6958d8
mov esi, eax
mov ecx, 4
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e67b
mov ax, word [ebx + 0x438]
sub ax, 2
mov word [ebx + 0x440], 2
mov word [ebx + 0x43c], ax
jmp case.0x40fd8c.3711
mov edi, str.531C
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e6c2
mov word [ebx + 0x43c], 0x4b0
mov word [ebx + 0x43e], 0x640
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x858c], 0x3f9be76d
jmp case.0x40fd8c.3711
mov edi, str.F_080C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e6f5
mov word [ebx + 0x43c], 0x300
mov word [ebx + 0x43e], 0x400
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
mov edi, str.F_145C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e728
mov word [ebx + 0x43c], 0x410
mov word [ebx + 0x43e], 0x570
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
mov edi, str.F_201C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e75b
mov word [ebx + 0x43c], 0x4b0
mov word [ebx + 0x43e], 0x640
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
mov edi, str.F_510C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e7a8
cmp dword [esp + 0x2c], 0x7270e0
mov word [ebx + 0x43c], 0x7a6
mov word [ebx + 0x43e], 0xa1c
mov eax, 0x41e930
jb 0x40e793
mov eax, 0x419fb0
mov dword [ebx + 0x798d8], eax
mov dword [ebx + 0x384], 0xfff0
jmp case.0x40fd8c.3711
mov edi, str.F_810C
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e7e5
mov word [ebx + 0x43c], 0x9a5
mov word [ebx + 0x43e], 0xcc8
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x384], 0xfff0
jmp case.0x40fd8c.3711
mov edi, str.XCD_SX910CR
mov esi, eax
mov ecx, 0xc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e845
cmp dword [esp + 0x2c], 0x1e8480
mov word [ebx + 0x43c], 0x400
mov word [ebx + 0x43e], 0x55f
mov word [ebx + 0x43a], 0x560
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x384], 0x3ff
mov eax, 0x41e930
jb 0x40e83a
mov eax, 0x419fb0
mov dword [ebx + 0x798d8], eax
jmp case.0x40fd8c.3711
mov edi, str.2010
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e89c
mov word [ebx + 0x43c], 0x4b7
mov word [ebx + 0x43e], 0x648
mov word [ebx + 4], 0x4949
mov dword [ebx + 0x330], 0x16161616
mov dword [ebx + 0x340], 0xc8c
mov dword [ebx + 0x384], 0x3ff
mov dword [ebx + 0x798d8], 0x419fb0
jmp case.0x40fd8c.3711
mov edi, str.A782
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e8f3
cmp dword [esp + 0x2c], 0x989680
mov word [ebx + 0x43c], 0xbb8
mov word [ebx + 0x43e], 0x8a0
mov dword [ebx + 0x330], 0x61616161
mov eax, 0x41e930
jb 0x40e8de
mov eax, 0x419fb0
mov dword [ebx + 0x798d8], eax
mov dword [ebx + 0x384], 0xffc0
jmp case.0x40fd8c.3711
mov edi, str.3320AF
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40e9d5
mov eax, 0x800
push edx
mov word [ebx + 0x43e], ax
mov word [ebx + 0x43a], ax
mov eax, dword [ebx]
push 0x300000
push eax
mov word [ebx + 0x43c], 0x600
mov dword [ebx + 0x330], 0x61616161
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x384], 0x3ff
mov dword [ebx + 0x8588], 0x3fdbc6a8
mov dword [ebx + 0x8590], 0x3f91a9fc
call fcn.00487810
add esp, 0xc
push 0x10000
mov ecx, ebx
call fcn.0042ce40
cmp ax, 0x4d4d
mov word [ebx + 4], ax
jne case.0x40fd8c.3711
add word [ebx + 0x43c], 0xfff0
add word [ebx + 0x43e], 0xffe4
mov eax, 0x695880
lea edx, [ebx + 0x215]
mov word [ebx + 0x440], 0x10
mov word [ebx + 0x442], 0x1c
mov dword [ebx + 0x384], 0xf5c0
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40e9c0
mov byte [ebx + 0x255], cl
jmp case.0x40fd8c.3711
mov edi, str.Hasselblad
lea esi, [ebx + 0x215]
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ea43
cmp dword [ebx + 0x798d8], 0x412a20
jne 0x40ea01
mov dword [ebx + 0x798d8], 0x419430
cmp word [ebx + 0x43a], 0x1c5e
jne case.0x40fd8c.3711
mov word [ebx + 0x43c], 0x1544
mov word [ebx + 0x43e], 0x1c50
mov word [ebx + 0x440], 4
mov word [ebx + 0x442], 7
mov dword [ebx + 0x330], 0x61616161
jmp case.0x40fd8c.3711
mov edi, str.Sinar
lea esi, [ebx + 0x215]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ead1
lea ecx, [esp + 0x90]
mov edx, dword [ecx]
mov eax, str.8BPS
cmp edx, dword [eax]
jne 0x40eaae
mov eax, dword [ebx]
push 0
push 0xe
push eax
call fcn.00487810
add esp, 0xc
mov ecx, ebx
call fcn.00410420
mov ecx, ebx
mov word [ebx + 0x43c], ax
call fcn.00410420
mov word [ebx + 0x43e], ax
mov dword [ebx + 0x330], 0x61616161
mov dword [ebx + 0x340], 0x44
mov eax, dword [ebx + 0x798d8]
test eax, eax
jne 0x40eac2
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x384], 0x3fff
jmp case.0x40fd8c.3711
mov edi, str.Leaf
lea esi, [ebx + 0x215]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ed5f
mov esi, dword [ebx + 0x374]
cmp esi, 1
mov dword [ebx + 0x384], 0x3fff
jbe 0x40eb08
mov dword [ebx + 0x330], edx
jmp 0x40eb17
movzx ecx, word [ebx + 0x438]
cmp dword [ebx + 0x3b0], ecx
jae 0x40eb21
mov dword [ebx + 0x798d8], 0x419950
xor edx, edx
mov dx, word [ebx + 0x43c]
xor ecx, ecx
mov cx, word [ebx + 0x43e]
mov edi, edx
or edi, ecx
cmp di, 0x800
jne 0x40ebe3
cmp esi, 1
jne 0x40eba3
mov eax, str.RBTG
lea edx, [ebx + 0x10]
mov dword [ebx + 0x330], esi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40eb57
mov eax, str.CatchLight
lea edx, [ebx + 0x255]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40eb70
mov word [ebx + 0x440], 8
mov word [ebx + 0x442], 0x12
mov word [ebx + 0x43c], 0x7f0
mov word [ebx + 0x43e], 0x7e0
jmp case.0x40fd8c.3711
mov ecx, str.DCB2
sub eax, ecx
lea ebx, [ebx]
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40ebb0
mov word [ebx + 0x440], 0xa
mov word [ebx + 0x442], 0x10
mov word [ebx + 0x43c], 0x7ec
mov word [ebx + 0x43e], 0x7e6
jmp case.0x40fd8c.3711
xor esi, esi
mov si, cx
movzx edx, dx
add edx, esi
cmp edx, 0x1454
jne 0x40ecb9
cmp byte [eax], 0
jne 0x40ec0f
mov ecx, str.Cantare
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40ec05
mov ax, word [ebx + 0x43e]
cmp ax, word [ebx + 0x43c]
jbe 0x40ec4f
mov word [ebx + 0x440], 6
mov word [ebx + 0x442], 0x20
mov word [ebx + 0x43c], 0x800
mov word [ebx + 0x43e], 0xc00
mov dword [ebx + 0x330], 0x61616161
jmp 0x40ec7d
mov word [ebx + 0x442], 6
mov word [ebx + 0x440], 0x20
mov word [ebx + 0x43e], 0x800
mov word [ebx + 0x43c], 0xc00
mov dword [ebx + 0x330], 0x16161616
fld dword [ebx + 0x8578]
fcomp dword [0x65c2f0]
fnstsw ax
test ah, 0x44
jnp 0x40ecaa
cmp byte [ebx + 0x255], 0x56
je 0x40ecaa
mov ecx, dword [ebx + 0x374]
mov dword [ebx + 0x39c], ecx
jmp case.0x40fd8c.3711
mov dword [ebx + 0x330], 0
jmp case.0x40fd8c.3711
cmp cx, 0x844
jne 0x40ed04
mov ecx, str.Valeo_6
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40ecc7
add word [ebx + 0x43c], 0xffc4
add word [ebx + 0x43e], 0xff92
mov word [ebx + 0x440], 0x1e
mov word [ebx + 0x442], 0x37
mov dword [ebx + 0x330], 0x49494949
jmp case.0x40fd8c.3711
cmp cx, 0xc63
jne case.0x40fd8c.3711
mov eax, str.Valeo_6
lea edx, [ebx + 0x255]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40ed20
mov eax, 0xffd0
add word [ebx + 0x43c], ax
add word [ebx + 0x43e], ax
mov ecx, 0x18
mov word [ebx + 0x440], cx
mov word [ebx + 0x442], cx
mov dword [ebx + 0x330], 0x16161616
jmp case.0x40fd8c.3711
mov edi, str.LEICA
lea esi, [ebx + 0x215]
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40fae4
mov edi, str.Panasonic
lea esi, [ebx + 0x215]
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40fae4
mov edi, str.C770UZ
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40edda
mov word [ebx + 0x43c], 0x6b6
mov word [ebx + 0x43e], 0x900
mov dword [ebx + 0x330], 0x16161616
mov dword [ebx + 0x798d8], 0x419c50
mov dword [ebx + 0x434], 7
jmp case.0x40fd8c.3711
mov edi, str.OLYMPUS
lea esi, [ebx + 0x215]
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ef58
xor ecx, ecx
mov cx, word [ebx + 0x43c]
xor edx, edx
mov dl, cl
and edx, 1
add edx, ecx
mov ecx, dword [ebx + 0x334]
mov dword [ebx + 0x330], ecx
cmp dword [ebx + 0x798d8], 0x41ab90
mov word [ebx + 0x43c], dx
jne 0x40ee31
shr dword [ebx + 0x380], 4
jmp case.0x40fd8c.3711
mov edi, str.E_10
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40ef4c
push 4
lea eax, [ebx + 0x255]
push str.E_20
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
je 0x40ef4c
lea eax, [ebx + 0x255]
mov edi, str.E_300
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40ef19
mov edi, str.E_500
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40ef19
mov edi, str.E_330
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40eed2
mov eax, dword [ebx + 0x798d8]
add word [ebx + 0x43e], 0xffe2
cmp eax, 0x419fb0
jne case.0x40fd8c.3711
mov dword [ebx + 0x384], 0xf790
jmp case.0x40fd8c.3711
mov esi, eax
mov edi, str.SP550UZ
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne case.0x40fd8c.3711
mov ecx, dword [esp + 0x2c]
add ecx, 0xff5c6800
mov dword [ebx + 0x344], 0xa39800
mov dword [ebx + 0x350], ecx
mov word [ebx + 0x44e], 0x1e0
mov word [ebx + 0x44c], 0x280
jmp case.0x40fd8c.3711
mov eax, dword [ebx + 0x798d8]
add word [ebx + 0x43e], 0xffec
cmp eax, 0x419fb0
jne case.0x40fd8c.3711
mov dword [ebx + 0x384], 0xfc30
mov dword [ebx + 0x380], 0
jmp case.0x40fd8c.3711
shl dword [ebx + 0x380], 2
jmp case.0x40fd8c.3711
mov edi, str.N_Digital
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40ef9f
mov word [ebx + 0x43c], 0x7ff
mov word [ebx + 0x43e], 0xc00
mov dword [ebx + 0x330], 0x61616161
mov dword [ebx + 0x340], 0x1a00
mov dword [ebx + 0x798d8], 0x419c50
jmp case.0x40fd8c.3711
mov edi, str.DSC_F828
mov esi, eax
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f004
mov eax, str.RGBE
lea edx, [ebx + 0x10]
mov word [ebx + 0x43e], 0xcd8
mov word [ebx + 0x442], 5
mov dword [ebx + 0x340], 0xd27c0
mov dword [ebx + 0x798d8], 0x41ffa0
mov dword [ebx + 0x330], 0x9c9c9c9c
mov dword [ebx + 0x458], 4
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40eff5
jmp case.0x40fd8c.3711
mov edi, str.DSC_V3
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f041
mov word [ebx + 0x43e], 0xc25
mov word [ebx + 0x442], 0x3b
mov dword [ebx + 0x340], 0xc03c0
mov dword [ebx + 0x798d8], 0x41ffa0
jmp case.0x40fd8c.3711
mov edi, str.SONY
lea esi, [ebx + 0x215]
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f087
cmp word [ebx + 0x43a], 0xf90
jne 0x40f087
push str.DSC_R1
push str.SONY
mov ecx, ebx
call fcn.0042c9b0
mov word [ebx + 0x43e], 0xf55
mov word [ebx + 4], 0x4d4d
jmp case.0x40fd8c.3711
mov edi, str.DSLR_A100
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f0a5
dec word [ebx + 0x43c]
jmp case.0x40fd8c.3711
mov edi, str.DSLR_A350
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f0c5
add word [ebx + 0x43c], 0xfffc
jmp case.0x40fd8c.3711
mov edi, str.C603v
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f0eb
mov word [ebx + 0x43c], 0x1e0
mov word [ebx + 0x43e], 0x280
jmp 0x40f10f
mov edi, str.C603y
mov esi, eax
mov ecx, 6
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f128
mov word [ebx + 0x43c], 0x856
mov word [ebx + 0x43e], 0xb20
mov dword [ebx + 0x330], 0
mov dword [ebx + 0x798d8], 0x41eb70
jmp case.0x40fd8c.3711
mov edi, str.C603
mov esi, eax
mov ecx, 5
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f162
mov eax, 0x868
mov word [ebx + 0x43c], ax
mov word [ebx + 0x438], ax
mov eax, 0xb30
mov word [ebx + 0x43e], ax
mov word [ebx + 0x43a], ax
jmp 0x40f1ae
mov esi, eax
mov edi, str.C330
mov ecx, 5
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f220
mov word [ebx + 0x43c], 0x6d0
mov word [ebx + 0x43e], 0x920
mov word [ebx + 0x438], 0x6f3
mov word [ebx + 0x43a], 0x922
mov word [ebx + 0x440], 0x21
mov word [ebx + 0x442], 1
movzx ecx, word [ebx + 0x438]
movzx edx, word [ebx + 0x43a]
mov eax, dword [esp + 0x2c]
imul ecx, edx
sub eax, ecx
mov word [ebx + 4], 0x4949
mov dword [ebx + 0x340], eax
je 0x40f207
mov eax, dword [ebx]
push 0
push 0xa8
push eax
call fcn.00487810
add esp, 0xc
push pe_nt_image_headers32
lea eax, [ebx + 0x50c]
push eax
mov ecx, ebx
call fcn.00410b50
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
mov dword [ebx + 0x390], 0
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
lea eax, [ebx + 0x215]
push str.KODAK
push eax
call fcn.00488780
add esp, 8
test eax, eax
jne 0x40f5db
cmp dword [ebx + 0x330], 0xffffffff
jne 0x40f24f
mov dword [ebx + 0x330], 0x61616161
push 6
lea eax, [ebx + 0x255]
push str.NC2000
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40f280
add word [ebx + 0x43e], 0xfffc
mov word [ebx + 0x442], 2
jmp 0x40f338
lea eax, [ebx + 0x255]
mov edi, str.EOSDCS3B
mov esi, eax
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40f269
mov edi, str.EOSDCS1
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40f269
mov edi, str.DCS420
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40f269
mov edi, str.DCS460
mov esi, eax
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40f269
mov edi, str.DCS460A
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f2f4
add word [ebx + 0x43e], 0xfffc
mov word [ebx + 0x442], 2
jmp 0x40f324
mov edi, str.DCS660M
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f312
mov dword [ebx + 0x380], 0xd6
jmp 0x40f324
mov esi, eax
mov edi, str.DCS760M
mov ecx, 8
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f338
mov dword [ebx + 0x458], 1
mov dword [ebx + 0x330], 0
push str.DC25
lea esi, [ebx + 0x255]
push esi
call fcn.00488420
add esp, 8
test eax, eax
je 0x40f374
mov eax, str.DC25
mov edx, esi
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40f360
mov dword [ebx + 0x340], 0x3c40
push 3
lea eax, [ebx + 0x255]
push 0x695728
push eax
call fcn.004882a0
add esp, 0xc
test eax, eax
jne 0x40f453
cmp dword [esp + 0x2c], 0x186a0
mov word [ebx + 0x43c], 0xf2
jae 0x40f3cd
mov word [ebx + 0x43a], 0x100
mov word [ebx + 0x43e], 0xf9
mov dword [ebx + 0x460], 0x47a00af7
mov dword [ebx + 0x464], 0x3ff4bbcd
jmp 0x40f3f3
mov word [ebx + 0x43a], 0x200
mov word [ebx + 0x43e], 0x1f5
mov dword [ebx + 0x460], 0x46f4c1d2
mov dword [ebx + 0x464], 0x3fe46e0c
movzx ecx, word [ebx + 0x43a]
mov edx, dword [ebx + 0x340]
inc ecx
add edx, ecx
push 1
mov ecx, ebx
mov dword [ebx + 0x340], edx
mov dword [ebx + 0x458], 4
mov dword [ebx + 0x330], 0x8d8d8d8d
call fcn.0042cde0
mov dword [ebx + 0x858c], 0x3f96e979
mov dword [ebx + 0x8590], 0x3f9ac083
mov dword [ebx + 0x8594], 0x3f849ba6
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
lea edx, [ebx + 0x255]
mov edi, 0x695724
mov esi, edx
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f4a7
mov eax, str.DC40
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x40f472
mov word [ebx + 0x43c], 0x200
mov word [ebx + 0x43e], 0x300
mov dword [ebx + 0x340], 0x480
mov dword [ebx + 0x798d8], 0x41c760
jmp case.0x40fd8c.3711
push str.DC50
lea esi, [ebx + 0x255]
push esi
call fcn.00488420
add esp, 8
test eax, eax
je 0x40f4fd
mov eax, str.DC50
mov edx, esi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40f4c8
push str.DC120
push esi
call fcn.00488420
add esp, 8
test eax, eax
je 0x40f566
lea eax, [ebx + 0x255]
mov edi, str.Fotoman_Pixtura
mov esi, eax
mov ecx, 0x10
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f631
push 2
mov ecx, ebx
mov word [ebx + 0x43c], 0x200
mov word [ebx + 0x43e], 0x300
mov dword [ebx + 0x340], 0xe30
mov dword [ebx + 0x798d8], 0x41c760
mov dword [ebx + 0x330], 0x61616161
call fcn.0042cde0
jmp case.0x40fd8c.3711
mov edi, str.QuickTake_100
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f659
mov dword [ebx + 0x340], 0x2e0
mov dword [ebx + 0x798d8], 0x41beb0
jmp 0x40f6a9
mov edi, str.QuickTake_150
mov esi, eax
mov ecx, 0xe
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f6ca
mov al, byte [esp + 0x95]
movsx ecx, al
mov edx, 0x2e2
sub edx, ecx
test al, al
mov dword [ebx + 0x340], edx
je 0x40f69f
mov eax, 0x695700
mov ecx, ebx
sub ecx, eax
lea edx, [ecx + 0x25f]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40f695
mov dword [ebx + 0x798d8], 0x41c760
mov word [ebx + 0x43c], 0x1e0
mov word [ebx + 0x43e], 0x280
mov dword [ebx + 0x330], 0x61616161
jmp case.0x40fd8c.3711
mov edi, str.Rollei
lea esi, [ebx + 0x215]
mov ecx, 7
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f77e
mov ecx, dword [ebx + 0x798d8]
test ecx, ecx
jne 0x40f77e
movzx eax, word [ebx + 0x43a]
cmp eax, 0x524
je 0x40f72d
cmp eax, 0xa08
jne 0x40f751
mov word [ebx + 0x43c], 0x7a8
mov word [ebx + 0x43e], 0xa00
mov word [ebx + 0x440], 2
mov word [ebx + 0x442], 8
jmp 0x40f751
mov word [ebx + 0x43c], 0x406
mov word [ebx + 0x43e], 0x514
mov word [ebx + 0x440], 1
mov word [ebx + 0x442], 6
mov dword [ebx + 0x330], 0x16161616
mov dword [ebx + 0x798d8], 0x416e70
mov dword [ebx + 0x8588], 0x3fe66666
mov dword [ebx + 0x8590], 0x3fa66666
jmp case.0x40fd8c.3711
mov edi, str.PC_CAM_600
mov esi, eax
mov ecx, 0xb
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f7d8
mov eax, 0x400
mov word [ebx + 0x43c], 0x300
mov word [ebx + 0x43e], ax
mov dword [ebx + 0x340], eax
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x798d8], 0x41e930
mov dword [ebx + 0x8588], 0x3f91eb85
mov dword [ebx + 0x8590], 0x402eb852
jmp case.0x40fd8c.3711
mov edi, str.QV_2000UX
mov esi, eax
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f815
mov word [ebx + 0x43c], 0x4b8
mov word [ebx + 0x43e], 0x660
mov dword [ebx + 0x340], 0xcc0
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
cmp dword [esp + 0x2c], 0x311960
jne 0x40f849
mov word [ebx + 0x43c], 0x60a
mov word [ebx + 0x43e], 0x816
mov word [ebx + 0x43a], 0x820
mov dword [ebx + 0x798d8], 0x41e930
jmp case.0x40fd8c.3711
mov edi, str.QV_4000
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f886
mov word [ebx + 0x43c], 0x6a4
mov word [ebx + 0x43e], 0x8d4
mov dword [ebx + 0x798d8], 0x419fb0
mov dword [ebx + 0x384], 0xffff
jmp case.0x40fd8c.3711
mov edi, str.QV_5700
mov esi, eax
mov ecx, 8
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40f8b9
mov di, word [ebx + 0x43e]
xor eax, eax
mov ax, di
mov dword [ebx + 0x384], 0xfff0
lea esi, [eax*8]
mov eax, 0x92492493
imul esi
mov eax, dword [esp + 0x2c]
mov ecx, edx
add ecx, esi
sar ecx, 2
mov edx, ecx
shr edx, 0x1f
add ecx, edx
sub eax, dword [ebx + 0x340]
xor edx, edx
div ecx
mov cx, word [ebx + 0x43c]
xor edx, edx
mov dx, cx
cmp eax, edx
jne 0x40fb3e
mov dword [ebx + 0x798d8], 0x41a4a0
mov eax, dword [ebx + 0x798d8]
test eax, eax
jne 0x40fb52
mov dword [ebx + 0x798d8], 0x419fb0
xor eax, eax
mov ax, di
cmp eax, 0xe6a
jg 0x40fd6a
je 0x40fcf5
cmp eax, 0xc8d
jg 0x40fc54
je 0x40fc17
cmp eax, 0xc62
jg 0x40fc0b
je 0x40fba1
cmp eax, 0xa08
je 0x40fbf5
cmp eax, 0xc3a
jne case.0x40fd8c.3711
mov word [ebx + 0x442], 0xfff2
add word [ebx + 0x442], 0x12
cmp cx, 0x916
mov word [ebx + 0x43e], 0xc18
jbe 0x40fbd5
mov word [ebx + 0x43c], 0x916
mov word [ebx + 0x440], 0xd
mov dword [ebx + 0x330], 0x49494949
push str.DMC_FZ8
push str.Panasonic
mov ecx, ebx
mov dword [ebx + 0x394], 1
call fcn.0042c9b0
jmp case.0x40fd8c.3711
push str.DMC_LC1
push str.Panasonic
mov ecx, ebx
call fcn.0042c9b0
jmp case.0x40fd8c.3711
cmp eax, 0xc69
je 0x40fc21
jmp case.0x40fd8c.3711
add edi, 0xffffffe5
mov word [ebx + 0x43e], di
add word [ebx + 0x43e], 0xfff6
push str.DMC_L1
push str.Panasonic
mov ecx, ebx
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x394], 1
call fcn.0042c9b0
jmp case.0x40fd8c.3711
sub eax, 0xce8
je 0x40fccb
sub eax, 0x1a
je 0x40fc7d
sub eax, 0x28
jne case.0x40fd8c.3711
mov word [ebx + 0x43e], 0xcd8
mov word [ebx + 0x442], 0xf
jmp 0x40fc99
mov word [ebx + 0x43e], 0xcdb
mov word [ebx + 0x442], 9
mov dword [ebx + 0x384], 0xf7f0
cmp cx, 0x9b0
jbe 0x40fcb2
mov word [ebx + 0x440], 0xa
mov word [ebx + 0x43c], 0x9a6
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x394], 1
jmp case.0x40fd8c.3711
push str.DMC_FZ30
add edi, 0xfffffff0
push str.Panasonic
mov ecx, ebx
mov word [ebx + 0x43e], di
mov dword [ebx + 0x394], 1
call fcn.0042c9b0
jmp case.0x40fd8c.3711
add ecx, 0x24
mov word [ebx + 0x43c], cx
mov word [ebx + 0x442], 0xfff2
mov dword [ebx + 0x330], 0x49494949
mov dword [ebx + 0x384], 0xf7f0
add word [ebx + 0x43c], 0xffd9
cmp word [ebx + 0x43c], 0xac8
mov word [ebx + 0x43e], 0xe58
jne 0x40fd42
mov word [ebx + 0x440], 0xf
add word [ebx + 0x442], 0x11
push str.DMC_FZ50
push str.Panasonic
mov ecx, ebx
mov dword [ebx + 0x394], 1
call fcn.0042c9b0
jmp case.0x40fd8c.3711
cmp eax, 0xf28
jg 0x40fe12
je 0x40fddf
sub eax, 0xe7e
cmp eax, 0x7e
ja case.0x40fd8c.3711
movzx eax, byte [eax + 0x4102d8]
jmp dword [eax*4 + 0x4102c4]
mov word [ebx + 0x43e], 0xe62
mov dword [ebx + 0x330], 0x49494949
jmp case.0x40fd8c.3711
add edi, 0xfffffff2
mov word [ebx + 0x43e], di
add word [ebx + 0x43e], 0x24
add word [ebx + 0x43e], 0xffb2
mov dword [ebx + 0x330], 0x16161616
mov dword [ebx + 0x384], 0xfff
jmp case.0x40fd8c.3711
push str.DMC_LX1
add edi, 0xffffffea
push str.Panasonic
mov ecx, ebx
mov word [ebx + 0x43e], di
mov word [ebx + 0x442], 6
mov dword [ebx + 0x394], 1
call fcn.0042c9b0
jmp case.0x40fd8c.3711
sub eax, 0xfdc
je 0x40fdbd
sub eax, 0xe6
je 0x40fe2a
sub eax, 0x28
je 0x40fe47
jmp case.0x40fd8c.3711
add ecx, 0x26
mov word [ebx + 0x43c], cx
mov word [ebx + 0x442], 0xfff2
mov dword [ebx + 0x330], 0x49494949
add word [ebx + 0x43c], 0xffd9
cmp word [ebx + 0x43c], 0x960
mov word [ebx + 0x43e], 0x1098
jne 0x40fe6d
mov word [ebx + 0x440], 0xf
add word [ebx + 0x442], 0x11
push str.DMC_LX2
push str.Panasonic
mov ecx, ebx
call fcn.0042c9b0
jmp case.0x40fd8c.3711
dec word [ebx + 0x43e]
jmp case.0x40fd8c.3711
add word [ebx + 0x43e], 0xfffc
mov word [ebx + 0x442], 2
jmp case.0x40fd8c.3711
add word [ebx + 0x43c], 0xfffd
add word [ebx + 0x43e], 0xfffc
jmp case.0x40fd8c.3711
mov word [ebx + 0x43c], 0x305
mov word [ebx + 0x43e], 0x3c0
mov word [ebx + 0x43a], 0x3e0
mov dword [ebx + 0x460], 0x89427379
mov dword [ebx + 0x464], 0x3ff16e06
mov dword [ebx + 0x330], 0x1e4e1e4e
mov dword [ebx + 0x798d8], 0x411610
mov dword [ebx + 0x458], 4
mov al, byte [ebx + 0x255]
test al, al
lea esi, [ebx + 0x255]
jne 0x40ff3a
movzx ecx, word [ebx + 0x43c]
movzx edx, word [ebx + 0x43e]
push ecx
push edx
push str._dx_d
push esi
call fcn.00488245
add esp, 0x10
cmp dword [ebx + 0x330], 0xffffffff
jne 0x40ff4d
mov dword [ebx + 0x330], 0x94949494
mov eax, dword [ebx + 0x38c]
test eax, eax
je 0x40ff66
push esi
lea eax, [ebx + 0x215]
push eax
mov ecx, ebx
call fcn.0042c9b0
mov eax, dword [ebx + 0x344]
test eax, eax
je 0x40ffbb
cmp word [ebx + 0x44e], 0
jne 0x40ffbb
push 0
push eax
mov eax, dword [ebx]
push eax
call fcn.00487810
add esp, 0xc
push 1
lea ecx, [esp + 0x1fc]
push ecx
mov ecx, ebx
call fcn.004126e0
test eax, eax
je 0x40ffbb
mov dx, word [esp + 0x200]
mov ax, word [esp + 0x1fc]
mov word [ebx + 0x44c], dx
mov word [ebx + 0x44e], ax
mov eax, dword [ebx + 0x798d8]
xor edi, edi
cmp eax, edi
je 0x40ffd1
cmp word [ebx + 0x43c], 0x16
jae 0x40ffd7
mov dword [ebx + 0x39c], edi
cmp eax, fcn.005a2410
jne 0x40fffa
mov ecx, dword [ebx + 8]
push ecx
push str._s:_You_must_link_dcraw_with_libjpeg___n
push 0x69aee0
call fcn.00487674
add esp, 0xc
mov dword [ebx + 0x39c], edi
mov al, byte [ebx + 0x10]
test al, al
lea ecx, [ebx + 0x10]
jne 0x410021
cmp dword [ebx + 0x458], 3
mov edx, 0x69562c
je 0x410017
mov edx, str.GMCY
mov al, byte [edx]
inc edx
mov byte [ecx], al
inc ecx
test al, al
jne 0x410017
cmp word [ebx + 0x438], di
jne 0x410038
mov dx, word [ebx + 0x43c]
mov word [ebx + 0x438], dx
cmp word [ebx + 0x43a], di
jne 0x41004f
mov ax, word [ebx + 0x43e]
mov word [ebx + 0x43a], ax
mov esi, dword [ebx + 0x330]
cmp esi, edi
je 0x41009e
cmp dword [ebx + 0x458], 3
jne 0x41009e
mov edx, esi
mov ecx, edi
shr edx, cl
and edx, 0xf
cmp dl, 9
jne 0x410079
mov eax, 2
shl eax, cl
or esi, eax
mov edx, esi
mov ecx, edi
shr edx, cl
and edx, 0xf
cmp dl, 6
jne 0x410090
mov eax, 8
shl eax, cl
or esi, eax
add edi, 4
cmp edi, 0x20
jb 0x410062
mov dword [ebx + 0x330], esi
mov ecx, dword [ebx + 0x450]
or eax, 0xffffffff
cmp ecx, eax
jne 0x4100c5
mov ecx, dword [ebx + 0x454]
cmp ecx, eax
mov dword [ebx + 0x450], ecx
jne 0x4100c5
mov dword [ebx + 0x450], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret