Function at 0x498f80
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3a4
mov eax, dword [0x79a200]
xor eax, ebp
mov dword [ebp - 4], eax
movaps xmm0, xmmword [0x6f6b10]
xor eax, eax
movups xmmword [ebp - 0x1c4], xmm0
push ebx
movaps xmm0, xmmword [0x6f6b10]
movups xmmword [ebp - 0x1b4], xmm0
mov dword [ebp - 0x388], 0x10
xorps xmm0, xmm0
mov dword [ebp - 0x390], 0
push esi
push edi
mov edi, dword [ebp + 8]
movups xmmword [ebp - 0x1a4], xmm0
mov dword [ebp - 0x378], edi
movups xmmword [ebp - 0x194], xmm0
mov ebx, dword [edi + 0x65e8]
movaps xmm0, xmmword [0x6f6b10]
mov dword [ebp - 0x38c], 0
mov dword [ebp - 0x370], 0x3020100
mov dword [ebp - 0x16c], 0
mov dword [ebp - 0x168], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0xfff
mov dword [ebp - 0x374], eax
mov dword [ebp - 0x358], eax
mov dword [ebp - 0x37c], eax
mov dword [ebp - 0x398], ebx
movups xmmword [ebp - 0x184], xmm0
movsd xmm0, qword [0x6ebff8]
movsd qword [ebp - 0x174], xmm0
cmp ebx, 0xa
jae 0x49a938
lea eax, [ebx + 1]
xor esi, esi
mov dword [edi + 0x65e8], eax
lea edx, [ebp - 0x244]
xor ecx, ecx
nop word [eax + eax]
xor eax, eax
cmp ecx, esi
sete al
inc ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [edx], xmm0
add edx, 8
cmp ecx, 4
jl 0x499090
inc esi
cmp esi, 4
jl 0x499088
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
cmp eax, 0x200
ja 0x49a938
test eax, eax
je 0x49a783
mov dword [ebp - 0x3a0], 0xb4
nop dword [eax + eax]
dec eax
mov dword [ebp - 0x394], eax
lea eax, [ebp - 0x3a4]
push eax
lea eax, [ebp - 0x360]
push eax
lea eax, [ebp - 0x35c]
push eax
lea eax, [ebp - 0x39c]
push eax
push dword [ebp + 0xc]
push edi
call fcn.004a09e0
mov esi, dword [ebp - 0x39c]
add esp, 0x18
cmp esi, 0x100
ja 0x4992ba
je case.0x49913a.2
lea eax, [esi - 2]
cmp eax, 0x2c
ja case.0x49a12b.50725
movzx eax, byte [eax + 0x49a974]
jmp dword [eax*4 + 0x49a950]
cmp dword [ebp - 0x35c], 3
jne case.0x49a12b.50725
cmp dword [ebp - 0x360], 1
jne case.0x49a12b.50725
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b0]
movss dword [edi + esi*8 + 0xe6ec], xmm0
jmp case.0x49a12b.50725
cmp dword [ebp - 0x35c], 3
jne case.0x49a12b.50725
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x6590], xmm0
jmp case.0x49a12b.50725
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + esi*4 + 0xe6e4], xmm0
jmp case.0x49a12b.50725
cmp dword [ebp - 0x360], 0x32
jb case.0x49a12b.50725
movss xmm0, dword [edi + 0xe774]
lea esi, [edi + 0xe774]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp case.0x49a12b.50725
mov eax, dword [edi]
push 1
push 0xc
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
mov ebx, 3
push edi
call fcn.00489f30
movzx eax, ax
lea esi, [esi + 4]
add esp, 4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
sub ebx, 1
jne 0x499213
jmp case.0x49a12b.50725
cmp dword [ebp - 0x35c], 7
jne case.0x49a12b.50725
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
cmp eax, 0xff
jne case.0x49a12b.50725
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x1c]
call eax
add esp, 4
cmp eax, 0xd8
jne case.0x49a12b.50725
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
sub eax, 2
mov dword [edi + 0x65c4], eax
mov eax, dword [ebp - 0x360]
mov dword [edi + 0x65d0], eax
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
lea ecx, [ebx + ebx*8]
add esp, 8
mov dword [edi + ecx*4 + 0x60f0], eax
jmp case.0x49a12b.50725
cmp esi, 0x201
ja 0x499752
je case.0x4992e5.273
add esi, 0xfffffeff
cmp esi, 0x8f
ja case.0x49a12b.50725
movzx eax, byte [esi + 0x49a9fc]
jmp dword [eax*4 + 0x49a9a4]
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
lea ecx, [ebx + ebx*8]
add esp, 8
mov dword [edi + ecx*4 + 0x60f4], eax
jmp case.0x49a12b.50725
mov eax, dword [ebp - 0x360]
lea esi, [ebx + ebx*8]
and eax, 7
push edi
mov dword [edi + esi*4 + 0x610c], eax
call fcn.00489f30
movzx eax, ax
add esp, 4
mov dword [edi + esi*4 + 0x60f8], eax
jmp case.0x49a12b.50725
push edi
call fcn.00489f30
movzx ecx, ax
add esp, 4
lea eax, [ebx + ebx*8]
mov dword [edi + eax*4 + 0x60fc], ecx
jmp case.0x49a12b.50725
push edi
call fcn.00489f30
movzx ecx, ax
add esp, 4
lea eax, [ebx + ebx*8]
mov dword [edi + eax*4 + 0x6100], ecx
jmp case.0x49a12b.50725
mov ecx, dword [edi]
lea eax, [edi + 0x6285]
push 1
push 0x200
push eax
push dword [edi + 4]
mov eax, dword [ecx]
call eax
add esp, 0x10
jmp case.0x49a12b.50725
mov ecx, dword [edi]
lea eax, [edi + 0x6485]
push 0x40
push eax
push dword [edi + 4]
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
jmp case.0x49a12b.50725
mov ecx, dword [edi]
lea eax, [edi + 0x64c5]
push 0x40
push eax
push dword [edi + 4]
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
jmp case.0x49a12b.50725
cmp dword [ebp - 0x35c], 4
jne case.0x49a12b.50725
mov dword [edi + 0x2e7fc], 0x493c00
mov dword [edi + 0x66ac], 0x2008
push edi
call fcn.00489f70
mov ecx, dword [ebp + 0xc]
lea esi, [ebx + ebx*8]
add ecx, eax
add esp, 4
cmp dword [edi + esi*4 + 0x60f8], 0
mov dword [edi + esi*4 + 0x6104], ecx
jne case.0x49a12b.50725
mov eax, dword [edi]
push 0
push ecx
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push 1
lea eax, [ebp - 0x354]
push eax
push edi
call fcn.00491c00
add esp, 0x18
test eax, eax
je case.0x49a12b.50725
mov edx, dword [ebp - 0x348]
xor ecx, ecx
mov eax, dword [ebp - 0x34c]
cmp edx, 2
mov dword [edi + esi*4 + 0x60fc], 6
sete cl
mov dword [edi + esi*4 + 0x610c], edx
shl eax, cl
mov dword [edi + esi*4 + 0x60f0], eax
mov eax, dword [ebp - 0x350]
mov dword [edi + esi*4 + 0x60f4], eax
mov eax, dword [ebp - 0x354]
mov dword [edi + esi*4 + 0x60f8], eax
jmp case.0x49a12b.50725
push edi
call fcn.00489f30
and eax, 7
add esp, 4
movsx ecx, byte [eax + str.50132467]
lea eax, [ebx + ebx*8]
sub ecx, 0x30
mov dword [edi + eax*4 + 0x6108], ecx
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
mov ecx, eax
add esp, 8
and ecx, 7
lea eax, [ebx + ebx*8]
mov dword [edi + eax*4 + 0x610c], ecx
jmp case.0x49a12b.50725
mov eax, dword [edi]
lea ecx, [ebp - 0x54]
push 0x40
push ecx
push dword [edi + 4]
mov eax, dword [eax + 0x10]
call eax
push 5
lea eax, [ebp - 0x54]
push 0x6f5ff4
push eax
call fcn.006a8ed0
add esp, 0x18
test eax, eax
je 0x499580
push 5
lea eax, [ebp - 0x54]
push str.dcraw
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x499580
push 5
lea eax, [ebp - 0x54]
push str.UFRaw
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x499580
push 6
lea eax, [ebp - 0x54]
push str.Bibble
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x499580
push 0xa
lea eax, [ebp - 0x54]
push str.Nikon_Scan
push eax
call fcn.006a8ed0
add esp, 0xc
test eax, eax
je 0x499580
mov ecx, str.Digital_Photo_Professional
lea eax, [ebp - 0x54]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x499573
test dl, dl
je 0x49956f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x499573
add eax, 2
add ecx, 2
test dl, dl
jne 0x499553
xor eax, eax
jmp 0x499578
sbb eax, eax
or eax, 1
test eax, eax
jne case.0x49a12b.50725
mov dword [edi + 0x6614], 0
jmp case.0x49a12b.50725
push 0
push edi
call fcn.00489fb0
add esp, 8
jmp case.0x49a12b.50725
mov ecx, dword [edi]
lea eax, [edi + 0x6545]
push 1
push 0x40
push eax
push dword [edi + 4]
mov eax, dword [ecx]
call eax
add esp, 0x10
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
add esp, 8
mov dword [edi + 0x6624], eax
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
add esp, 8
mov dword [edi + 0x6628], eax
jmp case.0x49a12b.50725
mov esi, dword [ebp - 0x360]
cmp esi, 1
jbe 0x499606
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
jmp 0x49960c
push edi
call fcn.00489f70
mov ecx, eax
add esp, 4
lea eax, [ebx + ebx*8]
cmp esi, 4
mov esi, dword [ebp - 0x358]
mov dword [edi + eax*4 + 0x6104], ecx
jne 0x49a693
mov dword [edi + 0x2e7fc], 0x49f1f0
mov dword [edi + 0x6614], 5
jmp 0x49a693
mov ecx, str.DSLR_A100
lea eax, [edi + 0x64c5]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x499670
test dl, dl
je 0x49966c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x499670
add eax, 2
add ecx, 2
test dl, dl
jne 0x499650
xor eax, eax
jmp 0x499675
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4996b1
lea eax, [ebx + ebx*8]
cmp dword [edi + eax*4 + 0x60f0], 0xf20
jne 0x4996b1
push edi
mov dword [edi + 0x2e7fc], 0x49fd70
call fcn.00489f70
add eax, dword [ebp + 0xc]
add esp, 4
inc ebx
mov dword [edi + 0x65c0], eax
mov dword [ebp - 0x398], ebx
jmp case.0x49a12b.50725
mov ebx, dword [ebp - 0x360]
test ebx, ebx
je 0x499723
nop dword [eax + eax]
mov eax, dword [edi]
dec ebx
push dword [edi + 4]
mov dword [ebp - 0x360], ebx
mov eax, dword [eax + 0x18]
call eax
mov esi, dword [edi]
add esp, 4
mov dword [ebp - 0x368], eax
push 0
push edi
call fcn.00489f70
add eax, dword [ebp + 0xc]
add esp, 4
push eax
push dword [edi + 4]
mov eax, dword [esi + 8]
call eax
push dword [ebp + 0xc]
push edi
call fcn.00498f80
add esp, 0x14
test eax, eax
jne case.0x49a12b.50725
mov ecx, dword [edi]
push eax
mov eax, dword [ebp - 0x368]
add eax, 4
push eax
push dword [edi + 4]
mov eax, dword [ecx + 8]
call eax
add esp, 0xc
test ebx, ebx
jne 0x4996c0
dec ebx
mov dword [ebp - 0x360], ebx
jmp case.0x49a12b.50725
mov dword [edi + 0x6485], 0x6e726153
mov dword [edi + 0x6489], 0x66666f
mov dword [edi + 0x65fc], 0xfff
jmp case.0x49a12b.50725
cmp esi, 0xc516
ja 0x499f15
je 0x49a015
cmp esi, 0x85ff
ja 0x4999cc
je 0x499a1e
cmp esi, 0x7303
ja 0x4998e5
je 0x4998b3
cmp esi, 0x7201
ja 0x49986c
je 0x499856
cmp esi, 0x202
je case.0x4992e5.279
cmp esi, 0x7010
je 0x4997ce
cmp esi, 0x7200
jne case.0x49a12b.50725
push edi
call fcn.00489f70
add esp, 4
mov dword [ebp - 0x374], eax
jmp case.0x49a12b.50725
xor esi, esi
push edi
call fcn.00489f30
shr eax, 2
add esp, 4
and eax, 0xfff
mov dword [ebp + esi*4 - 0x168], eax
inc esi
cmp esi, 4
jl 0x4997d0
xor ebx, ebx
mov eax, dword [ebp + ebx*4 - 0x16c]
mov edx, dword [ebp + ebx*4 - 0x168]
inc eax
cmp eax, edx
jg 0x499833
mov ecx, ebx
mov esi, 1
shl si, cl
sub edx, eax
lea ecx, [eax + 0x33b2]
inc edx
lea ecx, [edi + ecx*2]
nop dword [eax]
mov ax, word [ecx - 2]
lea ecx, [ecx + 2]
add ax, si
mov word [ecx - 2], ax
sub edx, 1
jne 0x499820
inc ebx
cmp ebx, 5
jl 0x4997f0
jmp case.0x49a12b.50725
push edi
call fcn.00489f70
lea ecx, [ebx + ebx*8]
add esp, 4
mov dword [edi + ecx*4 + 0x6110], eax
jmp case.0x49a12b.50725
push edi
call fcn.00489f70
mov esi, eax
add esp, 4
mov dword [ebp - 0x358], esi
jmp 0x49a693
sub esi, 0x7221
je 0x49989f
sub esi, 0x2f
jne case.0x49a12b.50725
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
push eax
push edi
call fcn.00497360
add esp, 0xc
xor eax, eax
mov word [edi + 0x66b2], ax
jmp case.0x49a12b.50725
push edi
call fcn.00489f70
add esp, 4
mov dword [ebp - 0x37c], eax
jmp case.0x49a12b.50725
xor esi, esi
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
cmp esi, 2
movd xmm0, eax
sbb eax, eax
neg eax
cvtdq2ps xmm0, xmm0
xor eax, esi
inc esi
movss dword [edi + eax*4 + 0xe774], xmm0
cmp esi, 4
jl 0x4998b5
jmp case.0x49a12b.50725
cmp esi, 0x8290
ja 0x499987
je 0x49995d
sub esi, 0x7313
je 0x49992c
sub esi, 0xf6a
je 0x499911
sub esi, 0x11
je 0x49a571
jmp case.0x49a12b.50725
mov ecx, dword [edi]
lea eax, [edi + 0x6505]
push 0x40
push eax
push dword [edi + 4]
mov eax, dword [ecx + 0x10]
call eax
add esp, 0xc
jmp case.0x49a12b.50725
xor esi, esi
nop
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
mov eax, esi
shr eax, 1
cvtdq2ps xmm0, xmm0
xor eax, esi
inc esi
movss dword [edi + eax*4 + 0xe774], xmm0
cmp esi, 4
jl 0x499930
jmp case.0x49a12b.50725
mov esi, dword [edi]
push 0
push edi
call fcn.00489f70
mov ebx, dword [ebp + 0xc]
add esp, 4
add eax, ebx
push eax
push dword [edi + 4]
mov eax, dword [esi + 8]
call eax
push ebx
push edi
call fcn.00495c20
add esp, 0x14
jmp case.0x49a12b.50725
sub esi, 0x829a
je 0x4999b2
sub esi, 3
jne case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
fstp dword [edi + 0x6598]
add esp, 8
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
fstp dword [edi + 0x6594]
add esp, 8
jmp case.0x49a12b.50725
cmp esi, 0x9102
ja 0x499bcd
je 0x499bb9
cmp esi, 0x8769
ja 0x499b77
je 0x499b4d
sub esi, 0x8602
je 0x499b13
sub esi, 1
je 0x499a39
sub esi, 3
jne case.0x49a12b.50725
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
push eax
push edi
call fcn.00497570
add esp, 0xc
mov eax, dword [str.Leaf]
mov dword [edi + 0x6485], eax
mov al, byte [0x6f4a98]
mov byte [edi + 0x6489], al
jmp case.0x49a12b.50725
mov eax, dword [edi]
lea ecx, [ebp - 0x54]
push 7
push 1
push ecx
push dword [edi + 4]
mov eax, dword [eax]
call eax
push 6
lea eax, [ebp - 0x54]
push str.MATRIX
push eax
call fcn.006a8ed0
add esp, 0x1c
test eax, eax
jne case.0x49a12b.50725
mov dword [edi + 0x6604], eax
xor ebx, ebx
lea eax, [edi + 0xe7c4]
mov dword [edi + 0x66d0], 4
mov dword [ebp - 0x364], eax
xor esi, esi
mov ecx, dword [edi]
mov eax, esi
xor eax, 1
add eax, 0x39f1
add eax, ebx
lea eax, [edi + eax*4]
push eax
mov eax, dword [ecx + 0x20]
push 0x770e74
push dword [edi + 4]
call eax
inc esi
add esp, 0xc
cmp esi, 4
jl 0x499a85
cmp dword [edi + 0xdc], 0
mov edx, dword [ebp - 0x364]
je 0x499af9
xorps xmm1, xmm1
mov eax, edx
mov ecx, 4
movss xmm0, dword [eax]
add eax, 4
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
sub ecx, 1
jne 0x499ac6
cvtpd2ps xmm1, xmm1
mov eax, edx
mov ecx, 4
movss xmm0, dword [eax]
lea eax, [eax + 4]
divss xmm0, xmm1
movss dword [eax - 4], xmm0
sub ecx, 1
jne 0x499ae4
add ebx, 4
add edx, 0x10
mov dword [ebp - 0x364], edx
cmp ebx, 0xc
jl 0x499a83
jmp case.0x49a12b.50725
xor esi, esi
push edi
call fcn.00489f30
movss xmm1, dword [0x6f6adc]
add esp, 4
movzx eax, ax
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
xor eax, 1
inc esi
divss xmm1, xmm0
movss dword [edi + eax*4 + 0xe774], xmm1
cmp esi, 4
jl 0x499b15
jmp case.0x49a12b.50725
mov esi, dword [edi]
push 0
push edi
call fcn.00489f70
mov ebx, dword [ebp + 0xc]
add esp, 4
add eax, ebx
push eax
push dword [edi + 4]
mov eax, dword [esi + 8]
call eax
push ebx
push edi
call fcn.00494d80
add esp, 0x14
jmp case.0x49a12b.50725
cmp esi, 0x8773
je case.0x49a12b.50724
cmp esi, 0x8825
jne case.0x49a12b.50725
mov esi, dword [edi]
push 0
push edi
call fcn.00489f70
mov ebx, dword [ebp + 0xc]
add esp, 4
add eax, ebx
push eax
push dword [edi + 4]
mov eax, dword [esi + 8]
call eax
push ebx
push edi
call fcn.00495970
add esp, 0x14
jmp case.0x49a12b.50725
push edi
call fcn.00489f70
add esp, 4
mov dword [edi + 0x65ac], eax
jmp case.0x49a12b.50725
cmp esi, 0x9218
ja 0x499c96
je 0x499c20
sub esi, 0x920a
je 0x499c06
sub esi, 7
jne case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
add esp, 8
mov dword [edi + 0x65a8], eax
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
fstp dword [edi + 0x659c]
add esp, 8
jmp case.0x49a12b.50725
lea ebx, [edi + 0xe7c4]
mov dword [edi + 0x6604], 0
mov dword [ebp - 0x364], ebx
mov dword [ebp - 0x368], 3
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
mov esi, ebx
fstp st(0)
add esp, 8
mov ebx, 3
nop dword [eax + eax]
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
fstp dword [esi]
add esp, 8
add esi, 4
sub ebx, 1
jne 0x499c60
mov ebx, dword [ebp - 0x364]
add ebx, 0x10
sub dword [ebp - 0x368], 1
mov dword [ebp - 0x364], ebx
jne 0x499c40
jmp case.0x49a12b.50725
sub esi, 0xb4c3
je 0x499ece
sub esi, 4
jne case.0x49a12b.50725
cmp dword [ebp - 0x38c], esi
je case.0x49a12b.50725
mov eax, dword [edi]
push 1
push 0x4e
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push edi
call fcn.00489f70
push edi
mov word [edi + 0x66b2], ax
call fcn.00489f70
push edi
mov word [edi + 0x66b0], ax
call fcn.00489f70
and eax, 7
push edi
mov word [edi + 0x66ba], ax
call fcn.00489f70
movzx ecx, word [edi + 0x66b2]
and eax, 7
sub cx, word [edi + 0x66ba]
sub cx, ax
push edi
mov word [edi + 0x66b6], cx
call fcn.00489f70
and eax, 7
push edi
mov word [edi + 0x66b8], ax
call fcn.00489f70
movzx ecx, word [edi + 0x66b0]
and eax, 7
sub cx, word [edi + 0x66b8]
add esp, 0x24
sub cx, ax
mov eax, 0x1c5e
mov word [edi + 0x66b4], cx
cmp word [edi + 0x66b2], ax
jne 0x499d68
mov eax, 7
mov dword [edi + 0x66b4], 0x1c4c1544
mov word [edi + 0x66ba], ax
mov eax, dword [edi]
push 1
push 0x34
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
lea esi, [edi + 0xe774]
mov ebx, 3
push 0xb
push edi
call fcn.0048a1d0
fstp dword [esi]
add esp, 8
add esi, 4
sub ebx, 1
jne 0x499d84
mov eax, dword [edi]
push 1
push 0x72
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push edi
call fcn.00489f30
movzx esi, word [edi + 0x66b4]
add esp, 0x10
movzx ebx, word [edi + 0x66b6]
mov ecx, esi
mov dword [ebp - 0x380], ecx
mov edx, esi
mov ecx, ebx
movzx eax, ax
imul ecx, edx
shr eax, 7
imul eax, eax, 0x5a
mov dword [ebp - 0x364], edx
mov dword [ebp - 0x368], eax
lea ecx, [ecx + ecx*2]
mov dword [edi + 0x66c8], eax
add ecx, ecx
mov eax, ebx
cmp ecx, dword [ebp - 0x38c]
jne 0x499e5a
mov eax, dword [ebp - 0x368]
xor edx, edx
div dword [ebp - 0x3a0]
mov ecx, ebx
mov dword [ebp - 0x380], ecx
mov ecx, esi
cmp edx, 0x5a
jne 0x499e38
xor esi, ebx
mov eax, ecx
xor eax, esi
movzx ecx, ax
mov eax, ecx
mov word [edi + 0x66b4], cx
xor eax, esi
movzx eax, ax
mov word [edi + 0x66b6], ax
jmp 0x499e3e
mov eax, dword [ebp - 0x380]
mov dword [edi + 0x66c8], 0
mov dword [edi + 0x65b0], 0
movzx eax, ax
movzx ecx, cx
jmp 0x499e60
mov ecx, dword [ebp - 0x380]
movzx eax, ax
movzx ecx, cx
imul ecx, eax
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea eax, [edi + 0x64c5]
push str.Ixpress__d_Mp
push eax
call fcn.00423c00
add esp, 0xc
mov dword [edi + 0x2e7fc], 0x48f510
cmp dword [edi + 0x65b0], 0
je 0x499ebf
test byte [edi + 0x66ba], 1
je 0x499eb5
mov dword [edi + 0x65b0], 0x61616161
mov dword [edi + 0x2e7fc], fcn.004a10a0
mov dword [edi + 0x65fc], 0xffff
jmp case.0x49a12b.50725
mov eax, dword [str.Imacon]
push dword [edi + 4]
mov dword [edi + 0x6485], eax
mov ax, word [0x6f6058]
mov word [edi + 0x6489], ax
mov al, byte [0x6f605a]
mov byte [edi + 0x648b], al
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call eax
mov dword [edi + 0x65c0], eax
add esp, 4
mov eax, dword [ebp - 0x360]
mov dword [ebp - 0x38c], eax
jmp case.0x49a12b.50725
cmp esi, 0xc612
ja 0x49a0fd
je 0x49a0b3
sub esi, 0xc517
je 0x49a015
sub esi, 3
je 0x499fd5
sub esi, 1
jne case.0x49a12b.50725
movzx eax, word [edi + 0x6274]
push dword [edi + 4]
mov dword [ebp - 0x380], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call eax
mov esi, dword [ebp - 0x378]
mov edi, eax
push esi
mov ebx, dword [esi + 0x65e8]
call fcn.00489f30
push esi
mov word [esi + 0x6274], ax
call fcn.00489f30
mov esi, dword [esi]
add esp, 0xc
push 0
push dword [ebp - 0x378]
call fcn.00489f70
add esp, 4
add eax, edi
push eax
mov eax, dword [ebp - 0x378]
push dword [eax + 4]
mov eax, dword [esi + 8]
call eax
push edi
mov edi, dword [ebp - 0x378]
push edi
call fcn.00498f80
mov eax, dword [ebp - 0x380]
add esp, 0x14
mov dword [edi + 0x65fc], 0xffff
mov dword [edi + 0x65e8], ebx
mov word [edi + 0x6274], ax
jmp case.0x49a12b.50725
cmp byte [edi + 0x6485], 0
mov esi, dword [ebp - 0x358]
jne 0x49a693
movq xmm0, qword [str.Hasselblad]
movq qword [edi + 0x6485], xmm0
mov ax, word [0x6f608c]
mov word [edi + 0x648d], ax
mov al, byte [0x6f608e]
mov byte [edi + 0x648f], al
jmp 0x49a693
mov ebx, dword [ebp - 0x360]
push ebx
call fcn.006a8b3a
mov esi, eax
add esp, 4
mov dword [ebp - 0x368], esi
test esi, esi
je case.0x49a12b.50725
mov eax, dword [edi]
push ebx
push 1
push esi
push dword [edi + 4]
mov eax, dword [eax]
call eax
add esp, 0x10
add esi, 0xffffffff
je 0x49a0a0
add ebx, dword [ebp - 0x368]
nop
cmp esi, ebx
jae 0x49a0a0
push 8
inc esi
push str.Neutral
push esi
call fcn.006a8ed0
add esp, 0xc
test eax, eax
jne 0x49a08f
lea eax, [edi + 0xe77c]
push eax
lea eax, [edi + 0xe778]
push eax
lea eax, [edi + 0xe774]
push eax
lea eax, [esi + 8]
push str._f__f__f
push eax
call fcn.0044cc20
add esp, 0x14
push 0xa
push esi
call fcn.006906b0
mov esi, eax
add esp, 8
test esi, esi
jne 0x49a050
push dword [ebp - 0x368]
call fcn.0069ba2b
add esp, 4
jmp case.0x49a12b.50725
mov esi, 4
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [edi + 0x6618]
add esp, 4
shl ecx, 8
add eax, ecx
mov dword [edi + 0x6618], eax
sub esi, 1
jne 0x49a0b8
cmp byte [edi + 0x6485], 0
jne 0x49a0ee
mov dword [edi + 0x6485], 0x474e44
mov dword [edi + 0x6614], 1
jmp case.0x49a12b.50725
cmp esi, 0xfd04
ja 0x49a565
je 0x49a51f
add esi, 0xffff39ea
cmp esi, 0x79
ja case.0x49a12b.50725
movzx eax, byte [esi + 0x49aacc]
mov edx, dword [ebp - 0x35c]
jmp dword [eax*4 + 0x49aa8c]
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
mov dword [edi + 0x65cc], eax
add esp, 4
mov eax, dword [ebp - 0x360]
mov dword [edi + 0x65d8], eax
jmp case.0x49a12b.50725
mov ecx, dword [ebp - 0x360]
lea ebx, [edi + 0x66d0]
cmp ecx, 4
mov eax, 4
cmova ecx, eax
mov eax, dword [edi]
push ecx
mov dword [ebx], ecx
mov dword [ebp - 0x360], ecx
lea ecx, [ebp - 0x370]
mov eax, dword [eax]
push 1
push ecx
push dword [edi + 4]
call eax
add esp, 0x10
jmp 0x49a623
push edi
call fcn.00489f30
mov esi, dword [ebp - 0x358]
add esp, 4
cmp ax, 2
jne 0x49a693
mov eax, 1
mov dword [edi + 0x65b0], 0x49494949
mov word [edi + 0x66c2], ax
jmp 0x49a693
push dword [ebp - 0x360]
push edi
call fcn.004918d0
add esp, 8
jmp case.0x49a12b.50725
mov ebx, dword [ebp - 0x360]
xorps xmm0, xmm0
movsd qword [ebp - 0x384], xmm0
test ebx, ebx
jle 0x49a22e
fld qword [ebp - 0x384]
mov esi, ebx
fstp qword [ebp - 0x36c]
nop dword [eax + eax]
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
fadd qword [ebp - 0x36c]
add esp, 8
fst qword [ebp - 0x36c]
fstp qword [ebp - 0x384]
sub esi, 1
jne 0x49a200
movsd xmm0, qword [ebp - 0x384]
movd xmm1, ebx
cvtdq2pd xmm1, xmm1
shr ebx, 0x1f
addsd xmm1, qword [ebx*8 + 0x7768c0]
divsd xmm0, xmm1
addsd xmm0, qword [0x6ebff0]
call fcn.0068e2f0
add dword [edi + 0x65f8], eax
jmp case.0x49a12b.50725
push dword [ebp - 0x35c]
push edi
call fcn.0048a1a0
add esp, 8
mov dword [edi + 0x65fc], eax
jmp case.0x49a12b.50725
mov esi, dword [ebp - 0x35c]
push esi
push edi
call fcn.0048a1d0
fst qword [ebp - 0x36c]
fstp qword [ebp - 0x384]
movsd xmm0, qword [ebp - 0x384]
push esi
push edi
movsd qword [edi + 0x66d8], xmm0
call fcn.0048a1d0
fdivr qword [ebp - 0x36c]
add esp, 0x10
fstp qword [edi + 0x66d8]
jmp case.0x49a12b.50725
cmp dword [edi + 0x66d0], 0
mov dword [ebp - 0x368], 0
jle 0x49a31e
lea esi, [ebp - 0x2a4]
nop word [eax + eax]
mov ebx, 3
nop word [eax + eax]
push dword [ebp - 0x35c]
push edi
call fcn.0048a1d0
fstp qword [esi]
add esp, 8
add esi, 8
sub ebx, 1
jne 0x49a2f0
mov eax, dword [ebp - 0x368]
inc eax
mov dword [ebp - 0x368], eax
cmp eax, dword [edi + 0x66d0]
jl 0x49a2e0
mov dword [ebp - 0x390], 1
jmp case.0x49a12b.50725
mov ecx, dword [edi + 0x66d0]
mov dword [ebp - 0x368], 0
test ecx, ecx
jle case.0x49a12b.50718
lea esi, [ebp - 0x244]
mov dword [ebp - 0x364], esi
nop dword [eax]
xor ebx, ebx
mov eax, ecx
test ecx, ecx
jle 0x49a37e
push edx
push edi
call fcn.0048a1d0
mov eax, dword [edi + 0x66d0]
inc ebx
mov edx, dword [ebp - 0x35c]
add esp, 8
fstp qword [esi]
add esi, 8
cmp ebx, eax
jl 0x49a358
mov esi, dword [ebp - 0x364]
mov ebx, dword [ebp - 0x368]
add esi, 0x20
inc ebx
mov dword [ebp - 0x364], esi
mov dword [ebp - 0x368], ebx
mov ecx, eax
cmp ebx, eax
jl 0x49a350
xor esi, esi
cmp dword [edi + 0x66d0], esi
jle case.0x49a12b.50725
push edx
push edi
call fcn.0048a1d0
mov edx, dword [ebp - 0x35c]
add esp, 8
fstp qword [ebp + esi*8 - 0x1c4]
inc esi
cmp esi, dword [edi + 0x66d0]
jl 0x49a3a8
jmp case.0x49a12b.50725
xor esi, esi
cmp dword [edi + 0x66d0], esi
jle case.0x49a12b.50725
mov ebx, dword [ebp - 0x35c]
push ebx
push edi
call fcn.0048a1d0
fstp qword [ebp + esi*8 - 0x1a4]
inc esi
add esp, 8
cmp esi, dword [edi + 0x66d0]
jl 0x49a3e1
jmp case.0x49a12b.50725
mov esi, dword [ebp - 0x35c]
push esi
push edi
call fcn.0048a1d0
push esi
fstp qword [ebp - 0x184]
push edi
call fcn.0048a1d0
movsd xmm0, qword [0x6ebff8]
lea eax, [ebp - 0x184]
subsd xmm0, qword [ebp - 0x184]
fstp qword [ebp - 0x17c]
add esp, 0x10
mov ecx, 0x6f40c0
subsd xmm0, qword [ebp - 0x17c]
movsd qword [ebp - 0x174], xmm0
nop
movss xmm0, dword [ecx]
lea eax, [eax + 8]
movsd xmm1, qword [eax - 8]
add ecx, 4
cvtps2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [eax - 8], xmm1
cmp ecx, 0x6f40cc
jl 0x49a450
jmp case.0x49a12b.50725
cmp dword [edi + 0x6618], 0
jne case.0x49a12b.50725
push edi
call fcn.00489f70
mov ebx, dword [ebp + 0xc]
lea esi, [ebx + eax]
push esi
push edi
call fcn.00497360
mov eax, dword [edi]
push 0
push esi
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push ebx
push edi
call fcn.00498f80
add esp, 0x20
jmp case.0x49a12b.50725
push 3
lea eax, [edi + 0xe766]
push eax
push edi
call fcn.0049d590
add esp, 0xc
jmp case.0x49a12b.50725
mov esi, dword [ebp - 0x35c]
push esi
push edi
call fcn.0048a1a0
push esi
push edi
mov word [edi + 0x66b8], ax
call fcn.0048a1a0
push esi
push edi
mov word [edi + 0x66ba], ax
call fcn.0048a1a0
sub ax, word [edi + 0x66b8]
push esi
push edi
mov word [edi + 0x66b4], ax
call fcn.0048a1a0
add esp, 0x20
sub ax, word [edi + 0x66ba]
mov word [edi + 0x66b6], ax
jmp case.0x49a12b.50725
mov eax, dword [edi]
push 1
push 0x10
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push edi
call fcn.00489f70
mov dword [edi + 0x65c0], eax
mov eax, dword [edi]
push 1
push 0x1c
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push edi
call fcn.00489f70
add esp, 0x20
mov dword [edi + 0x2e7fc], 0x493890
add dword [edi + 0x65c0], eax
jmp case.0x49a12b.50725
cmp esi, 0xfd09
jne case.0x49a12b.50725
mov ecx, dword [ebp - 0x360]
mov eax, 0x10
cmp ecx, 0x10
cmova ecx, eax
mov eax, dword [edi]
push ecx
mov dword [ebp - 0x388], ecx
lea ecx, [ebp - 0x14]
push 1
mov eax, dword [eax]
push ecx
push dword [edi + 4]
call eax
xor edx, edx
lea ebx, [edi + 0x66d0]
add esp, 0x10
mov dword [edi + 0x66d0], edx
xor esi, esi
cmp dword [ebp - 0x388], edx
jle 0x49a623
mov edi, dword [ebp - 0x388]
xor ebx, ebx
nop
movzx ecx, byte [ebp + esi - 0x14]
mov eax, 1
shl eax, cl
and eax, edx
neg eax
sbb eax, eax
inc esi
inc eax
bts edx, ecx
add ebx, eax
cmp esi, edi
jl 0x49a5c0
mov edi, dword [ebp - 0x378]
mov dword [edi + 0x66d0], ebx
lea ebx, [edi + 0x66d0]
cmp edx, 0x38
jne 0x49a60e
mov ax, word [0x6f6048]
mov word [ebp - 0x370], ax
mov al, byte [0x6f604a]
mov byte [ebp - 0x36e], al
jmp 0x49a623
cmp edx, 0x3a
jne 0x49a623
mov dword [ebp - 0x370], 0x1040305
lea ebx, [edi + 0x66d0]
mov edx, dword [ebx]
xor ecx, ecx
test edx, edx
jle 0x49a644
nop dword [eax + eax]
movzx eax, byte [ebp + ecx - 0x370]
mov byte [ebp + eax - 0x154], cl
inc ecx
cmp ecx, edx
jl 0x49a630
mov byte [edi + ecx + 0x6280], 0
mov esi, 0x10
mov ebx, dword [edi + 0x65b0]
mov edi, dword [ebp - 0x388]
nop dword [eax]
dec esi
lea ebx, [ebx*4]
xor edx, edx
mov eax, esi
div edi
movzx eax, byte [ebp + edx - 0x14]
movzx ecx, byte [ebp + eax - 0x154]
or ebx, ecx
test esi, esi
jne 0x49a660
mov edi, dword [ebp - 0x378]
mov dword [edi + 0x65b0], ebx
mov esi, dword [ebp - 0x358]
mov eax, dword [edi]
push 0
push dword [ebp - 0x3a4]
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x394]
add esp, 0xc
mov ebx, dword [ebp - 0x398]
test eax, eax
jne 0x4990e0
test esi, esi
je 0x49a783
push esi
call fcn.006a8b3a
mov esi, eax
add esp, 4
test esi, esi
je 0x49a783
mov ecx, dword [edi]
mov eax, dword [ebp - 0x374]
push 0
push eax
push dword [edi + 4]
mov ecx, dword [ecx + 8]
call ecx
mov eax, dword [edi]
mov ebx, dword [ebp - 0x358]
push 1
push ebx
mov eax, dword [eax]
push esi
push dword [edi + 4]
call eax
mov eax, dword [ebp - 0x37c]
push eax
mov eax, ebx
push 1
shr eax, 2
push eax
push esi
call fcn.0049fed0
mov ebx, dword [edi]
add esp, 0x2c
mov eax, dword [edi + 4]
mov dword [ebp - 0x394], eax
mov dword [edi], section..data
call fcn.006ac591
mov ecx, eax
mov dword [edi + 4], ecx
test ecx, ecx
je 0x49a76f
mov eax, dword [edi]
push 1
push dword [ebp - 0x358]
mov eax, dword [eax + 4]
push esi
push ecx
call eax
mov eax, dword [edi]
push 0
push 0
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x374]
neg eax
push eax
push edi
call fcn.00498f80
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0xc]
call eax
add esp, 0x28
mov eax, dword [ebp - 0x394]
push esi
mov dword [edi], ebx
mov dword [edi + 4], eax
call fcn.0069ba2b
add esp, 4
mov edx, dword [edi + 0x66d0]
xor esi, esi
test edx, edx
jle 0x49a7cd
lea ebx, [ebp - 0x244]
nop word [eax + eax]
movsd xmm1, qword [ebp + esi*8 - 0x1c4]
mov eax, ebx
mov ecx, edx
nop dword [eax]
lea eax, [eax + 8]
movaps xmm0, xmm1
mulsd xmm0, qword [eax - 8]
movsd qword [eax - 8], xmm0
sub ecx, 1
jne 0x49a7b0
inc esi
add ebx, 0x20
cmp esi, edx
jl 0x49a7a0
mov ebx, dword [ebp - 0x390]
test ebx, ebx
je 0x49a882
test edx, edx
jle 0x49a872
lea eax, [ebp - 0x244]
mov dword [ebp - 0x37c], edx
lea esi, [ebp - 0x304]
mov dword [ebp - 0x374], eax
nop dword [eax + eax]
xor ebx, ebx
nop dword [eax]
nop word [eax + eax]
movsd xmm2, qword [ebp + ebx - 0x184]
lea ecx, [ebp - 0x2a4]
xorps xmm1, xmm1
add ecx, ebx
movsd xmm0, qword [eax]
add eax, 8
mulsd xmm0, qword [ecx]
add ecx, 0x18
mulsd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [esi], xmm1
sub edx, 1
jne 0x49a824
mov edx, dword [edi + 0x66d0]
add ebx, 8
mov eax, dword [ebp - 0x374]
add esi, 8
cmp ebx, 0x18
jl 0x49a810
add eax, 0x20
sub dword [ebp - 0x37c], 1
mov dword [ebp - 0x374], eax
jne 0x49a800
mov ebx, dword [ebp - 0x390]
lea eax, [ebp - 0x304]
push eax
push edi
call fcn.004865a0
add esp, 8
movsd xmm0, qword [ebp - 0x1a4]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x49a8e5
xor eax, eax
mov dword [edi + 0xe780], 0
cmp dword [edi + 0x66d0], eax
jle 0x49a8e5
movss xmm2, dword [0x6ebfec]
lea ecx, [edi + 0xe774]
nop dword [eax]
movsd xmm0, qword [ebp + eax*8 - 0x1a4]
lea ecx, [ecx + 4]
cvtpd2ps xmm0, xmm0
inc eax
movaps xmm1, xmm2
divss xmm1, xmm0
movss dword [ecx - 4], xmm1
cmp eax, dword [edi + 0x66d0]
jl 0x49a8c0
test ebx, ebx
jne 0x49a925
xor ecx, ecx
cmp dword [edi + 0x66d0], ecx
jle 0x49a925
lea edx, [ebp - 0x244]
lea eax, [edi + 0xe784]
nop
movsd xmm0, qword [edx]
lea eax, [eax + 4]
movss xmm1, dword [eax - 4]
lea edx, [edx + 0x28]
cvtpd2ps xmm0, xmm0
inc ecx
divss xmm1, xmm0
movss dword [eax - 4], xmm1
cmp ecx, dword [edi + 0x66d0]
jl 0x49a900
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0068d76f
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0068d76f
mov esp, ebp
pop ebp
ret