Function at 0x100e2cf0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34c
mov eax, dword [0x101b0cd0]
xor eax, esp
mov dword [esp + 0x348], eax
fld1
push ebx
fst qword [esp + 0x98]
xor ebx, ebx
fst qword [esp + 0xa0]
push esi
mov esi, dword [ebp + 8]
fst qword [esp + 0xac]
mov eax, dword [esi + 0x65e8]
fst qword [esp + 0xb4]
fldz
push edi
fst qword [esp + 0x80]
mov dword [esp + 0x40], 0x10
fst qword [esp + 0x88]
mov dword [esp + 0x44], ebx
fst qword [esp + 0x90]
mov dword [esp + 0x30], ebx
fstp qword [esp + 0x98]
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], 1
mov byte [esp + 0x2a], 2
mov byte [esp + 0x2b], 3
fst qword [esp + 0x68]
mov dword [esp + 0x50], ebx
fst qword [esp + 0x70]
mov dword [esp + 0x54], ebx
fstp qword [esp + 0x78]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], 0xfff
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], ebx
cmp eax, 0xa
jb 0x100e2dca
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x348]
xor ecx, esp
call fcn.1005392f
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x24], eax
inc eax
mov dword [esi + 0x65e8], eax
xor edi, edi
lea ecx, [esp + 0x120]
mov edi, edi
xor eax, eax
xor edx, edx
cmp eax, edi
sete dl
inc eax
add ecx, 8
cmp eax, 4
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fstp qword [ecx - 8]
jl 0x100e2de2
inc edi
cmp edi, 4
jl 0x100e2de0
push esi
call fcn.100cd370
movzx eax, ax
add esp, 4
cmp eax, 0x200
ja 0x100e2db0
cmp eax, ebx
je 0x100e43e9
mov edi, edi
mov ebx, dword [ebp + 0xc]
dec eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x58]
push eax
push ebx
push esi
call fcn.100dcc70
mov edi, dword [esp + 0x64]
add esp, 0x18
cmp edi, 0x827d
ja 0x100e3675
je 0x100e3659
cmp edi, 0x26
ja 0x100e2f0e
cmp edi, 0x24
jae 0x100e2eee
lea eax, [edi - 2]
cmp eax, 0x15
ja case.0x100e3e3e.50713
movzx ecx, byte [eax + 0x100e4580]
jmp dword [ecx*4 + 0x100e4568]
cmp dword [esp + 0x18], 3
jne case.0x100e3e3e.50713
cmp dword [esp + 0x1c], 1
jne case.0x100e3e3e.50713
push esi
call fcn.100cd370
movzx edx, ax
mov dword [esp + 0x14], edx
add esp, 4
fild dword [esp + 0x10]
fmul qword [0x10162970]
fstp dword [esi + edi*8 + 0xe6ec]
jmp case.0x100e3e3e.50713
cmp dword [esp + 0x18], 3
jne case.0x100e3e3e.50713
push esi
call fcn.100cd370
movzx eax, ax
mov dword [esp + 0x14], eax
add esp, 4
fild dword [esp + 0x10]
fstp dword [esi + 0x6590]
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd370
movzx ecx, ax
mov dword [esp + 0x14], ecx
add esp, 4
fild dword [esp + 0x10]
fstp dword [esi + edi*4 + 0xe6e4]
jmp case.0x100e3e3e.50713
cmp edi, 0x131
ja 0x100e32fc
je case.0x100e2e81.11
add edi, 0xffffffd9
cmp edi, 0xfc
ja case.0x100e3e3e.50713
movzx edx, byte [edi + 0x100e45dc]
jmp dword [edx*4 + 0x100e4598]
cmp dword [esp + 0x1c], 0x32
jb case.0x100e3e3e.50713
fldz
lea edi, [esi + 0xe774]
fcomp dword [edi]
fnstsw ax
test ah, 0x44
jp case.0x100e3e3e.50713
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0xc
push ecx
call edx
add esp, 0xc
mov ebx, 3
push esi
call fcn.100cd370
movzx eax, ax
mov dword [esp + 0x14], eax
add esp, 4
add edi, 4
sub ebx, 1
fild dword [esp + 0x10]
fstp dword [edi - 4]
jne 0x100e2f74
jmp case.0x100e3e3e.50713
cmp dword [esp + 0x18], 7
jne case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x1c]
push edx
call eax
add esp, 4
cmp eax, 0xff
jne case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x1c]
push edx
call eax
add esp, 4
cmp eax, 0xd8
jne case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
call eax
mov ecx, dword [esp + 0x20]
add esp, 4
sub eax, 2
mov dword [esi + 0x65c4], eax
mov dword [esi + 0x65d0], ecx
jmp case.0x100e3e3e.50713
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd450
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + ecx*8]
add esp, 8
mov dword [esi + ecx*4 + 0x60f0], eax
jmp case.0x100e3e3e.50713
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd450
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + ecx*8]
add esp, 8
mov dword [esi + ecx*4 + 0x60f4], eax
jmp case.0x100e3e3e.50713
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x1c]
lea edi, [esi + edx*4]
and eax, 7
push esi
mov dword [edi + 0x610c], eax
call fcn.100cd370
movzx ecx, ax
add esp, 4
mov dword [edi + 0x60f8], ecx
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd370
movzx edx, ax
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*8]
add esp, 4
mov dword [esi + eax*4 + 0x60fc], edx
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd370
movzx ecx, ax
mov eax, dword [esp + 0x28]
lea edx, [eax + eax*8]
add esp, 4
mov dword [esi + edx*4 + 0x6100], ecx
jmp case.0x100e3e3e.50713
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 1
push 0x200
lea ecx, [esi + 0x6285]
push ecx
push edx
call eax
add esp, 0x10
jmp case.0x100e3e3e.50713
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
push 0x40
lea edx, [esi + 0x6485]
push edx
push eax
call ecx
add esp, 0xc
jmp case.0x100e3e3e.50713
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 0x10]
push 0x40
lea eax, [esi + 0x64c5]
push eax
push ecx
call edx
add esp, 0xc
jmp case.0x100e3e3e.50713
cmp dword [esp + 0x18], 4
jne case.0x100e3e3e.50713
mov dword [esi + 0x2e7fc], 0x100d35f0
mov dword [esi + 0x66ac], 0x2008
push esi
call fcn.100cd410
add ebx, eax
mov eax, dword [esp + 0x28]
lea ecx, [eax + eax*8]
lea edi, [esi + ecx*4]
add esp, 4
cmp dword [edi + 0x60f8], 0
mov dword [edi + 0x6104], ebx
jne case.0x100e3e3e.50713
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 0
push ebx
push eax
call ecx
push 1
lea edx, [esp + 0xd0]
push edx
push esi
call fcn.100cf0d0
add esp, 0x18
test eax, eax
je case.0x100e3e3e.50713
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
xor ecx, ecx
cmp eax, 2
sete cl
shl edx, cl
mov ecx, dword [esp + 0xc4]
mov dword [edi + 0x60fc], 6
mov dword [edi + 0x60f4], ecx
mov dword [edi + 0x60f0], edx
mov edx, dword [esp + 0xc0]
mov dword [edi + 0x60f8], edx
mov dword [edi + 0x610c], eax
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd370
add esp, 4
and eax, 7
movsx ecx, byte [eax + str.50132467]
mov eax, dword [esp + 0x24]
sub ecx, 0x30
lea edx, [eax + eax*8 + 0x1842]
mov dword [esi + edx*4], ecx
jmp case.0x100e3e3e.50713
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100cd450
mov ecx, eax
mov eax, dword [esp + 0x2c]
add esp, 8
and ecx, 7
lea edx, [eax + eax*8]
mov dword [esi + edx*4 + 0x610c], ecx
jmp case.0x100e3e3e.50713
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax + 0x10]
push 0x40
lea ecx, [esp + 0x214]
push ecx
push edx
call eax
push 5
lea ecx, [esp + 0x220]
push str.Adobe
push ecx
call fcn.10067543
add esp, 0x18
test eax, eax
je 0x100e32ed
push 5
lea edx, [esp + 0x214]
push str.dcraw
push edx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100e32ed
push 5
lea eax, [esp + 0x214]
push str.UFRaw
push eax
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100e32ed
push 6
lea ecx, [esp + 0x214]
push str.Bibble
push ecx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100e32ed
push 0xa
lea edx, [esp + 0x214]
push str.Nikon_Scan
push edx
call fcn.10067543
add esp, 0xc
test eax, eax
je 0x100e32ed
mov ecx, str.Digital_Photo_Professional
lea eax, [esp + 0x210]
lea ecx, [ecx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100e32e0
test dl, dl
je 0x100e32dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100e32e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100e32c0
xor eax, eax
jmp 0x100e32e5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne case.0x100e3e3e.50713
mov dword [esi + 0x6614], 0
jmp case.0x100e3e3e.50713
cmp edi, 0x202
ja 0x100e34fc
je case.0x100e2f36.279
add edi, 0xfffffece
cmp edi, 0xcf
ja case.0x100e3e3e.50713
movzx eax, byte [edi + 0x100e4700]
jmp dword [eax*4 + 0x100e46dc]
push 0
push esi
call fcn.100de0d0
add esp, 8
jmp case.0x100e3e3e.50713
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 1
push 0x40
lea ecx, [esi + 0x6545]
push ecx
push edx
call eax
add esp, 0x10
jmp case.0x100e3e3e.50713
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100cd450
add esp, 8
mov dword [esi + 0x6624], eax
jmp case.0x100e3e3e.50713
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd450
add esp, 8
mov dword [esi + 0x6628], eax
jmp case.0x100e3e3e.50713
mov edi, dword [esp + 0x1c]
cmp edi, 1
jbe 0x100e33a3
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x18]
push ecx
call edx
jmp 0x100e33a9
push esi
call fcn.100cd410
mov ecx, dword [esp + 0x28]
add esp, 4
lea ecx, [ecx + ecx*8]
mov dword [esi + ecx*4 + 0x6104], eax
cmp edi, 4
jne case.0x100e3e3e.50713
mov dword [esi + 0x2e7fc], 0x100e2aa0
mov dword [esi + 0x6614], 5
jmp case.0x100e3e3e.50713
mov edi, str.DSLR_A100
lea eax, [esi + 0x64c5]
mov cl, byte [eax]
cmp cl, byte [edi]
jne 0x100e3407
test cl, cl
je 0x100e3403
mov cl, byte [eax + 1]
cmp cl, byte [edi + 1]
jne 0x100e3407
add eax, 2
add edi, 2
test cl, cl
jne 0x100e33e7
xor eax, eax
jmp 0x100e340c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x100e3448
mov eax, dword [esp + 0x24]
lea edx, [eax + eax*8]
cmp dword [esi + edx*4 + 0x60f0], 0xf20
jne 0x100e3448
push esi
mov dword [esi + 0x2e7fc], 0x100d6510
call fcn.100cd410
add eax, ebx
add esp, 4
inc dword [esp + 0x24]
mov dword [esi + 0x65c0], eax
jmp case.0x100e3e3e.50713
cmp dword [esp + 0x1c], 0
je 0x100e34b1
nop
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x18]
dec dword [esp + 0x1c]
push ecx
call edx
mov edi, dword [esi]
add esp, 4
push 0
push esi
mov dword [esp + 0x28], eax
add edi, 8
call fcn.100cd410
mov ecx, dword [edi]
add eax, ebx
add esp, 4
push eax
mov eax, dword [esi + 4]
push eax
call ecx
push ebx
push esi
call fcn.100e2cf0
add esp, 0x14
test eax, eax
jne case.0x100e3e3e.50713
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 8]
push eax
mov eax, dword [esp + 0x24]
add eax, 4
push eax
push ecx
call edx
add esp, 0xc
cmp dword [esp + 0x1c], 0
jne 0x100e3450
dec dword [esp + 0x1c]
jmp case.0x100e3e3e.50713
mov eax, dword [str.Sarnoff]
mov dword [esi + 0x6485], eax
mov ecx, dword [0x1016becc]
mov dword [esi + 0x6489], ecx
mov dword [esi + 0x65fc], 0xfff
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd410
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ecx*8]
add esp, 4
mov dword [esi + edx*4 + 0x6110], eax
jmp case.0x100e3e3e.50713
cmp edi, 0x7221
ja 0x100e35bf
je 0x100e35ad
sub edi, 0x7010
je 0x100e354b
sub edi, 0x1f0
je 0x100e3539
sub edi, 1
jne case.0x100e3e3e.50713
push esi
call fcn.100cd410
add esp, 4
mov dword [esp + 0x34], eax
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd410
add esp, 4
mov dword [esp + 0x38], eax
jmp case.0x100e3e3e.50713
xor edi, edi
lea ecx, [ecx]
push esi
call fcn.100cd370
inc edi
add esp, 4
shr eax, 2
and eax, 0xfff
cmp edi, 4
mov dword [esp + edi*4 + 0x50], eax
jl 0x100e3550
xor ecx, ecx
mov edi, dword [esp + ecx*4 + 0x50]
inc edi
cmp edi, dword [esp + ecx*4 + 0x54]
jg 0x100e35a2
mov eax, dword [esp + ecx*4 + 0x54]
mov ebx, 1
sub eax, edi
shl ebx, cl
lea edx, [esi + edi*2 + 0x6764]
inc eax
lea ecx, [ecx]
mov di, word [edx - 2]
add di, bx
mov word [edx], di
add edx, 2
sub eax, 1
jne 0x100e3590
inc ecx
cmp ecx, 5
jl 0x100e356d
jmp case.0x100e3e3e.50713
push esi
call fcn.100cd410
add esp, 4
mov dword [esp + 0x3c], eax
jmp case.0x100e3e3e.50713
sub edi, 0x7250
je 0x100e3636
sub edi, 0xb3
je 0x100e3604
sub edi, 0x10
jne case.0x100e3e3e.50713
push esi
call fcn.100cd370
movzx eax, ax
mov ecx, edi
sar ecx, 1
mov dword [esp + 0x14], eax
xor ecx, edi
inc edi
fild dword [esp + 0x14]
add esp, 4
cmp edi, 4
fstp dword [esi + ecx*4 + 0xe774]
jl 0x100e35d8
jmp case.0x100e3e3e.50713
xor edi, edi
push esi
call fcn.100cd370
movzx edx, ax
xor eax, eax
add esp, 4
cmp edi, 2
setl al
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
xor eax, edi
inc edi
fstp dword [esi + eax*4 + 0xe774]
cmp edi, 4
jl 0x100e3606
jmp case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
call eax
push eax
push esi
call fcn.100e4eb0
add esp, 0xc
xor ecx, ecx
mov word [esi + 0x66b2], cx
jmp case.0x100e3e3e.50713
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 0x10]
push 0x40
lea eax, [esi + 0x6505]
push eax
push ecx
call edx
add esp, 0xc
jmp case.0x100e3e3e.50713
cmp edi, 0xc51a
ja 0x100e3d25
je 0x100e3ce2
cmp edi, 0x8773
ja 0x100e38c1
je case.0x100e3e3e.50831
cmp edi, 0x85ff
ja 0x100e3724
je 0x100e386e
add edi, 0xffff7d72
cmp edi, 0xf
ja case.0x100e3e3e.50713
movzx eax, byte [edi + 0x100e47e4]
jmp dword [eax*4 + 0x100e47d0]
mov edi, dword [esi]
push 0
push esi
add edi, 8
call fcn.100cd410
mov ecx, dword [esi + 4]
mov edx, dword [edi]
add esp, 4
add eax, ebx
push eax
push ecx
call edx
push ebx
push esi
call fcn.100deba0
add esp, 0x14
jmp case.0x100e3e3e.50713
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100cd490
fstp dword [esi + 0x6594]
add esp, 8
jmp case.0x100e3e3e.50713
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100cd490
fstp dword [esi + 0x6598]
add esp, 8
jmp case.0x100e3e3e.50713
cmp edi, 0x8606
ja 0x100e388b
je 0x100e3859
sub edi, 0x8602
je 0x100e381a
sub edi, 1
jne case.0x100e3e3e.50713
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push 7
push 1
lea eax, [esp + 0x218]
push eax
push ecx
call edx
push 6
lea eax, [esp + 0x224]
push 0x1016bec0
push eax
call fcn.10067543
add esp, 0x1c
test eax, eax
jne case.0x100e3e3e.50713
xor ebx, ebx
lea ecx, [esi + 0xe7c4]
mov dword [esi + 0x66d0], 4
mov dword [esi + 0x6604], ebx
mov dword [esp + 0x10], ecx
xor edi, edi
mov edi, edi
mov edx, dword [esi]
mov eax, edi
xor eax, 1
add eax, ebx
lea ecx, [esi + eax*4 + 0xe7c4]
mov eax, dword [esi + 4]
push ecx
mov ecx, dword [edx + 0x20]
push 0x101a3034
push eax
call ecx
inc edi
add esp, 0xc
cmp edi, 4
jl 0x100e37a0
cmp dword [esi + 0xdc], 0
je 0x100e3808
mov edx, dword [esp + 0x10]
fldz
mov eax, edx
mov ecx, 4
fadd dword [eax]
add eax, 4
sub ecx, 1
jne 0x100e37de
fstp dword [esp + 0x20]
mov eax, edx
fld dword [esp + 0x20]
mov ecx, 4
fld dword [eax]
add eax, 4
sub ecx, 1
fdiv st(1)
fstp dword [eax - 4]
jne 0x100e37f7
fstp st(0)
add dword [esp + 0x10], 0x10
add ebx, 4
cmp ebx, 0xc
jl 0x100e379c
jmp case.0x100e3e3e.50713
xor edi, edi
lea esp, [esp]
push esi
call fcn.100cd370
movzx edx, ax
mov dword [esp + 0x14], edx
mov eax, edi
xor eax, 1
fild dword [esp + 0x14]
inc edi
add esp, 4
cmp edi, 4
fdivr qword [0x1016beb8]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esi + eax*4 + 0xe774]
jl 0x100e3820
jmp case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0x18]
push edx
call eax
push eax
push esi
call fcn.100de620
add esp, 0xc
mov ecx, dword [str.Leaf]
mov dword [esi + 0x6485], ecx
mov dl, byte [0x101673a4]
mov byte [esi + 0x6489], dl
jmp case.0x100e3e3e.50713
cmp edi, 0x8769
jne case.0x100e3e3e.50713
mov edi, dword [esi]
push 0
push esi
add edi, 8
call fcn.100cd410
mov ecx, dword [edi]
add eax, ebx
add esp, 4
push eax
mov eax, dword [esi + 4]
push eax
call ecx
push ebx
push esi
call fcn.100de1d0
add esp, 0x14
jmp case.0x100e3e3e.50713
cmp edi, 0x9218
ja 0x100e39d9
je 0x100e396d
cmp edi, 0x920a
ja 0x100e3948
je 0x100e392f
cmp edi, 0x8825
je 0x100e3905
cmp edi, 0x9102
jne case.0x100e3e3e.50713
push esi
call fcn.100cd410
add esp, 4
mov dword [esi + 0x65ac], eax
jmp case.0x100e3e3e.50713
mov edi, dword [esi]
push 0
push esi
add edi, 8
call fcn.100cd410
mov edx, dword [esi + 4]
add eax, ebx
add esp, 4
push eax
mov eax, dword [edi]
push edx
call eax
push ebx
push esi
call fcn.100de440
add esp, 0x14
jmp case.0x100e3e3e.50713
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100cd490
fstp dword [esi + 0x659c]
add esp, 8
jmp case.0x100e3e3e.50713
cmp edi, 0x9211
jne case.0x100e3e3e.50713
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd450
add esp, 8
mov dword [esi + 0x65a8], eax
jmp case.0x100e3e3e.50713
lea eax, [esi + 0xe7c4]
mov dword [esi + 0x6604], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 3
lea esp, [esp]
mov ecx, dword [esp + 0x18]
push ecx
push esi
call fcn.100cd490
fstp st(0)
mov edi, dword [esp + 0x18]
add esp, 8
mov ebx, 3
lea esp, [esp]
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd490
fstp dword [edi]
add esp, 8
add edi, 4
sub ebx, 1
jne 0x100e39b0
add dword [esp + 0x10], 0x10
sub dword [esp + 0x20], 1
jne 0x100e3990
jmp case.0x100e3e3e.50713
cmp edi, 0xb4c7
ja 0x100e3c30
je 0x100e3a39
cmp edi, 0xb4c3
jne case.0x100e3e3e.50713
mov eax, dword [str.Imacon]
mov dword [esi + 0x6485], eax
mov cx, word [0x1016beb0]
mov eax, dword [esi]
mov word [esi + 0x6489], cx
mov dl, byte [0x1016beb2]
mov ecx, dword [esi + 4]
mov byte [esi + 0x648b], dl
mov edx, dword [eax + 0x18]
push ecx
call edx
mov dword [esi + 0x65c0], eax
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0x30], eax
jmp case.0x100e3e3e.50713
cmp dword [esp + 0x30], 0
je case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x4e
push edx
call eax
push esi
call fcn.100cd410
push esi
mov word [esi + 0x66b2], ax
call fcn.100cd410
push esi
mov word [esi + 0x66b0], ax
call fcn.100cd410
and eax, 7
push esi
mov word [esi + 0x66ba], ax
call fcn.100cd410
mov cx, word [esi + 0x66b2]
and eax, 7
sub cx, ax
sub cx, word [esi + 0x66ba]
push esi
mov word [esi + 0x66b6], cx
call fcn.100cd410
and eax, 7
push esi
mov word [esi + 0x66b8], ax
call fcn.100cd410
mov dx, word [esi + 0x66b0]
and eax, 7
sub dx, ax
sub dx, word [esi + 0x66b8]
mov eax, 0x1c5e
add esp, 0x24
mov word [esi + 0x66b4], dx
cmp word [esi + 0x66b2], ax
jne 0x100e3b04
mov ecx, 0x1544
mov edx, 0x1c4c
mov eax, 7
mov word [esi + 0x66b4], cx
mov word [esi + 0x66b6], dx
mov word [esi + 0x66ba], ax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x34
push edx
call eax
add esp, 0xc
lea edi, [esi + 0xe774]
mov ebx, 3
push 0xb
push esi
call fcn.100cd490
fstp dword [edi]
add esp, 8
add edi, 4
sub ebx, 1
jne 0x100e3b21
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x72
push edx
call eax
push esi
call fcn.100cd370
movzx edi, word [esi + 0x66b6]
movzx ebx, word [esi + 0x66b4]
movzx ecx, bx
movzx edx, di
movzx eax, ax
imul ecx, edx
shr eax, 7
imul eax, eax, 0x5a
lea ecx, [ecx + ecx*2]
add ecx, ecx
add esp, 0x10
mov dword [esi + 0x66c8], eax
cmp ecx, dword [esp + 0x30]
jne 0x100e3bba
cdq
mov ecx, 0xb4
idiv ecx
cmp edx, 0x5a
jne 0x100e3bac
mov eax, ebx
xor eax, edi
xor word [esi + 0x66b4], ax
mov word [esi + 0x66b6], ax
movzx eax, word [esi + 0x66b4]
xor word [esi + 0x66b6], ax
xor eax, eax
mov dword [esi + 0x66c8], eax
mov dword [esi + 0x65b0], eax
movzx edx, word [esi + 0x66b6]
movzx ecx, word [esi + 0x66b4]
imul ecx, edx
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea ecx, [esi + 0x64c5]
push str.Ixpress__d_Mp
push ecx
call fcn.10056fab
add esp, 0xc
cmp dword [esi + 0x65b0], 0
mov dword [esi + 0x2e7fc], 0x100d2e20
je 0x100e3c21
test byte [esi + 0x66ba], 1
je 0x100e3c17
mov dword [esi + 0x65b0], 0x61616161
mov dword [esi + 0x2e7fc], fcn.100d3180
mov dword [esi + 0x65fc], 0xffff
jmp case.0x100e3e3e.50713
cmp edi, 0xc516
jb case.0x100e3e3e.50713
cmp edi, 0xc517
ja case.0x100e3e3e.50713
mov ebx, dword [esp + 0x1c]
push ebx
call fcn.10054f2b
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je case.0x100e3e3e.50713
mov edx, dword [esi]
mov ecx, dword [edx]
push ebx
mov edi, eax
mov eax, dword [esi + 4]
push 1
push edi
push eax
call ecx
add esp, 0x10
add edi, 0xffffffff
je 0x100e3cd0
mov edx, dword [esp + 0x10]
add ebx, edx
nop
cmp edi, ebx
jae 0x100e3cd0
push 8
inc edi
push str.Neutral
push edi
call fcn.10067543
add esp, 0xc
test eax, eax
jne 0x100e3cbf
lea eax, [esi + 0xe77c]
push eax
lea ecx, [esi + 0xe778]
push ecx
lea edx, [esi + 0xe774]
push edx
lea eax, [edi + 8]
push str._f__f__f
push eax
call fcn.10152906
add esp, 0x14
push 0xa
push edi
call fcn.10064260
mov edi, eax
add esp, 8
test edi, edi
jne 0x100e3c80
mov ecx, dword [esp + 0x10]
push ecx
call fcn.10054ff5
add esp, 4
jmp case.0x100e3e3e.50713
cmp byte [esi + 0x6485], 0
jne case.0x100e3e3e.50713
mov edx, dword [str.Hasselblad]
mov dword [esi + 0x6485], edx
mov eax, dword [0x1016be7c]
mov dword [esi + 0x6489], eax
mov cx, word [0x1016be80]
mov word [esi + 0x648d], cx
mov dl, byte [0x1016be82]
mov byte [esi + 0x648f], dl
jmp case.0x100e3e3e.50713
cmp edi, 0xc612
ja 0x100e3e16
je 0x100e3dc5
cmp edi, 0xc51b
jne case.0x100e3e3e.50713
movsx eax, word [esi + 0x6274]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x18]
push edx
call eax
mov ecx, dword [esi + 0x65e8]
push esi
mov ebx, eax
mov dword [esp + 0x18], ecx
call fcn.100cd370
push esi
mov word [esi + 0x6274], ax
call fcn.100cd370
mov edi, dword [esi]
add esp, 0xc
push 0
push esi
add edi, 8
call fcn.100cd410
mov edx, dword [esi + 4]
add eax, ebx
add esp, 4
push eax
mov eax, dword [edi]
push edx
call eax
push ebx
push esi
call fcn.100e2cf0
mov ecx, dword [esp + 0x24]
mov dx, word [esp + 0x34]
add esp, 0x14
mov dword [esi + 0x65fc], 0xffff
mov dword [esi + 0x65e8], ecx
mov word [esi + 0x6274], dx
jmp case.0x100e3e3e.50713
mov edi, 4
lea ebx, [ebx]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x1c]
push ecx
call edx
mov ecx, dword [esi + 0x6618]
shl ecx, 8
add eax, ecx
add esp, 4
sub edi, 1
mov dword [esi + 0x6618], eax
jne 0x100e3dd0
cmp byte [esi + 0x6485], 0
jne 0x100e3e07
mov dword [esi + 0x6485], 0x474e44
mov dword [esi + 0x6614], 1
jmp case.0x100e3e3e.50713
cmp edi, 0xfd04
ja 0x100e41f8
je 0x100e41b0
lea eax, [edi - 0xc616]
cmp eax, 0x79
ja case.0x100e3e3e.50713
movzx edx, byte [eax + 0x100e4834]
jmp dword [edx*4 + 0x100e47f4]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x18]
push ecx
call edx
mov dword [esi + 0x65cc], eax
mov eax, dword [esp + 0x20]
add esp, 4
mov dword [esi + 0x65d8], eax
jmp case.0x100e3e3e.50713
mov eax, dword [esp + 0x1c]
cmp eax, 4
jbe 0x100e3e7a
mov eax, 4
mov dword [esp + 0x1c], eax
mov ecx, dword [esi]
push eax
mov dword [esi + 0x66d0], eax
mov eax, dword [esi + 4]
mov ecx, dword [ecx]
push 1
lea edx, [esp + 0x30]
push edx
push eax
call ecx
mov ebx, dword [esp + 0x50]
add esp, 0x10
jmp 0x100e429d
push esi
call fcn.100cd370
add esp, 4
cmp ax, 2
jne case.0x100e3e3e.50713
mov edx, 1
mov word [esi + 0x66c2], dx
mov dword [esi + 0x65b0], 0x49494949
jmp case.0x100e3e3e.50713
mov eax, dword [esp + 0x1c]
push eax
push esi
call fcn.100deb30
add esp, 8
jmp case.0x100e3e3e.50713
fldz
mov edi, dword [esp + 0x1c]
fst qword [esp + 0x10]
test edi, edi
jle 0x100e3f0e
mov ebx, dword [esp + 0x18]
push ebx
fstp st(0)
push esi
call fcn.100cd490
fadd qword [esp + 0x18]
add esp, 8
sub edi, 1
fst qword [esp + 0x10]
jne 0x100e3ef1
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
fild dword [esp + 0x10]
test edi, edi
jge 0x100e3f20
fadd qword [0x101a37d8]
fdivp st(1)
fadd qword [0x101a3838]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov ecx, dword [esp + 0x10]
add dword [esi + 0x65f8], ecx
fldcw word [esp + 0x20]
jmp case.0x100e3e3e.50713
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd450
add esp, 8
mov dword [esi + 0x65fc], eax
jmp case.0x100e3e3e.50713
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100cd490
fstp qword [esi + 0x66d8]
push edi
push esi
call fcn.100cd490
fdivr qword [esi + 0x66d8]
add esp, 0x10
fstp qword [esi + 0x66d8]
jmp case.0x100e3e3e.50713
cmp dword [esi + 0x66d0], 0
mov dword [esp + 0x10], 0
jle 0x100e3fe0
lea edi, [esp + 0x1a0]
mov ebx, 3
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.100cd490
fstp qword [edi]
add esp, 8
add edi, 8
sub ebx, 1
jne 0x100e3fb7
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [esi + 0x66d0]
mov dword [esp + 0x10], eax
jl 0x100e3fb2
mov dword [esp + 0x44], 1
jmp case.0x100e3e3e.50713
cmp dword [esi + 0x66d0], 0
mov dword [esp + 0x20], 0
jle case.0x100e3e3e.50727
lea ecx, [esp + 0x120]
mov dword [esp + 0x10], ecx
lea esp, [esp]
xor edi, edi
cmp dword [esi + 0x66d0], edi
jle 0x100e403c
mov ebx, dword [esp + 0x10]
mov edi, edi
mov edx, dword [esp + 0x18]
push edx
push esi
call fcn.100cd490
fstp qword [ebx]
inc edi
add esp, 8
add ebx, 8
cmp edi, dword [esi + 0x66d0]
jl 0x100e4020
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], 0x20
inc eax
cmp eax, dword [esi + 0x66d0]
mov dword [esp + 0x20], eax
jl 0x100e4010
xor edi, edi
cmp dword [esi + 0x66d0], edi
jle case.0x100e3e3e.50713
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.100cd490
fstp qword [esp + edi*8 + 0xa8]
inc edi
add esp, 8
cmp edi, dword [esi + 0x66d0]
jl 0x100e4064
jmp case.0x100e3e3e.50713
xor edi, edi
cmp dword [esi + 0x66d0], edi
jle case.0x100e3e3e.50713
mov ebx, dword [esp + 0x18]
push ebx
push esi
call fcn.100cd490
fstp qword [esp + edi*8 + 0x88]
inc edi
add esp, 8
cmp edi, dword [esi + 0x66d0]
jl 0x100e4095
jmp case.0x100e3e3e.50713
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100cd490
fstp qword [esp + 0x70]
push edi
push esi
call fcn.100cd490
fst qword [esp + 0x80]
fld1
add esp, 0x10
fsub qword [esp + 0x68]
lea ecx, [esp + 0x68]
mov eax, 0x10167c90
fsubrp st(1)
fstp qword [esp + 0x78]
lea esp, [esp]
fld dword [eax]
add eax, 4
fdivr qword [ecx]
add ecx, 8
cmp eax, 0x10167c9c
fstp qword [ecx - 8]
jl 0x100e40f0
jmp case.0x100e3e3e.50713
cmp dword [esi + 0x6618], 0
jne case.0x100e3e3e.50713
push esi
call fcn.100cd410
mov ebx, dword [ebp + 0xc]
mov edi, eax
add edi, ebx
push edi
push esi
call fcn.100e4eb0
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 0
push edi
push ecx
call edx
push ebx
push esi
call fcn.100e2cf0
add esp, 0x20
jmp case.0x100e3e3e.50713
push 3
lea eax, [esi + 0xe766]
push eax
push esi
call fcn.100cd6b0
add esp, 0xc
jmp case.0x100e3e3e.50713
mov edi, dword [esp + 0x18]
push edi
push esi
call fcn.100cd450
push edi
push esi
mov word [esi + 0x66b8], ax
call fcn.100cd450
push edi
push esi
mov word [esi + 0x66ba], ax
call fcn.100cd450
sub ax, word [esi + 0x66b8]
push edi
push esi
mov word [esi + 0x66b4], ax
call fcn.100cd450
add esp, 0x20
sub ax, word [esi + 0x66ba]
mov word [esi + 0x66b6], ax
jmp case.0x100e3e3e.50713
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x10
push edx
call eax
push esi
call fcn.100cd410
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 1
mov dword [esi + 0x65c0], eax
mov eax, dword [ecx + 8]
push 0x1c
push edx
call eax
push esi
call fcn.100cd410
add esp, 0x20
add dword [esi + 0x65c0], eax
mov dword [esi + 0x2e7fc], 0x100d2e90
jmp case.0x100e3e3e.50713
cmp edi, 0xfd09
jne case.0x100e3e3e.50713
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x40], ebx
cmp ebx, 0x10
jbe 0x100e421a
mov ebx, 0x10
mov dword [esp + 0x40], ebx
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx]
push ebx
push 1
lea edx, [esp + 0x208]
push edx
push eax
call ecx
xor edi, edi
add esp, 0x10
xor edx, edx
cmp ebx, edi
mov dword [esi + 0x66d0], edi
jle 0x100e429d
mov dword [esp + 0x10], edx
mov cl, byte [esp + edx + 0x200]
mov ebx, dword [esp + 0x40]
mov eax, 1
shl eax, cl
mov ecx, edi
and ecx, eax
neg ecx
sbb ecx, ecx
inc ecx
add dword [esp + 0x10], ecx
inc edx
or edi, eax
cmp edx, ebx
jl 0x100e4244
mov edx, dword [esp + 0x10]
mov dword [esi + 0x66d0], edx
cmp edi, 0x38
jne 0x100e4290
mov ax, word [0x1016be74]
mov cl, byte [0x1016be76]
mov word [esp + 0x28], ax
mov byte [esp + 0x2a], cl
jmp 0x100e429d
cmp edi, 0x3a
jne 0x100e429d
mov dword [esp + 0x28], 0x1040305
xor eax, eax
cmp dword [esi + 0x66d0], eax
jle 0x100e42c1
mov ecx, dword [esi + 0x66d0]
lea ecx, [ecx]
movzx edx, byte [esp + eax + 0x28]
mov byte [esp + edx + 0x250], al
inc eax
cmp eax, ecx
jl 0x100e42b0
mov byte [esi + eax + 0x6280], 0
mov edi, dword [esi + 0x65b0]
mov ecx, 0x10
dec ecx
xor edx, edx
mov eax, ecx
div ebx
movzx eax, byte [esp + edx + 0x200]
movzx edx, byte [esp + eax + 0x250]
lea eax, [edi*4]
or edx, eax
mov edi, edx
test ecx, ecx
jne 0x100e42d4
mov dword [esi + 0x65b0], edi
mov edx, dword [esp + 0x48]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 8]
push 0
push edx
push eax
call ecx
mov eax, dword [esp + 0x38]
add esp, 0xc
test eax, eax
jne 0x100e2e20
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100e43e7
push eax
call fcn.10054f2b
mov edi, eax
add esp, 4
test edi, edi
je 0x100e43e7
mov ebx, dword [esp + 0x38]
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 0
push ebx
push eax
call ecx
mov eax, dword [esp + 0x40]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push 1
push eax
push edi
push ecx
call edx
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
push eax
push 1
shr ecx, 2
push ecx
push edi
call fcn.100d6130
mov edx, dword [esi]
mov eax, dword [esi + 4]
add esp, 0x2c
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], eax
mov dword [esi], 0x101b4098
call fcn.10152656
mov dword [esi + 4], eax
test eax, eax
je 0x100e43d1
mov edx, dword [esp + 0x34]
mov ecx, dword [esi]
push 1
push edx
push edi
push eax
mov eax, dword [ecx + 4]
call eax
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 0
push 0
push edx
call eax
neg ebx
push ebx
push esi
call fcn.100e2cf0
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 0xc]
push edx
call eax
add esp, 0x28
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
push edi
mov dword [esi], ecx
mov dword [esi + 4], edx
call fcn.10054ff5
add esp, 4
xor ebx, ebx
cmp dword [esi + 0x66d0], ebx
jle 0x100e442a
mov ebx, dword [esi + 0x66d0]
lea edi, [esp + 0x120]
lea ecx, [esp + 0xa0]
mov edx, dword [esi + 0x66d0]
mov eax, edi
lea ecx, [ecx]
fld qword [eax]
add eax, 8
sub edx, 1
fmul qword [ecx]
fstp qword [eax - 8]
jne 0x100e4410
add ecx, 8
add edi, 0x20
sub ebx, 1
jne 0x100e4405
cmp dword [esp + 0x44], 0
je 0x100e44c1
cmp dword [esi + 0x66d0], 0
jle 0x100e44b0
mov ecx, dword [esi + 0x66d0]
fldz
lea eax, [esp + 0x120]
mov dword [esp + 0x30], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0x38], ecx
xor edx, edx
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x30]
fst qword [eax]
mov edi, dword [esi + 0x66d0]
lea ebx, [esp + edx + 0x68]
lea edx, [esp + edx + 0x1a0]
fld qword [edx]
add ecx, 8
fmul qword [ecx - 8]
add edx, 0x18
sub edi, 1
fmul qword [ebx]
fadd qword [eax]
fstp qword [eax]
jne 0x100e4479
mov edx, dword [esp + 0x3c]
add edx, 8
add eax, 8
cmp edx, 0x18
mov dword [esp + 0x3c], edx
jl 0x100e4462
add dword [esp + 0x30], 0x20
sub dword [esp + 0x38], 1
jne 0x100e445c
fstp st(0)
lea ecx, [esp + 0xc0]
push ecx
push esi
call fcn.100d7f00
add esp, 8
fldz
fcomp qword [esp + 0x80]
fnstsw ax
test ah, 0x44
jnp 0x100e450d
fldz
xor eax, eax
cmp dword [esi + 0x66d0], eax
fstp dword [esi + 0xe780]
jle 0x100e450d
fld1
lea ecx, [esi + 0xe774]
fld qword [esp + eax*8 + 0x80]
inc eax
fstp dword [esp + 0x2c]
add ecx, 4
fld dword [esp + 0x2c]
fdivr st(1)
fstp dword [ecx - 4]
cmp eax, dword [esi + 0x66d0]
jl 0x100e44eb
fstp st(0)
cmp dword [esp + 0x44], 0
jne 0x100e454e
xor edx, edx
cmp dword [esi + 0x66d0], edx
jle 0x100e454e
lea ecx, [esp + 0x120]
lea eax, [esi + 0xe784]
jmp 0x100e4530
fld dword [eax]
inc edx
fld qword [ecx]
add eax, 4
fstp dword [esp + 0x2c]
add ecx, 0x28
fdiv dword [esp + 0x2c]
fstp dword [eax - 4]
cmp edx, dword [esi + 0x66d0]
jl 0x100e4530
mov ecx, dword [esp + 0x354]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.1005392f
mov esp, ebp
pop ebp
ret