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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x628
movaps xmm0, xmmword [0x103f9b40]
xor eax, eax
movups xmmword [esp + 0x168], xmm0
push esi
movaps xmm0, xmmword [0x103f9b40]
xor esi, esi
movups xmmword [esp + 0x17c], xmm0
mov dword [esp + 0x4c], eax
xorps xmm0, xmm0
mov dword [esp + 0x54], eax
push edi
mov edi, ecx
mov dword [esp + 0x5c], eax
movups xmmword [esp + 0x110], xmm0
mov dword [esp + 0x48], eax
movups xmmword [esp + 0x120], xmm0
mov eax, dword [edi + 0x54858]
movaps xmm0, xmmword [0x103f9b40]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x6c], 0x10
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], esi
mov dword [esp + 0x4c], 0x3020100
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], esi
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], esi
mov dword [esp + 0xe4], 0xfff
mov dword [esp + 0x20], eax
movups xmmword [esp + 0xe8], xmm0
movsd xmm0, qword [0x103f94d8]
movsd qword [esp + 0xf8], xmm0
cmp eax, 0xa
jb 0x1015784f
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
inc eax
lea edx, [esp + 0x1b0]
mov dword [edi + 0x54858], eax
xor esi, esi
nop
xor ecx, ecx
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 0x10157862
inc esi
cmp esi, 4
jl 0x10157860
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x18]
push 2
mov word [esp + 0x1c], 0xffff
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x101578b9
movzx esi, byte [esp + 0x19]
movzx eax, byte [esp + 0x18]
jmp 0x101578c3
movzx esi, byte [esp + 0x18]
movzx eax, byte [esp + 0x19]
shl esi, 8
or esi, eax
cmp esi, 0x200
ja 0x10157842
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc4], edx
test esi, esi
je 0x1015be9c
mov dword [esp + 0xc8], 3
lea eax, [esp + 0x60]
dec esi
push eax
lea eax, [esp + 0x6c]
mov dword [esp + 0xd0], esi
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
lea eax, [esp + 0xc0]
push eax
push dword [ebp + 8]
call fcn.1014c820
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [esp + 0x68]
mov esi, edx
mov dword [esp + 8], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ecx
cmp ecx, 8
jbe 0x10157981
mov edx, ecx
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0xc4]
adc ecx, esi
mov esi, dword [esp + 0xb0]
shld eax, esi, 1
add esi, esi
cmp ecx, eax
jl 0x1015797d
jg case.0x1015b332.61444
cmp edx, esi
ja case.0x1015b332.61444
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x83d6c]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], esi
test eax, eax
je 0x101579ea
cmp dword [esp + 0x48], 0
je 0x101579a8
mov edx, 0x30000
jmp 0x101579b2
mov edx, dword [esp + 0x20]
lea edx, [edx + 1]
shl edx, 0x14
push dword [edi + 0x54800]
movsx eax, word [edi + 0x54860]
or edx, esi
push eax
push ecx
push dword [esp + 0x28]
push edx
push dword [edi + 0x83d70]
call dword [esp + 0x24]
mov ecx, dword [edi + 0x54800]
add esp, 0x18
mov eax, dword [ecx]
push 0
push dword [esp + 0x18]
push dword [esp + 0x10]
call dword [eax + 0xc]
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x10157a74
push 0xa
lea eax, [edi + 0xc4]
push str.Hasselblad
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x10157c8b.30766
push 7
lea eax, [edi + 0x104]
push str.Stellar
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x10157a74
push 5
lea eax, [edi + 0x104]
push str.Lunar
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
je 0x10157a74
push 2
lea eax, [edi + 0x104]
push 0x102b6160
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x10157c8b.30766
cmp esi, 0x7820
ja 0x10157c75
je 0x10157c02
cmp esi, 0x7480
ja 0x10157bb2
je 0x10157c02
mov eax, esi
sub eax, 0x7300
je 0x10157b66
sub eax, 2
je 0x10157b38
sub eax, 0x10
jne case.0x10157c8b.30766
xor esi, esi
nop dword [eax]
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [esp + esi*4 + 0x90], eax
inc esi
cmp esi, 4
jl 0x10157ac0
cmp dword [esp + 0x94], 0x400
jne 0x10157af8
cmp dword [esp + 0x98], 0x400
jne 0x10157af8
mov ecx, 2
jmp 0x10157afa
xor ecx, ecx
mov eax, dword [esp + ecx*4 + 0x94]
add dword [esp + ecx*4 + 0x90], eax
mov eax, dword [esp + ecx*4 + 0x90]
sub eax, dword [esp + ecx*4 + 0x94]
sub dword [esp + ecx*4 + 0x90], eax
mov dword [esp + ecx*4 + 0x94], eax
movups xmm0, xmmword [esp + 0x90]
movups xmmword [edi + 0x298b0], xmm0
jmp case.0x1015b332.61444
xor esi, esi
nop word [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
xor eax, eax
cmp esi, 2
setl al
xor eax, esi
inc esi
mov dword [edi + eax*4 + 0x298b0], ecx
cmp esi, 4
jl 0x10157b40
jmp case.0x1015b332.61444
mov esi, dword [esp + 0x10]
lea ecx, [edi + 0x20f38]
xor eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 8], eax
nop word [eax + eax]
cmp eax, esi
jae case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
mov ecx, dword [esp + 0x24]
movzx eax, ax
mov dword [ecx], eax
add ecx, 4
mov eax, dword [esp + 8]
inc eax
mov dword [esp + 0x24], ecx
mov dword [esp + 8], eax
cmp eax, 4
jl 0x10157b80
jmp case.0x1015b332.61444
lea eax, [esi - 0x7481]
cmp eax, 5
ja case.0x10157c8b.30766
jmp dword [eax*4 + 0x1015c0b0]
lea esi, [edi + 0x293b0]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157bd6
mov eax, dword [edi + 0x293b4]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x293bc], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x293a0]
mov dword [esp + 8], 3
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x40]
push 2
mov word [esp + 0x44], 0xffff
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10157c45
movzx ecx, byte [esp + 0x41]
movzx eax, byte [esp + 0x40]
jmp 0x10157c4f
movzx ecx, byte [esp + 0x40]
movzx eax, byte [esp + 0x41]
shl ecx, 8
or ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [esp + 8], 1
jne 0x10157c10
mov eax, dword [edi + 0x293a4]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x293ac], eax
jmp case.0x10157c8b.30766
lea eax, [esi - 0x7821]
cmp eax, 0x5e
ja case.0x10157c8b.30766
movzx eax, byte [eax + 0x1015c104]
jmp dword [eax*4 + 0x1015c0c8]
lea esi, [edi + 0x29430]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157ca0
mov eax, dword [edi + 0x29434]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2943c], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x293c0]
mov dword [esp + 8], 3
nop word [eax + eax]
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157ce0
mov eax, dword [edi + 0x293c4]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x293cc], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x293d0]
mov dword [esp + 8], 3
nop word [eax + eax]
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157d20
mov eax, dword [edi + 0x293d4]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x293dc], eax
jmp case.0x10157c8b.30766
mov dword [edi + 0x2a390], 0x458ca000
lea esi, [edi + 0x2a394]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10157d64
mov eax, dword [edi + 0x2a398]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2a3a0], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x29440]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157da7
mov eax, dword [edi + 0x29444]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2944c], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x29470]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157de1
mov eax, dword [edi + 0x29474]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2947c], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x29460]
mov dword [esp + 8], 3
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157e20
mov eax, dword [edi + 0x29464]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2946c], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x29450]
mov dword [esp + 8], 3
nop word [eax + eax]
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157e60
mov eax, dword [edi + 0x29454]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2945c], eax
jmp case.0x10157c8b.30766
lea esi, [edi + 0x29490]
mov dword [esp + 8], 3
nop word [eax + eax]
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10157ea0
mov eax, dword [edi + 0x29494]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2949c], eax
jmp case.0x10157c8b.30766
mov dword [edi + 0x2a3a4], 0x4604d000
lea esi, [edi + 0x2a3a8]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10157ee4
mov eax, dword [edi + 0x2a3ac]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2a3b4], eax
jmp case.0x10157c8b.30766
mov dword [edi + 0x2a3b8], 0x45bb8000
lea esi, [edi + 0x2a3bc]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10157f31
mov eax, dword [edi + 0x2a3c0]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2a3c8], eax
jmp case.0x10157c8b.30766
mov dword [edi + 0x2a3cc], 0x45480000
lea esi, [edi + 0x29510]
mov dword [esp + 8], 3
nop
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [esi + 0xebc], xmm0
mov dword [esi - 4], eax
jne 0x10157f80
movd xmm0, dword [edi + 0x29514]
mov esi, dword [esp + 0x18]
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [edi + 0x2a3dc], xmm0
mov dword [edi + 0x2951c], eax
jmp case.0x10157c8b.30766
mov dword [edi + 0x2a3e0], 0x451c4000
lea esi, [edi + 0x2a3e4]
mov dword [esp + 8], 3
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10157fe8
mov eax, dword [edi + 0x2a3e8]
mov esi, dword [esp + 0x18]
mov dword [edi + 0x2a3f0], eax
jmp case.0x10157c8b.30766
mov edx, dword [esp + 0x10]
cmp edx, 3
jne 0x10158053
lea esi, [edi + 0x24f5c]
mov dword [esp + 8], edx
nop dword [eax]
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10158030
mov esi, dword [esp + 0x18]
mov eax, dword [edi + 0x24f60]
jmp 0x1015807a
cmp edx, 1
jne 0x10158084
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
call fcn.1026a620
mov dword [edi + 0x24f64], eax
mov dword [edi + 0x24f60], eax
mov dword [edi + 0x24f5c], eax
mov dword [edi + 0x24f68], eax
mov edx, dword [esp + 0x10]
cmp esi, 0x100
ja 0x10158440
je case.0x1015b332.61441
lea eax, [esi - 1]
cmp eax, 0x2d
ja case.0x1015b332.61444
movzx eax, byte [eax + 0x1015c1b0]
jmp dword [eax*4 + 0x1015c164]
cmp edx, 4
jne case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x48], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
mov word [edi + 0x16], ax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
mov word [edi + 0x14], ax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
add word [edi + 0x16], ax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
test eax, eax
je case.0x1015b332.61444
mov dword [edi + 0x194], eax
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je case.0x1015b332.61444
cmp edx, 1
jne case.0x1015b332.61444
cmp dword [esp + 0x1c], 3
jne case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [edi + 0x548ec], eax
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [edi + esi*4 + 0x24f24], eax
cmp esi, 0xf
jne case.0x1015b332.61444
mov eax, dword [edi + 0x24f60]
mov dword [edi + 0x24f68], eax
jmp case.0x1015b332.61444
cmp dword [esp + 0x1c], 3
jne case.0x1015b332.61444
cmp edx, 1
jne case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x102c7cf8]
cvtpd2ps xmm0, xmm0
movss dword [edi + esi*8 + 0x24f6c], xmm0
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, 0x100
cmp ax, cx
ja case.0x1015b332.61444
xor ecx, ecx
cmp cx, ax
jae case.0x1015b332.61444
mov esi, eax
mov dword [esp + 8], eax
mov ecx, edi
call fcn.1013c960
mov ecx, 0x100
movzx eax, ax
cmp ax, cx
mov ecx, edi
jae 0x1015824e
mov esi, eax
call fcn.1013c960
movzx ecx, ax
lea eax, [esi + 0x2939]
add eax, eax
add esi, esi
mov dword [edi + eax*8], ecx
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [edi + esi*8 + 0x29398], eax
mov dword [edi + esi*8 + 0x2939c], 0x100
mov dword [edi + esi*8 + 0x29394], 0x100
mov esi, dword [esp + 8]
jmp 0x10158253
call fcn.10135240
sub esi, 1
mov dword [esp + 8], esi
jne 0x101581f4
jmp case.0x1015b332.61444
cmp dword [esp + 0x1c], 3
jne case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2a8d8], xmm0
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je 0x101582b3
cmp edx, 1
jne 0x101582b3
cmp dword [esp + 0x1c], 3
jne 0x101582b3
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [edi + esi*4 + 0x547b0], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [edi + esi*4 + 0x20ec8], eax
mov eax, dword [edi + 0x20f3c]
mov dword [edi + 0x20f44], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + esi*4 + 0x24f64], xmm0
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, 0x100
cmp ax, cx
ja case.0x1015b332.61444
xor ecx, ecx
cmp cx, ax
jae case.0x1015b332.61444
mov esi, eax
mov dword [esp + 8], eax
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov ecx, 0x100
cmp ax, cx
jae 0x10158384
mov ecx, edi
mov esi, eax
call fcn.1013c960
movzx ecx, ax
lea eax, [esi + 0x2939]
add eax, eax
mov dword [edi + eax*8], ecx
mov ecx, edi
call fcn.1013c960
add esi, esi
movzx eax, ax
mov ecx, edi
mov dword [edi + esi*8 + 0x2939c], eax
mov dword [edi + esi*8 + 0x29394], eax
call fcn.1013c960
movzx eax, ax
mov dword [edi + esi*8 + 0x29398], eax
mov esi, dword [esp + 8]
jmp 0x10158395
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 6
mov eax, dword [ecx]
call dword [eax + 0xc]
sub esi, 1
mov dword [esp + 8], esi
jne 0x10158328
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je case.0x1015b332.61444
cmp edx, 1
jne case.0x1015b332.61444
cmp dword [esp + 0x1c], 3
jne case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx eax, ax
mov dword [edi + 0x548e8], eax
jmp case.0x1015b332.61444
cmp dword [esp + 0x1c], 7
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, 0xff
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, 0xd8
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [esp + 0x10]
sub eax, 2
mov dword [edi + 0x54818], eax
sbb edx, 0
mov dword [edi + 0x2ac28], esi
mov dword [edi + 0x5481c], edx
jmp case.0x1015b332.61444
cmp esi, 0x201
ja 0x10158c1f
je case.0x1015b332.61447
lea eax, [esi - 0x101]
cmp eax, 0x8f
ja case.0x1015b332.61444
movzx eax, byte [eax + 0x1015c24c]
jmp dword [eax*4 + 0x1015c1e0]
cmp dword [esp + 0x48], 0
je case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
movsx eax, word [edi + 0x54860]
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, edi
mov dword [esp + 0xc], eax
call fcn.1013c960
mov ecx, dword [edi + 0x54800]
push 1
mov word [edi + 0x54860], ax
push 0
mov eax, dword [ecx]
push 2
call dword [eax + 0xc]
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x2c]
push 1
mov edi, dword [esi]
call fcn.10135240
sub eax, 8
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [esp + 0xc]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10157770
mov eax, dword [esp + 0x14]
mov word [edi + 0x54860], ax
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a904], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
imul eax, dword [esp + 0x20], 0x4208
mov dword [eax + edi + 0x5a908], ecx
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea eax, [edi + 0x2a9a4]
push 1
push 0x200
push eax
mov edx, dword [ecx]
call dword [edx + 8]
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea edx, [edi + 0xc4]
push 0x40
push edx
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea eax, [edi + 0x104]
push 0x40
push eax
mov edx, dword [ecx]
call dword [edx + 0x1c]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a92c], eax
jmp case.0x1015b332.61444
cmp dword [esp + 0x1c], 4
jne case.0x1015b332.61444
mov dword [edi + 0x83dac], 0x101468b0
mov dword [edi + 0x548b8], 0x2008
lea eax, [edx - 2]
cmp eax, 0x3ffd
ja case.0x1015b332.61447
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [esp + 0x10]
mov ecx, edi
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x20], 0x4208
push 4
push esi
mov dword [esp + 0x10], eax
call fcn.10168cb0
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], 0
mov dword [ecx + edi + 0x5a930], eax
mov dword [ecx + edi + 0x5a934], esi
test esi, esi
je 0x1015863d
mov ecx, edi
call fcn.10135240
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 8]
mov eax, dword [eax + edi + 0x5a930]
mov dword [eax + edx*4], ecx
inc edx
mov dword [esp + 0x24], edx
cmp edx, esi
jb 0x10158616
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0xc]
push 0
cdq
mov esi, dword [ecx]
push edx
push eax
call dword [esi + 0xc]
mov ecx, edi
call fcn.10135240
mov edx, dword [ebp + 8]
add edx, eax
imul eax, dword [esp + 0x20], 0x4208
mov dword [esp + 0xc], eax
cmp dword [eax + edi + 0x5a900], 0
mov dword [eax + edi + 0x5a90c], edx
jne case.0x1015b332.61444
test edx, edx
jle case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, edx
push 0
cdq
push edx
mov esi, dword [ecx]
push eax
call dword [esi + 0xc]
push 1
lea eax, [esp + 0x2f4]
mov ecx, edi
push eax
call fcn.1013ec00
test eax, eax
je case.0x1015b332.61444
cmp dword [esp + 0x304], 0
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2fc]
mov ecx, dword [esp + 0x2f8]
mov dword [esi + edi + 0x5a900], eax
mov eax, dword [esp + 0x300]
mov dword [esi + edi + 0x5a904], 6
mov dword [esi + edi + 0x5a8f8], edx
mov dword [esi + edi + 0x5a8fc], ecx
mov dword [esp + 0x30], eax
mov dword [esi + edi + 0x5a914], eax
jne 0x10158718
test al, 1
jne 0x10158718
imul eax, edx
mov dword [esi + edi + 0x5a8f8], eax
mov eax, dword [esp + 0x30]
shl ecx, 2
xor edx, edx
cmp dword [esi + edi + 0x5a8f8], ecx
not eax
setg dl
test eax, edx
je 0x10158750
mov eax, dword [esi + edi + 0x5a8f8]
cdq
sub eax, edx
sar eax, 1
mov dword [esi + edi + 0x5a8f8], eax
mov eax, dword [esp + 0x2f8]
add eax, eax
mov dword [esi + edi + 0x5a8fc], eax
mov eax, dword [esp + 0xc]
mov ecx, edi
movsx esi, word [edi + 0x54860]
mov eax, dword [eax + edi + 0x5a90c]
add eax, 0xc
push eax
call fcn.1015c470
mov word [edi + 0x54860], si
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
and eax, 7
movsx ecx, byte [eax + str.50132467]
sub ecx, 0x30
imul eax, dword [esp + 0x20], 0x4208
mov dword [eax + edi + 0x5a910], ecx
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
mov ecx, eax
and ecx, 7
imul eax, dword [esp + 0x20], 0x4208
mov dword [eax + edi + 0x5a914], ecx
jmp case.0x1015b332.61444
lea eax, [edx - 2]
cmp eax, 0x3ffd
ja case.0x1015b332.61448
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [esp + 0x10]
mov ecx, edi
mov dword [esp + 0xc], eax
imul eax, dword [esp + 0x20], 0x4208
push 4
push esi
mov dword [esp + 0x10], eax
call fcn.10168cb0
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], 0
mov dword [ecx + edi + 0x5a938], eax
mov dword [ecx + edi + 0x5a93c], esi
test esi, esi
je 0x10158842
nop dword [eax]
mov ecx, edi
call fcn.10135240
mov edx, dword [esp + 8]
mov ecx, dword [edx + edi + 0x5a938]
mov edx, dword [esp + 0x24]
mov dword [ecx + edx*4], eax
inc edx
mov dword [esp + 0x24], edx
cmp edx, esi
jb 0x10158820
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0xc]
push 0
cdq
mov esi, dword [ecx]
push edx
push eax
call dword [esi + 0xc]
mov ecx, edi
call fcn.10135240
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a918], eax
jmp case.0x1015b332.61444
cmp dword [esp + 0x48], 0
je 0x10158897
cmp esi, 0xb
jne 0x10158897
cmp dword [esp + 0x1c], 3
jne 0x10158897
mov ecx, edi
call fcn.1013c960
mov word [edi + 0xd30], ax
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea esi, [edi + 0x144]
push 0x40
push esi
mov eax, dword [ecx]
call dword [eax + 0x1c]
push 5
push str.Adobe
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015892d
push 5
push str.dcraw
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015892d
push 5
push str.UFRaw
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015892d
push 6
push str.Bibble
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015892d
mov eax, str.Digital_Photo_Professional
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10158920
test cl, cl
je 0x1015891c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10158920
add esi, 2
add eax, 2
test cl, cl
jne 0x10158900
xor eax, eax
jmp 0x10158925
sbb eax, eax
or eax, 1
test eax, eax
jne case.0x1015b332.61444
mov dword [edi + 0x184], 0
jmp case.0x1015b332.61444
push 0
mov ecx, edi
call fcn.1015e220
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea eax, [edi + 0x2aba4]
push 1
push 0x40
push eax
mov edx, dword [ecx]
call dword [edx + 8]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a928], eax
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a91c], eax
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a920], eax
jmp case.0x1015b332.61444
cmp edx, 1
jbe 0x101589da
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x34], edx
jmp 0x101589e9
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x34], 0
mov esi, dword [esp + 0x10]
mov ecx, eax
imul eax, dword [esp + 0x20], 0x4208
mov dword [eax + edi + 0x5a90c], ecx
cmp esi, 1
jne 0x10158a1e
mov dword [eax + edi + 0x5a920], 0
mov dword [eax + edi + 0x5a91c], 0
jmp case.0x1015b332.61444
cmp esi, 4
jne case.0x1015b332.61444
mov dword [edi + 0x83dac], 0x10144360
mov dword [edi + 0x184], 5
jmp case.0x1015b332.61444
cmp edx, 1
jbe 0x10158a58
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x34], edx
jmp 0x10158a67
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x34], 0
mov ecx, eax
imul eax, dword [esp + 0x20], 0x4208
mov dword [eax + edi + 0x5a918], ecx
jmp case.0x1015b332.61444
mov ecx, 0x102b6064
lea eax, [edi + 0x104]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10158aa8
test dl, dl
je 0x10158aa4
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10158aa8
add eax, 2
add ecx, 2
test dl, dl
jne 0x10158a88
xor eax, eax
jmp 0x10158aad
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10158aff
mov esi, dword [esp + 0x20]
imul eax, esi, 0x4208
cmp dword [eax + edi + 0x5a8f8], 0xf20
jne 0x10158aff
mov ecx, edi
mov dword [edi + 0x83dac], 0x1014a500
call fcn.10135240
add eax, dword [ebp + 8]
inc esi
mov dword [edi + 0x54880], eax
mov dword [edi + 0x54884], 0
mov dword [esp + 0x20], esi
cmp esi, 0xa
jb case.0x1015b332.61444
jmp 0x1015c081
push 0xa
lea eax, [edi + 0xc4]
push str.Hasselblad
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x10158b4f
cmp dword [edi + 0x548c0], eax
je 0x10158b4f
mov esi, dword [edi + 0x54800]
mov ecx, esi
push eax
mov edi, dword [esi]
mov eax, dword [edi + 0x10]
call eax
add eax, 4
mov ecx, esi
adc edx, 0
push edx
push eax
call dword [edi + 0xc]
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov esi, dword [eax + 0x54800]
jmp 0x1015b2ea
mov eax, dword [esp + 0x10]
cmp eax, 0x3e8
jbe 0x10158b61
mov eax, 0x3e8
jmp 0x10158b65
test eax, eax
je 0x10158bd1
mov ecx, dword [edi + 0x54800]
dec eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x2c]
push 0
mov dword [esp + 0x10], eax
mov edi, dword [esi]
call fcn.10135240
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10157770
test eax, eax
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
push eax
mov eax, dword [esp + 0x10]
add eax, 4
mov esi, dword [ecx]
cdq
push edx
push eax
call dword [esi + 0xc]
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x10158b65
dec eax
mov dword [esp + 0x68], eax
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a924], eax
jmp case.0x1015b332.61444
mov eax, dword [str.Sarnoff]
mov dword [edi + 0xc4], eax
mov eax, dword [0x102b669c]
mov dword [edi + 0xc8], eax
mov dword [edi + 0x24f58], 0xfff
jmp case.0x1015b332.61444
cmp esi, 0xc517
ja 0x10159b85
cmp esi, 0xc516
jae 0x10159ac2
cmp esi, 0x8769
ja 0x1015944d
je 0x1015941c
cmp esi, 0x74c8
ja 0x101590b9
je 0x10159071
cmp esi, 0x7221
ja 0x10158e97
je 0x10158e87
cmp esi, 0x7010
ja 0x10158e56
je 0x10158dc9
cmp esi, 0x202
je case.0x1015b332.61448
cmp esi, 0x2bc
je 0x10158d64
cmp esi, 0x2009
jne case.0x1015b332.61444
mov eax, dword [edi + 0x548e8]
cmp eax, 4
je 0x10158cb7
cmp eax, 5
jne case.0x1015b332.61444
movaps xmm0, xmmword [0x102c7ec0]
cmp edx, 8
mov eax, edx
mov word [edi + 0xd32], dx
mov ecx, 8
cmova eax, ecx
xor esi, esi
mov dword [esp + 0x14], eax
movups xmmword [esp + 0x190], xmm0
movaps xmm0, xmmword [0x102c7ee0]
movups xmmword [esp + 0x1a0], xmm0
test eax, eax
jle case.0x1015b332.61444
nop word [eax + eax]
movd xmm1, dword [edi + 0x548ec]
movss xmm2, dword [0x102c7e5c]
movsd xmm0, qword [0x103f9530]
cvtdq2ps xmm1, xmm1
subss xmm2, xmm1
cvtps2pd xmm1, xmm2
call fcn.1027e7d0
cvtsd2ss xmm0, xmm0
mov ecx, edi
movss dword [esp + 0xc], xmm0
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + esi*4 + 0x190]
inc esi
divss xmm0, dword [esp + 0xc]
movss dword [edi + eax*4 + 0xd34], xmm0
cmp esi, dword [esp + 0x14]
jl 0x10158d00
jmp case.0x1015b332.61444
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x10158d80
cmp eax, 2
je 0x10158d80
cmp eax, 6
je 0x10158d80
cmp eax, 7
jne case.0x1015b332.61444
lea eax, [edx - 2]
cmp eax, 0x4dd1dd
ja case.0x1015b332.61444
lea eax, [edx + 1]
mov ecx, edi
push eax
mov dword [edi + 0x1e8], eax
call fcn.10168c80
mov ecx, dword [edi + 0x54800]
mov edx, eax
mov esi, dword [esp + 0x10]
push 1
mov dword [edi + 0x1ec], edx
mov eax, dword [ecx]
push esi
push edx
call dword [eax + 8]
mov eax, dword [edi + 0x1ec]
mov byte [esi + eax], 0
jmp case.0x1015b332.61444
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
shr eax, 2
and eax, 0xfff
mov dword [esp + esi*4 + 0xd4], eax
inc esi
cmp esi, 4
jl 0x10158dd0
xor ecx, ecx
mov dword [esp + 8], ecx
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esp + ecx*4 + 0xd0]
mov edx, dword [esp + ecx*4 + 0xd4]
inc eax
cmp eax, edx
ja 0x10158e47
mov esi, 1
sub edx, eax
shl si, cl
lea ecx, [eax + 0x79c]
lea ecx, [edi + ecx*2]
inc edx
nop word [eax + eax]
mov ax, word [ecx - 2]
lea ecx, [ecx + 2]
add ax, si
mov word [ecx - 2], ax
sub edx, 1
jne 0x10158e30
mov ecx, dword [esp + 8]
inc ecx
mov dword [esp + 8], ecx
cmp ecx, 5
jl 0x10158e00
jmp case.0x1015b332.61444
sub esi, 0x7200
je 0x10158e77
sub esi, 1
jne case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x58], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x50], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x5c], eax
jmp case.0x1015b332.61444
cmp esi, 0x7310
ja 0x10158f6c
je 0x10158f0f
cmp esi, 0x7250
je 0x10158eef
cmp esi, 0x7303
jne case.0x1015b332.61444
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.1013c960
movzx eax, ax
movd xmm0, eax
xor eax, eax
cmp esi, 2
cvtdq2ps xmm0, xmm0
setl al
xor eax, esi
inc esi
movss dword [edi + eax*4 + 0x24ff4], xmm0
cmp esi, 4
jl 0x10158ec0
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push eax
mov ecx, edi
call fcn.1014bf00
xor eax, eax
mov word [edi + 0x12], ax
jmp case.0x1015b332.61444
xor esi, esi
mov ecx, edi
call fcn.1013c960
movzx ecx, ax
mov eax, esi
sar eax, 1
xor eax, esi
inc esi
mov dword [edi + eax*4 + 0x20f38], ecx
cmp esi, 4
jl 0x10158f11
mov ecx, dword [edi + 0x20f44]
lea edx, [edi + 0x20f38]
mov esi, edx
mov edi, 3
cmp ecx, dword [esi]
cmova ecx, dword [esi]
lea esi, [esi + 4]
sub edi, 1
jne 0x10158f41
mov edi, dword [esp + 0x2c]
mov eax, 4
sub dword [edx], ecx
lea edx, [edx + 4]
sub eax, 1
jne 0x10158f57
mov dword [edi + 0x24f50], ecx
jmp case.0x1015b332.61444
cmp esi, 0x7313
je 0x10158fc8
cmp esi, 0x74c7
jne case.0x1015b332.61444
cmp edx, 2
jne case.0x1015b332.61444
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov word [edi + 0xc0a], ax
call fcn.10135240
mov word [edi + 0xc0c], ax
jmp case.0x1015b332.61444
lea esi, [edi + 0x24ff4]
mov dword [esp + 8], 4
mov ecx, edi
call fcn.1013c960
sub dword [esp + 8], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10158fd6
movss xmm0, dword [edi + 0x24ff8]
movss xmm1, dword [0x102a59cc]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10159027
movss xmm0, dword [edi + 0x24ffc]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10159027
mov eax, 2
jmp 0x10159029
xor eax, eax
movss xmm1, dword [edi + eax*4 + 0x24ff8]
addss xmm1, dword [edi + eax*4 + 0x24ff4]
movss dword [edi + eax*4 + 0x24ff4], xmm1
subss xmm1, dword [edi + eax*4 + 0x24ff8]
movss xmm0, dword [edi + eax*4 + 0x24ff4]
subss xmm0, xmm1
movss dword [edi + eax*4 + 0x24ff8], xmm1
movss dword [edi + eax*4 + 0x24ff4], xmm0
jmp case.0x1015b332.61444
cmp edx, 2
jne case.0x1015b332.61444
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov word [edi + 0xc0e], ax
call fcn.10135240
mov word [edi + 0xc10], ax
jmp case.0x1015b332.61444
cmp esi, 0x829a
ja 0x10159266
je 0x10159233
cmp esi, 0x828d
ja 0x101591c1
je 0x10159190
cmp esi, 0x7800
je 0x101590f0
cmp esi, 0x827d
jmp 0x1015bc63
lea eax, [edi + 0x25044]
mov dword [esp + 0x3c], 3
mov dword [esp + 0x24], eax
xorps xmm0, xmm0
mov dword [esp + 0x28], 3
movss dword [esp + 8], xmm0
mov esi, eax
mov ecx, edi
call fcn.1013c960
movss xmm1, dword [esp + 8]
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [esp + 0x28], 1
movss dword [esp + 8], xmm1
jne 0x10159115
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x102c7d10]
jbe 0x10159175
mov eax, dword [esp + 0x24]
mov ecx, 3
nop dword [eax + eax]
movss xmm0, dword [eax]
lea eax, [eax + 4]
divss xmm0, xmm1
movss dword [eax - 4], xmm0
sub ecx, 1
jne 0x10159160
mov eax, dword [esp + 0x24]
add eax, 0x10
sub dword [esp + 0x3c], 1
mov dword [esp + 0x24], eax
jne 0x10159102
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
cmp ax, 6
jne case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
cmp ax, 6
jne case.0x1015b332.61444
mov dword [edi + 0x194], 9
jmp case.0x1015b332.61444
sub esi, 0x828e
je 0x10159203
sub esi, 2
jne case.0x1015b332.61444
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x2c]
push 0
mov edi, dword [esi]
call fcn.10135240
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10155840
jmp case.0x1015b332.61444
cmp dword [edi + 0x194], 9
jne 0x1015bc82
xor esi, esi
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
and al, 3
mov byte [edi + esi + 0x198], al
inc esi
cmp esi, 0x24
jl 0x10159212
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
imul eax, dword [esp + 0x20], 0x4208
fstp dword [esp + 0xc]
movss xmm0, dword [esp + 0xc]
movss dword [edi + 0x2a8dc], xmm0
movss dword [eax + edi + 0x5a940], xmm0
jmp case.0x1015b332.61444
cmp esi, 0x8602
ja 0x101592e0
je 0x1015929f
cmp esi, 0x829d
je 0x10159289
cmp esi, 0x85ff
je 0x10159306
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2a8e0]
jmp case.0x1015b332.61444
xor esi, esi
mov ecx, edi
call fcn.1013c960
movzx eax, ax
test eax, eax
je 0x101592d5
movsd xmm1, qword [0x102c7e20]
movd xmm0, eax
mov eax, esi
cvtdq2pd xmm0, xmm0
xor eax, 1
divsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [edi + eax*4 + 0x24ff4], xmm0
inc esi
cmp esi, 4
jl 0x101592a1
jmp case.0x1015b332.61444
sub esi, 0x8603
je 0x10159321
sub esi, 3
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push eax
mov ecx, edi
call fcn.1015d8b0
mov eax, dword [str.Leaf]
mov dword [edi + 0xc4], eax
mov al, byte [0x102b66b0]
mov byte [edi + 0xc8], al
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea esi, [edi + 0x144]
push 7
push 1
push esi
mov eax, dword [ecx]
call dword [eax + 8]
push 6
push str.MATRIX
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne case.0x1015b332.61444
mov dword [edi + 0x54834], eax
mov dword [esp + 0x24], eax
lea eax, [edi + 0x25074]
mov dword [edi + 0x190], 4
mov dword [esp + 0x28], eax
nop dword [eax]
xor esi, esi
mov ecx, dword [edi + 0x54800]
mov eax, esi
xor eax, 1
add eax, 0x941d
add eax, dword [esp + 0x24]
mov edx, dword [ecx]
lea eax, [edi + eax*4]
push eax
push 0x103f1514
call dword [edx + 0x20]
inc esi
cmp esi, 4
jl 0x10159372
cmp dword [edi + 0xe94], 0
mov edx, dword [esp + 0x28]
je 0x101593fc
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 0x101593b1
movsd xmm2, qword [0x103f94d8]
mov eax, edx
maxsd xmm2, xmm1
mov ecx, 4
nop word [eax + eax]
movss xmm0, dword [eax]
lea eax, [eax + 4]
cvtps2pd xmm0, xmm0
divsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [eax - 4], xmm0
sub ecx, 1
jne 0x101593e0
mov eax, dword [esp + 0x24]
add edx, 0x10
add eax, 4
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
cmp eax, 0xc
jl 0x10159370
jmp case.0x1015b332.61444
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x2c]
push 0
mov edi, dword [esi]
call fcn.10135240
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10154940
jmp case.0x1015b332.61444
cmp esi, 0x9400
ja 0x1015962f
je 0x101595cf
cmp esi, 0x9205
ja 0x10159528
je 0x101594e4
cmp esi, 0x8773
je case.0x10159cf5.50831
cmp esi, 0x8825
je 0x1015949f
cmp esi, 0x9102
jne case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov dword [edi + 0x54870], eax
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov ecx, dword [edi + 0x54800]
mov esi, eax
add esi, dword [ebp + 8]
push 0
push 0
mov edx, dword [ecx]
push esi
call dword [edx + 0xc]
push dword [ebp + 8]
mov ecx, edi
call fcn.1015d460
mov ecx, dword [edi + 0x54800]
push 0
push 0
push esi
mov eax, dword [ecx]
call dword [eax + 0xc]
push dword [ebp + 8]
mov ecx, edi
call fcn.1015d5f0
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
sub esp, 8
mulsd xmm0, qword [0x103f9488]
cvtpd2ps xmm0, xmm0
movss dword [esp + 4], xmm0
mov dword [esp], 0x40000000
call fcn.10160460
fstp dword [edi + 0x200]
add esp, 8
jmp case.0x1015b332.61444
sub esi, 0x920a
je 0x101595b9
sub esi, 7
je 0x101595a3
sub esi, 7
jne case.0x1015b332.61444
mov dword [edi + 0x54834], esi
lea esi, [edi + 0x25074]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], 3
nop word [eax + eax]
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp st(0)
mov dword [esp + 8], 3
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [esi]
add esi, 4
sub dword [esp + 8], 1
jne 0x10159575
mov esi, dword [esp + 0x24]
add esi, 0x10
sub dword [esp + 0x28], 1
mov dword [esp + 0x24], esi
jne 0x10159560
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
mov dword [edi + 0x2a8f0], eax
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2a8e4]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
movss xmm0, dword [edi + 0x2abec]
comiss xmm0, dword [0x102c7eb4]
fstp dword [esp + 0xc]
movss xmm1, dword [esp + 0xc]
movss dword [edi + 0x2ac04], xmm1
jbe case.0x1015b332.61444
cmp dword [edi + 0x54850], 0x34353933
jne case.0x1015b332.61444
cmp dword [edi + 0x54854], 0x44
jne case.0x1015b332.61444
addss xmm0, xmm1
movss dword [edi + 0x2abec], xmm0
jmp case.0x1015b332.61444
cmp esi, 0xa010
ja 0x1015972d
je 0x101596c5
add esi, 0xffff6bff
cmp esi, 4
ja case.0x1015b332.61444
jmp dword [esi*4 + 0x1015c2dc]
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2ac08]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2ac0c]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2ac10]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2ac14]
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2ac18]
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov dword [edi + 0x54878], eax
imul eax, dword [esp + 0x20], 0x4208
mov dword [edi + 0x5487c], 0
mov eax, dword [eax + edi + 0x5a904]
sub eax, 0x8002
je 0x1015971e
sub eax, 2
je 0x1015970f
sub eax, 1
jne case.0x1015b332.61444
mov dword [edi + 0x83dac], 0x1014b420
jmp case.0x1015b332.61444
mov dword [edi + 0x83dac], 0x1014b280
jmp case.0x1015b332.61444
mov dword [edi + 0x83dac], 0x1014ab50
jmp case.0x1015b332.61444
cmp esi, 0xa431
ja 0x1015975a
je case.0x10159cf5.50735
cmp esi, 0xa405
jne case.0x1015b332.61444
mov ecx, edi
call fcn.1013c960
mov word [edi + 0x404], ax
jmp case.0x1015b332.61444
cmp esi, 0xb4c2
ja 0x10159849
je 0x1015987d
add esi, 0xffff5bce
cmp esi, 3
ja case.0x1015b332.61444
jmp dword [esi*4 + 0x1015c2f0]
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1013ca50
fstp dword [edi + 0x1f0]
push esi
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x1f4]
push esi
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x1f8]
push esi
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x1fc]
jmp case.0x1015b332.61444
push dword [edi + 0x54800]
mov eax, 0x80
cmp edx, eax
cmovb eax, edx
push eax
lea eax, [edi + 0x304]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x1015b332.61444
push dword [edi + 0x54800]
mov eax, 0x80
cmp edx, eax
cmovb eax, edx
push eax
lea eax, [edi + 0x204]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x1015b332.61444
push dword [edi + 0x54800]
mov eax, 0x80
lea esi, [edi + 0x284]
cmp edx, eax
cmovb eax, edx
push eax
push esi
call fcn.10160c50
push 4
push 0x102b6338
push esi
call fcn.1027dd20
add esp, 0x18
test eax, eax
jne case.0x1015b332.61444
mov byte [esi], al
jmp case.0x1015b332.61444
sub esi, 0xb4c3
je 0x10159a79
sub esi, 4
jne case.0x1015b332.61444
mov esi, dword [esp + 0x64]
test esi, esi
je case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x26
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x10159881
mov esi, dword [esp + 0x64]
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x28
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov word [edi + 0x12], ax
call fcn.10135240
mov ecx, edi
mov word [edi + 0x10], ax
call fcn.10135240
and eax, 7
mov ecx, edi
mov word [edi + 0x1a], ax
call fcn.10135240
movzx ecx, word [edi + 0x12]
and eax, 7
sub cx, ax
sub cx, word [edi + 0x1a]
mov word [edi + 0x16], cx
mov ecx, edi
call fcn.10135240
and eax, 7
mov ecx, edi
mov word [edi + 0x18], ax
call fcn.10135240
movzx ecx, word [edi + 0x10]
and eax, 7
sub cx, word [edi + 0x18]
sub cx, ax
movzx eax, word [edi + 0x12]
mov word [edi + 0x14], cx
mov ecx, 0x1c5e
cmp ax, cx
jne 0x1015993d
cmp esi, 0xdf76880
jne 0x10159928
mov eax, 7
mov dword [edi + 0x14], 0x1c301524
mov word [edi + 0x1a], ax
mov dword [edi + 0x194], 0
jmp 0x1015993d
cmp ax, cx
jne 0x1015993d
mov eax, 7
mov dword [edi + 0x14], 0x1c4c1544
mov word [edi + 0x1a], ax
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x34
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [edi + 0x24ff4]
mov dword [esp + 8], 3
nop dword [eax]
mov ecx, edi
call fcn.10135240
sub dword [esp + 8], 1
lea esi, [esi + 4]
mov dword [esp + 0xc], eax
movss xmm0, dword [esp + 0xc]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10159960
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x72
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.1013c960
movzx eax, ax
shr eax, 7
imul eax, eax, 0x5a
mov dword [edi + 0x30], eax
movzx ecx, word [edi + 0x14]
movzx edx, word [edi + 0x16]
imul edx, ecx
lea ecx, [edx + edx*2]
add ecx, ecx
cmp ecx, dword [esp + 0x64]
jne 0x10159a0c
cdq
mov ecx, 0xb4
idiv ecx
cmp edx, 0x5a
jne 0x101599e6
movzx eax, word [edi + 0x14]
add word [edi + 0x16], ax
mov ax, word [edi + 0x16]
sub ax, word [edi + 0x14]
sub word [edi + 0x16], ax
mov word [edi + 0x14], ax
movzx eax, word [edi + 0x16]
mov word [edi + 0x12], ax
movzx eax, word [edi + 0x14]
mov word [edi + 0x10], ax
xor eax, eax
mov dword [edi + 0x30], 0
mov dword [edi + 0x194], 0
mov dword [edi + 0x18], eax
movzx eax, word [edi + 0x14]
movzx ecx, word [edi + 0x16]
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 + 0x104]
push str.Ixpress__d_Mp
push eax
call fcn.10007a60
add esp, 0xc
mov dword [edi + 0x83dac], 0x101445e0
cmp dword [edi + 0x194], 0
je 0x10159a6a
test byte [edi + 0x1a], 1
je 0x10159a60
mov dword [edi + 0x194], 0x61616161
mov dword [edi + 0x83dac], fcn.10144c40
mov dword [edi + 0x24f58], 0xffff
jmp case.0x1015b332.61444
mov eax, dword [str.Imacon]
mov dword [edi + 0xc4], eax
mov ax, word [0x102b66b8]
mov word [edi + 0xc8], ax
mov al, byte [0x102b66ba]
mov byte [edi + 0xca], al
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [esp + 0x10]
mov dword [edi + 0x54880], eax
mov dword [edi + 0x54884], edx
mov dword [esp + 0x64], esi
jmp case.0x1015b332.61444
lea eax, [edx - 1]
cmp eax, 0x270fff
ja case.0x1015b332.61444
push edx
mov ecx, edi
call fcn.10168c80
mov edx, eax
mov dword [esp + 8], edx
test edx, edx
je case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov esi, dword [esp + 0x10]
push esi
push 1
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 8]
call eax
cmp eax, esi
jne 0x1015c098
mov ecx, dword [esp + 8]
lea eax, [ecx + esi]
mov byte [eax - 1], 0
mov dword [esp + 0xc], eax
lea esi, [ecx - 1]
test esi, esi
je 0x10159b78
nop dword [eax]
cmp esi, eax
jae 0x10159b74
push 8
inc esi
push str.Neutral
push esi
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x10159b5f
lea eax, [edi + 0x24ffc]
push eax
lea eax, [edi + 0x24ff8]
push eax
lea eax, [edi + 0x24ff4]
push eax
lea eax, [esi + 8]
push 0x102b66d8
push eax
call fcn.1001d040
add esp, 0x14
push 0xa
push esi
call fcn.1026e200
mov esi, eax
add esp, 8
mov eax, dword [esp + 0xc]
test esi, esi
jne 0x10159b20
mov ecx, dword [esp + 8]
push ecx
mov ecx, edi
call fcn.10168d30
jmp case.0x1015b332.61444
cmp esi, 0xc612
ja 0x10159cc7
je 0x10159c7d
sub esi, 0xc51a
je 0x10159c43
sub esi, 1
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
movsx eax, word [edi + 0x54860]
mov dword [esp + 0x14], eax
mov dword [edi + 0x548c0], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, edi
mov eax, dword [edi + 0x54858]
mov dword [esp + 0xc], eax
call fcn.1013c960
mov ecx, edi
mov word [edi + 0x54860], ax
call fcn.1013c960
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x2c]
push 0
mov edi, dword [esi]
call fcn.10135240
add eax, dword [esp + 0xc]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [esp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10157770
mov eax, dword [esp + 0xc]
mov dword [edi + 0x54858], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x24f58], 0xffff
mov word [edi + 0x54860], ax
jmp case.0x1015b332.61444
cmp byte [edi + 0xc4], 0
jne case.0x1015b332.61444
movq xmm0, qword [str.Hasselblad]
movq qword [edi + 0xc4], xmm0
mov ax, word [0x102b6144]
mov word [edi + 0xcc], ax
mov al, byte [0x102b6146]
mov byte [edi + 0xce], al
jmp case.0x1015b332.61444
mov esi, 4
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [edi + 0x188]
shl ecx, 8
add eax, ecx
mov dword [edi + 0x188], eax
sub esi, 1
jne 0x10159c82
cmp byte [edi + 0xc4], 0
jne 0x10159cb8
mov dword [edi + 0xc4], 0x474e44
mov dword [edi + 0x184], 1
jmp case.0x1015b332.61444
cmp esi, 0xc715
ja 0x1015b258
cmp esi, 0xc714
jae 0x1015b1bc
lea eax, [esi - 0xc614]
cmp eax, 0x7b
ja case.0x1015b332.61444
movzx eax, byte [eax + 0x1015c370]
jmp dword [eax*4 + 0x1015c300]
push dword [edi + 0x54800]
mov eax, 0x40
cmp edx, eax
cmovb eax, edx
push eax
lea eax, [edi + 0xd74]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [esp + 0x10]
mov dword [edi + 0x54810], eax
mov dword [edi + 0x54814], edx
mov dword [edi + 0x251c4], esi
jmp case.0x1015b332.61444
push dword [edi + 0x54800]
mov eax, 0x40
lea ecx, [edi + 0x25140]
cmp edx, eax
cmovb eax, edx
push eax
push ecx
mov dword [esp + 0x18], eax
call fcn.10160c50
lea esi, [edi + 0x104]
mov byte [edi + 0x2517f], 0
add esp, 0xc
cmp byte [esi], 0
jne case.0x1015b332.61444
push dword [esp + 0xc]
lea eax, [edi + 0x25140]
push eax
lea eax, [edi + 0xc4]
push eax
call fcn.1027e4a0
lea eax, [edi + 0xc4]
push 0x20
push eax
call fcn.1026e200
mov edx, eax
add esp, 0x14
test edx, edx
je case.0x1015b332.61444
lea ecx, [edx + 1]
sub esi, ecx
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x10159dc0
mov byte [edx], al
jmp case.0x1015b332.61444
cmp dword [edi + 0x194], 9
je case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
cmp edx, 4
mov eax, 4
cmova edx, eax
push edx
mov dword [edi + 0x190], edx
mov eax, dword [ecx]
mov dword [esp + 0x6c], edx
lea edx, [esp + 0x50]
push 1
push edx
call dword [eax + 8]
jmp 0x1015bd69
mov ecx, edi
call fcn.1013c960
cmp ax, 2
jne case.0x1015b332.61444
mov eax, 1
mov word [edi + 0x5483e], ax
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
or dword [esi + edi + 0x5aaac], 0x100
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esi + edi + 0x5a950], eax
mov ecx, edi
mov eax, dword [esp + 0x10]
push eax
mov dword [esi + edi + 0x5a954], edx
mov dword [esi + edi + 0x5a958], eax
call fcn.10155550
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
mov ecx, edi
or dword [esi + edi + 0x5aaac], 0x20
call fcn.1013c960
movzx eax, ax
mov ecx, edi
mov dword [edi + 0x20f48], eax
mov dword [esi + edi + 0x5aac0], eax
call fcn.1013c960
movzx eax, ax
mov dword [edi + 0x20f4c], eax
mov dword [esi + edi + 0x5aac4], eax
mov eax, dword [edi + 0x20f4c]
imul eax, dword [edi + 0x20f48]
cmp eax, 0x1000
jbe case.0x1015b332.61444
mov dword [edi + 0x20f4c], 1
mov dword [edi + 0x20f48], 1
mov dword [esi + edi + 0x5aac4], 1
mov dword [esi + edi + 0x5aac0], 1
jmp case.0x1015b332.61444
push dword [edi + 0x54800]
mov eax, 0x40
cmp edx, eax
cmovb eax, edx
push eax
lea eax, [edi + 0x25180]
push eax
call fcn.10160c50
add esp, 0xc
jmp case.0x1015b332.61444
xor esi, esi
xorps xmm0, xmm0
movsd qword [esp + 0x30], xmm0
test edx, edx
je case.0x1015b332.61444
fld qword [esp + 0x30]
fstp qword [esp + 0x70]
nop dword [eax + eax]
cmp esi, 0x10000
jge 0x10159f68
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fadd qword [esp + 0x70]
mov edx, dword [esp + 0x10]
inc esi
fst qword [esp + 0x70]
fstp qword [esp + 0x30]
cmp esi, edx
jb 0x10159f40
test edx, edx
je case.0x1015b332.61444
movsd xmm1, qword [esp + 0x30]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
mov eax, dword [edi + 0x24f50]
addsd xmm0, qword [edx*8 + 0x103f9b80]
divsd xmm1, xmm0
movd xmm0, eax
addsd xmm1, qword [0x103f9488]
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movsd qword [esp + 0x30], xmm1
addsd xmm0, qword [eax*8 + 0x103f9b80]
addsd xmm0, xmm1
call fcn.1026a2d1
imul esi, dword [esp + 0x20], 0x4208
mov dword [edi + 0x24f50], eax
mov eax, dword [esi + edi + 0x5eac8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103f9b80]
addsd xmm0, qword [esp + 0x30]
call fcn.1026a2d1
or dword [esi + edi + 0x5aaac], 0x20
mov dword [esi + edi + 0x5eac8], eax
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
mov ecx, edi
push dword [esp + 0x1c]
or dword [esi + edi + 0x5aaac], 0x40
call fcn.1013ca20
mov dword [edi + 0x24f58], eax
mov dword [esi + edi + 0x5eacc], eax
cmp dword [esi + edi + 0x5a914], 1
jle case.0x1015b332.61444
mov edx, 1
mov dword [esp + 8], edx
cmp dword [edi + 0x190], edx
jle case.0x1015b332.61444
mov esi, dword [esp + 0x10]
cmp edx, 4
jge case.0x1015b332.61444
cmp edx, esi
jae case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
imul ecx, dword [esp + 0x20], 0x1082
mov edx, dword [esp + 8]
add ecx, edx
inc edx
mov dword [esp + 8], edx
mov dword [edi + ecx*4 + 0x5eacc], eax
cmp edx, dword [edi + 0x190]
jl 0x1015a056
jmp case.0x1015b332.61444
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1013ca50
fstp dword [esp + 0xc]
push esi
mov ecx, edi
call fcn.1013ca50
movss xmm0, dword [esp + 0xc]
movss xmm2, dword [0x102c7ca4]
comiss xmm0, xmm2
fstp dword [esp + 0x14]
jbe case.0x1015b332.61444
movss xmm1, dword [esp + 0x14]
comiss xmm1, xmm2
jbe case.0x1015b332.61444
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x102c7d88]
movsd qword [edi + 0x28], xmm0
jbe case.0x1015b332.61444
movsd xmm1, qword [0x102c7d90]
comisd xmm1, xmm0
jbe case.0x1015b332.61444
movsd xmm0, qword [0x103f94d8]
movsd qword [edi + 0x28], xmm0
jmp case.0x1015b332.61444
cmp edx, 2
jne case.0x1015b332.61444
imul eax, dword [esp + 0x20], 0x4208
mov ecx, edi
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0xc], eax
or dword [eax + edi + 0x5aaac], 0x200
call fcn.1013ca50
mov ecx, dword [esp + 8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0xc], eax
push esi
fldcw word [esp + 0x10]
fistp qword [esp + 0x34]
mov eax, dword [esp + 0x34]
mov dword [ecx + edi + 0x5eadc], eax
mov ecx, edi
fldcw word [esp + 0x1c]
call fcn.1013ca50
mov esi, dword [esp + 8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0xc], eax
push 4
push str.SONY
fldcw word [esp + 0x14]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esi + edi + 0x5eae0], eax
lea eax, [edi + 0xc4]
push eax
fldcw word [esp + 0x24]
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x1015b332.61444
movzx eax, word [esi + edi + 0x5eadc]
mov word [edi + 0xb4], ax
movzx eax, word [esi + edi + 0x5eae0]
mov word [edi + 0xb6], ax
jmp case.0x1015b332.61444
cmp edx, 2
jne case.0x1015b332.61444
imul eax, dword [esp + 0x20], 0x4208
mov ecx, edi
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0xc], eax
or dword [eax + edi + 0x5aaac], 0x400
call fcn.1013ca50
mov ecx, dword [esp + 8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0xc], eax
push esi
fldcw word [esp + 0x10]
fistp qword [esp + 0x34]
mov eax, dword [esp + 0x34]
mov dword [ecx + edi + 0x5eae4], eax
mov ecx, edi
fldcw word [esp + 0x1c]
call fcn.1013ca50
mov esi, dword [esp + 8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0xc], eax
push 4
push str.SONY
fldcw word [esp + 0x14]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esi + edi + 0x5eae8], eax
lea eax, [edi + 0xc4]
push eax
fldcw word [esp + 0x24]
call fcn.102855c3
add esp, 0xc
test eax, eax
jne case.0x1015b332.61444
movzx eax, word [esi + edi + 0x5eae4]
mov word [edi + 0xb8], ax
movzx eax, word [esi + edi + 0x5eae8]
mov word [edi + 0xba], ax
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
mov ecx, edi
call fcn.1013c960
or dword [esi + edi + 0x5a95c], 2
mov word [esi + edi + 0x5a960], ax
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
mov ecx, edi
call fcn.1013c960
or dword [esi + edi + 0x5aa04], 2
mov word [esi + edi + 0x5aa08], ax
jmp case.0x1015b332.61444
xor edx, edx
cmp esi, 0xc621
setne dl
imul ecx, dword [esp + 0x20], 0x4208
imul eax, edx, 0xa8
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
add eax, ecx
xor ecx, ecx
mov dword [esp + 0x24], ecx
or dword [eax + edi + 0x5a95c], 4
cmp dword [edi + 0x190], ecx
jle 0x1015a3bd
lea esi, [esp + 0x230]
cmp ecx, 4
jge 0x1015a3bd
lea eax, [edx*8]
mov dword [esp + 8], 3
sub eax, edx
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0xc]
lea eax, [eax + eax*2]
lea eax, [eax + 0x16a69]
lea eax, [ecx + eax*4]
add eax, edi
mov dword [esp + 0x54], eax
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
mov eax, dword [esp + 0x54]
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
movsd qword [esi], xmm0
add esi, 8
cvtpd2ps xmm0, xmm0
movss dword [eax], xmm0
add eax, 4
sub dword [esp + 8], 1
mov dword [esp + 0x54], eax
jne 0x1015a372
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, dword [edi + 0x190]
jl 0x1015a343
mov dword [esp + 0x54], 1
jmp case.0x1015b332.61444
xor eax, eax
cmp esi, 0xc623
setne al
imul ecx, dword [esp + 0x20], 0x4208
mov dword [esp + 0xc], eax
imul eax, eax, 0xa8
add ecx, edi
or dword [eax + ecx + 0x5a95c], 8
xor eax, eax
mov dword [esp + 0x24], eax
cmp dword [edi + 0x190], eax
jle case.0x1015b332.61444
xor esi, esi
cmp dword [edi + 0x190], esi
jle 0x1015a46e
nop dword [eax]
cmp esi, 4
jge 0x1015a46a
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
mov eax, dword [esp + 0x24]
imul ecx, dword [esp + 0xc], 0x2a
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
lea edx, [eax*4]
lea eax, [esi + edx]
movsd qword [esp + eax*8 + 0x1b0], xmm0
imul eax, dword [esp + 0x20], 0x1082
cvtpd2ps xmm0, xmm0
add eax, esi
inc esi
add ecx, eax
add ecx, edx
movss dword [edi + ecx*4 + 0x5a964], xmm0
cmp esi, dword [edi + 0x190]
jl 0x1015a410
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
cmp eax, dword [edi + 0x190]
jl 0x1015a403
jmp case.0x1015b332.61444
imul eax, dword [esp + 0x20], 0x4208
xor esi, esi
or dword [eax + edi + 0x5aaac], 0x10
cmp dword [edi + 0x190], esi
jle case.0x1015b332.61444
nop
cmp esi, 4
jge case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
imul eax, dword [esp + 0x20], 0x1082
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + esi*8 + 0x170], xmm0
cvtpd2ps xmm0, xmm0
add eax, esi
inc esi
movss dword [edi + eax*4 + 0x5eaf0], xmm0
cmp esi, dword [edi + 0x190]
jl 0x1015a4a0
jmp case.0x1015b332.61444
xor esi, esi
cmp dword [edi + 0x190], esi
jle case.0x1015b332.61444
nop word [eax + eax]
cmp esi, 4
jge case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp qword [esp + esi*8 + 0x110]
inc esi
cmp esi, dword [edi + 0x190]
jl 0x1015a500
jmp case.0x1015b332.61444
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1013ca50
fstp qword [esp + 0xe8]
push esi
mov ecx, edi
call fcn.1013ca50
movsd xmm0, qword [0x103f94d8]
lea eax, [esp + 0xe8]
subsd xmm0, qword [esp + 0xe8]
fstp qword [esp + 0xf0]
mov ecx, 0x102c9ab8
subsd xmm0, qword [esp + 0xf0]
movsd qword [esp + 0xf8], xmm0
nop word [eax + eax]
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, 0x102c9ac4
jl 0x1015a580
jmp case.0x1015b332.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fstp dword [edi + 0x2938c]
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [edi + 0x54800]
mov dword [esp + 0x28], eax
movsx eax, word [edi + 0x54860]
push 6
mov esi, dword [ecx]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x134]
push 1
push eax
mov dword [esp + 0x48], edx
call dword [esi + 8]
mov ecx, str.Adobe
lea eax, [esp + 0x130]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015a621
test dl, dl
je 0x1015a61d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015a621
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015a601
xor eax, eax
jmp 0x1015a626
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1015b002
mov ecx, dword [esp + 0x28]
mov eax, 0x4d4d
mov edx, dword [esp + 0x28]
add ecx, 6
mov esi, dword [esp + 0x3c]
mov word [edi + 0x54860], ax
mov eax, dword [esp + 0x3c]
adc eax, 0
mov dword [esp + 0x24], ecx
sub ecx, edx
mov dword [esp + 0x18], eax
sbb eax, esi
add ecx, 8
adc eax, 0
test eax, eax
jg 0x1015b0b4
mov esi, dword [esp + 0x10]
jl 0x1015a680
cmp ecx, esi
ja 0x1015b0b0
nop dword [eax + eax]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x130]
push 4
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
add dword [esp + 0x24], 8
lea eax, [esp + 0x130]
push 4
adc dword [esp + 0x1c], 0
push str.MakN
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
je 0x1015a6e3
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
sbb eax, dword [esp + 0x3c]
add ecx, 8
adc eax, 0
js 0x1015a680
jg 0x1015b0ac
cmp ecx, esi
jbe 0x1015a680
jmp 0x1015b0ac
mov ecx, edi
call fcn.10135240
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.1013c960
mov ecx, edi
movzx esi, ax
call fcn.10135240
mov edi, eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x54800]
mov word [eax + 0x54860], si
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
call edx
mov esi, eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x24]
push 2
sub eax, edi
mov edi, dword [esp + 0x30]
push 0
add eax, 6
mov ecx, edi
push eax
call fcn.101522e0
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [edi + 0x54800]
add eax, esi
push 0
adc edx, dword [esp + 0x10]
sub eax, 6
mov dword [esp + 0x14], eax
mov eax, dword [ecx]
sbb edx, 0
push edx
push dword [esp + 0x18]
call dword [eax + 0xc]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x130]
push 4
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
push 4
lea eax, [esp + 0x134]
push str.SR2
push eax
call fcn.1027dd20
add esp, 0xc
test eax, eax
jne 0x1015b0ac
mov eax, 0x4d4d
mov ecx, edi
mov word [edi + 0x54860], ax
call fcn.10135240
mov ecx, edi
call fcn.1013c960
mov ecx, edi
movzx esi, ax
call fcn.10135240
xor ecx, ecx
mov word [edi + 0x54860], si
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov dword [esp + 8], 0
add ecx, 0xe
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], ecx
mov ecx, edi
call fcn.1013c960
movzx esi, ax
test esi, esi
je 0x1015b0ac
lea eax, [esp + 0xb8]
mov ecx, edi
push eax
lea eax, [esp + 0xc4]
dec esi
push eax
lea eax, [esp + 0xc4]
push eax
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x20]
call fcn.1014c820
mov eax, dword [esp + 0x8c]
cmp eax, 0x7200
jne 0x1015a83d
mov ecx, edi
call fcn.10135240
mov dword [esp + 8], eax
jmp 0x1015a863
cmp eax, 0x7201
jne 0x1015a851
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x24], eax
jmp 0x1015a863
cmp eax, 0x7221
jne 0x1015a863
mov ecx, edi
call fcn.10135240
mov dword [esp + 0x14], eax
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0xc0]
mov edx, dword [ecx]
call dword [edx + 0xc]
test esi, esi
jne 0x1015a7f6
mov eax, dword [esp + 0x24]
test eax, eax
je 0x1015b0ac
cmp eax, 0x9c4000
jae 0x1015b0ac
add eax, 0x400
mov ecx, edi
push eax
call fcn.10168c80
mov dword [esp + 0x18], eax
test eax, eax
je 0x1015b0ac
mov ecx, dword [edi + 0x54800]
mov edx, dword [esp + 8]
add edx, dword [esp + 0x10]
push 0
mov esi, dword [ecx]
push 0
push edx
call dword [esi + 0xc]
mov ecx, dword [edi + 0x54800]
mov esi, dword [esp + 0x18]
push 1
push dword [esp + 0x28]
mov eax, dword [ecx]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
push ecx
push 1
shr eax, 2
mov ecx, edi
push eax
push esi
call fcn.1014a1d0
push esi
mov ecx, edi
call fcn.10135f90
movzx eax, ax
mov edx, 2
mov dword [esp + 0x10], edx
test eax, eax
je 0x1015aff5
dec eax
mov ecx, edi
mov dword [esp + 0x70], eax
lea eax, [edx + esi]
push eax
call fcn.10135f90
movzx eax, ax
mov ecx, edi
mov dword [esp + 0xc], eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x10], eax
add eax, esi
push eax
call fcn.10135f90
mov ecx, dword [esp + 0x10]
movzx esi, ax
add ecx, 2
mov eax, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x10], ecx
push eax
mov ecx, edi
mov dword [esp + 0xc0], esi
call fcn.1013c9c0
mov edx, dword [esp + 0x10]
add edx, 4
mov dword [esp + 0xc0], eax
cmp esi, 0xe
mov dword [esp + 0x10], edx
sbb ecx, ecx
and ecx, esi
movsx ecx, byte [ecx + str.11124811248484]
sub ecx, 0x30
imul ecx, eax
cmp ecx, 4
jbe 0x1015a9ab
mov eax, dword [esp + 0x18]
mov ecx, edi
add eax, edx
push eax
call fcn.1013c9c0
sub eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
jmp 0x1015a9ad
mov eax, edx
cmp eax, dword [esp + 0x24]
ja 0x1015aff1
mov ecx, dword [esp + 0xc]
add edx, 4
mov dword [esp + 0x10], edx
cmp ecx, 0x7820
ja 0x1015ab74
je 0x1015ab25
cmp ecx, 0x7480
ja 0x1015aac5
je 0x1015ab25
sub ecx, 0x7302
je 0x1015aa89
sub ecx, 0x10
jne case.default.0x1015ab83
xor esi, esi
add eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
mov dword [esp + esi*4 + 0xa0], eax
inc esi
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
cmp esi, 4
jl 0x1015aa05
cmp dword [esp + 0xa4], 0x400
jne 0x1015aa49
cmp dword [esp + 0xa8], 0x400
jne 0x1015aa49
mov ecx, 2
jmp 0x1015aa4b
xor ecx, ecx
mov eax, dword [esp + ecx*4 + 0xa4]
add dword [esp + ecx*4 + 0xa0], eax
mov eax, dword [esp + ecx*4 + 0xa0]
sub eax, dword [esp + ecx*4 + 0xa4]
sub dword [esp + ecx*4 + 0xa0], eax
mov dword [esp + ecx*4 + 0xa4], eax
movups xmm0, xmmword [esp + 0xa0]
movups xmmword [edi + 0x298b0], xmm0
jmp 0x1015afdd
xor esi, esi
add eax, dword [esp + 0x18]
mov dword [esp + 0x14], eax
push eax
mov ecx, edi
call fcn.10135f90
movzx ecx, ax
xor eax, eax
cmp esi, 2
setl al
xor eax, esi
inc esi
mov dword [edi + eax*4 + 0x298b0], ecx
mov eax, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x14], eax
cmp esi, 4
jl 0x1015aa93
jmp 0x1015afdd
add ecx, 0xffff8b7f
cmp ecx, 5
ja case.default.0x1015ab83
jmp dword [ecx*4 + 0x1015c3ec]
add eax, dword [esp + 0x18]
lea esi, [edi + 0x293b0]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0x14]
add eax, 2
sub dword [esp + 0xc], 1
mov dword [esp + 0x14], eax
jne 0x1015aaf1
mov eax, dword [edi + 0x293b4]
mov dword [edi + 0x293bc], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x293a0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop dword [eax + eax]
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015ab40
mov eax, dword [edi + 0x293a4]
mov dword [edi + 0x293ac], eax
jmp 0x1015afdd
add ecx, 0xffff87df
cmp ecx, 0xc
ja case.default.0x1015ab83
jmp dword [ecx*4 + 0x1015c404]
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29430]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015aba0
mov eax, dword [edi + 0x29434]
mov dword [edi + 0x2943c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x293c0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop word [eax + eax]
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015abf0
mov eax, dword [edi + 0x293c4]
mov dword [edi + 0x293cc], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x293d0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop word [eax + eax]
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015ac40
mov eax, dword [edi + 0x293d4]
mov dword [edi + 0x293dc], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x2a394]
mov dword [edi + 0x2a390], 0x458ca000
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
mov eax, dword [esp + 0xc]
cvtdq2ps xmm0, xmm0
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
movss dword [esi - 4], xmm0
jne 0x1015ac94
mov eax, dword [edi + 0x2a398]
mov dword [edi + 0x2a3a0], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29440]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015ace7
mov eax, dword [edi + 0x29444]
mov dword [edi + 0x2944c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29470]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015ad31
mov eax, dword [edi + 0x29474]
mov dword [edi + 0x2947c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29460]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop dword [eax + eax]
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015ad80
mov eax, dword [edi + 0x29464]
mov dword [edi + 0x2946c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29450]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop word [eax + eax]
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015add0
mov eax, dword [edi + 0x29454]
mov dword [edi + 0x2945c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29490]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop word [eax + eax]
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015ae20
mov eax, dword [edi + 0x29494]
mov dword [edi + 0x2949c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x2a3a8]
mov dword [edi + 0x2a3a4], 0x4604d000
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
mov eax, dword [esp + 0xc]
cvtdq2ps xmm0, xmm0
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
movss dword [esi - 4], xmm0
jne 0x1015ae74
mov eax, dword [edi + 0x2a3ac]
mov dword [edi + 0x2a3b4], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x2a3bc]
mov dword [edi + 0x2a3b8], 0x45bb8000
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
mov eax, dword [esp + 0xc]
cvtdq2ps xmm0, xmm0
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
movss dword [esi - 4], xmm0
jne 0x1015aed1
mov eax, dword [edi + 0x2a3c0]
mov dword [edi + 0x2a3c8], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x29510]
mov dword [edi + 0x2a3cc], 0x45480000
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
nop
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [esi + 0xebc], xmm0
mov dword [esi - 4], eax
mov eax, dword [esp + 0xc]
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
jne 0x1015af30
movd xmm0, dword [edi + 0x29514]
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [edi + 0x2a3dc], xmm0
mov dword [edi + 0x2951c], eax
jmp 0x1015afdd
add eax, dword [esp + 0x18]
lea esi, [edi + 0x2a3e4]
mov dword [edi + 0x2a3e0], 0x451c4000
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 3
push eax
mov ecx, edi
call fcn.10135f90
movzx eax, ax
lea esi, [esi + 4]
movd xmm0, eax
mov eax, dword [esp + 0xc]
cvtdq2ps xmm0, xmm0
add eax, 2
sub dword [esp + 0x14], 1
mov dword [esp + 0xc], eax
movss dword [esi - 4], xmm0
jne 0x1015afa5
mov eax, dword [edi + 0x2a3e8]
mov dword [edi + 0x2a3f0], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x18]
test eax, eax
jne 0x1015a912
mov esi, dword [esp + 0x18]
push esi
mov ecx, edi
call fcn.10168d30
jmp 0x1015b0ac
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x136]
push 2
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, 0x102b6088
lea eax, [esp + 0x130]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b045
test dl, dl
je 0x1015b041
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b045
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b025
xor eax, eax
jmp 0x1015b04a
sbb eax, eax
or eax, 1
test eax, eax
je 0x1015b089
mov ecx, str.SAMSUNG
lea eax, [esp + 0x130]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b080
test dl, dl
je 0x1015b07c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b080
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b060
xor eax, eax
jmp 0x1015b085
sbb eax, eax
or eax, 1
test eax, eax
jne 0x1015b0ac
mov ecx, dword [edi + 0x54800]
push 0
push dword [esp + 0x40]
mov eax, dword [ecx]
push dword [esp + 0x30]
call dword [eax + 0xc]
push 1
push 0
push dword [ebp + 8]
mov ecx, edi
call fcn.101522e0
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x3c]
mov ecx, dword [edi + 0x54800]
push 0
push esi
push edx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [esp + 0x30]
mov word [edi + 0x54860], ax
cmp dword [edi + 0x188], 0
jne case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
mov esi, dword [esp + 0x2c]
mov edi, eax
add edi, dword [ebp + 8]
mov ecx, esi
push edi
call fcn.1014bf00
mov ecx, dword [esi + 0x54800]
mov eax, edi
push 0
cdq
push edx
mov esi, dword [ecx]
push eax
call dword [esi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10157770
jmp case.0x1015b332.61444
push 3
lea eax, [edi + 0x5486a]
mov ecx, edi
push eax
call fcn.1013cc80
jmp case.0x1015b332.61444
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.1013ca20
push esi
mov ecx, edi
mov word [edi + 0x18], ax
call fcn.1013ca20
push esi
mov ecx, edi
mov word [edi + 0x1a], ax
call fcn.1013ca20
sub ax, word [edi + 0x18]
mov ecx, edi
push esi
mov word [edi + 0x14], ax
call fcn.1013ca20
sub ax, word [edi + 0x1a]
mov word [edi + 0x16], ax
jmp case.0x1015b332.61444
xor eax, eax
mov dword [esp + 0xc], eax
test edx, edx
je 0x1015b1ad
mov esi, dword [esp + 0x10]
lea ecx, [edi + 0x34]
mov dword [esp + 0x14], ecx
cmp eax, 0x20
jge 0x1015b1ad
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
mov ecx, dword [esp + 0x14]
mov dword [ecx], eax
add ecx, 4
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], eax
cmp eax, esi
jb 0x1015b183
mov dword [edi + 0x24f50], 0
jmp case.0x1015b332.61444
xor eax, eax
cmp esi, 0xc714
setne al
imul ecx, dword [esp + 0x20], 0x4208
mov dword [esp + 0x30], eax
imul eax, eax, 0xa8
add ecx, edi
or dword [eax + ecx + 0x5a95c], 1
xor edx, edx
mov dword [esp + 0xc], edx
nop dword [eax]
xor esi, esi
cmp dword [edi + 0x190], esi
jle 0x1015b247
nop word [eax + eax]
cmp esi, 4
jge 0x1015b247
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
imul eax, dword [esp + 0x20], 0x1082
imul ecx, dword [esp + 0x30], 0x2a
mov edx, dword [esp + 0xc]
fstp qword [esp + 0x70]
movsd xmm0, qword [esp + 0x70]
add eax, edx
cvtpd2ps xmm0, xmm0
add ecx, eax
add ecx, esi
inc esi
movss dword [edi + ecx*4 + 0x5a9d4], xmm0
cmp esi, dword [edi + 0x190]
jl 0x1015b200
add edx, 4
mov dword [esp + 0xc], edx
cmp edx, 0xc
jl 0x1015b1f0
jmp case.0x1015b332.61444
cmp esi, 0xf000
ja 0x1015b311
je 0x1015b2e0
sub esi, 0xc71a
je 0x1015b2b6
sub esi, 0x27
jne case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
or dword [esi + edi + 0x5aaac], 0x80
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [edi + 0x54888], eax
mov dword [edi + 0x5488c], edx
mov dword [esi + edi + 0x5a948], eax
mov dword [esi + edi + 0x5a94c], edx
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
mov ecx, edi
push dword [esp + 0x1c]
or dword [esi + edi + 0x5aaac], 0x800
call fcn.1013ca20
mov dword [esi + edi + 0x5eaec], eax
jmp case.0x1015b332.61444
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esi]
push 0
call fcn.10135240
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
call fcn.10157770
jmp case.0x1015b332.61444
cmp esi, 0xfd04
ja 0x1015bc41
je 0x1015bbdc
lea eax, [esi - 0xf001]
cmp eax, 0xd
ja case.0x1015b332.61444
jmp dword [eax*4 + 0x1015c438]
cmp dword [esp + 0x1c], 3
jne 0x1015b3af
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x44]
push 2
mov word [esp + 0x48], 0xffff
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x1015b38c
movzx edx, byte [esp + 0x45]
movzx eax, byte [esp + 0x44]
shl edx, 8
or edx, eax
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a8f8], edx
jmp case.0x1015b332.61444
movzx edx, byte [esp + 0x44]
movzx eax, byte [esp + 0x45]
shl edx, 8
or edx, eax
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a8f8], edx
jmp case.0x1015b332.61444
mov ecx, edi
call fcn.10135240
imul ecx, dword [esp + 0x20], 0x4208
mov edx, eax
mov dword [ecx + edi + 0x5a8f8], edx
jmp case.0x1015b332.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x1015b3f1
call fcn.1013c960
imul ecx, dword [esp + 0x20], 0x4208
movzx eax, ax
mov dword [ecx + edi + 0x5a8fc], eax
jmp case.0x1015b332.61444
call fcn.10135240
imul ecx, dword [esp + 0x20], 0x4208
mov dword [ecx + edi + 0x5a8fc], eax
jmp case.0x1015b332.61444
imul esi, dword [esp + 0x20], 0x4208
and edx, 7
push dword [esp + 0x1c]
mov ecx, edi
mov dword [esi + edi + 0x5a914], edx
call fcn.1013ca20
mov dword [esi + edi + 0x5a900], eax
cmp dword [edi + 0x548a4], eax
jae case.0x1015b332.61444
mov dword [edi + 0x548a4], eax
jmp case.0x1015b332.61444
xor eax, eax
mov word [edi + 0x10], ax
imul eax, dword [esp + 0x20], 0x4208
cmp dword [eax + edi + 0x5a900], 0xc
jg case.0x1015b332.61444
mov ecx, edi
mov dword [edi + 0x83dac], 0x10144700
call fcn.10135240
neg eax
sbb eax, eax
and eax, 0xffffffc8
add eax, 0x50
mov dword [edi + 0x548b8], eax
jmp case.0x1015b332.61444
mov esi, 4
nop dword [eax]
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
mov ecx, 3
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103f9b80]
mov eax, esi
dec esi
cdq
idiv ecx
cvtpd2ps xmm0, xmm0
movss dword [edi + edx*4 + 0x24ff4], xmm0
cmp esi, 1
jg 0x1015b490
jmp case.0x1015b332.61444
lea esi, [edi + 0x104]
mov ecx, str.X_A3
mov eax, esi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b500
test dl, dl
je 0x1015b4fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b500
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b4e0
xor eax, eax
jmp 0x1015b505
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov ecx, str.X_A10
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b534
test dl, dl
je 0x1015b530
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b534
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b514
xor eax, eax
jmp 0x1015b539
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov ecx, str.X_A5
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b568
test dl, dl
je 0x1015b564
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b568
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b548
xor eax, eax
jmp 0x1015b56d
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov eax, str.X_A20
nop word [eax + eax]
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1015b5a0
test cl, cl
je 0x1015b59c
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1015b5a0
add esi, 2
add eax, 2
test cl, cl
jne 0x1015b580
xor eax, eax
jmp 0x1015b5a5
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov esi, 4
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca20
mov ecx, eax
mov eax, esi
cdq
dec esi
idiv dword [esp + 0xc8]
mov dword [edi + edx*4 + 0x298b0], ecx
cmp esi, 1
jg 0x1015b5b2
mov eax, dword [edi + 0x298b4]
mov dword [edi + 0x298bc], eax
jmp case.0x1015b332.61444
lea esi, [edi + 0x104]
mov ecx, str.X_A3
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b614
test dl, dl
je 0x1015b610
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b614
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b5f4
xor eax, eax
jmp 0x1015b619
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov ecx, str.X_A10
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b648
test dl, dl
je 0x1015b644
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b648
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b628
xor eax, eax
jmp 0x1015b64d
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov ecx, str.X_A5
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x1015b680
test dl, dl
je 0x1015b67c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x1015b680
add eax, 2
add ecx, 2
test dl, dl
jne 0x1015b660
xor eax, eax
jmp 0x1015b685
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
mov eax, str.X_A20
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x1015b6b2
test cl, cl
je 0x1015b6ae
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x1015b6b2
add esi, 2
add eax, 2
test cl, cl
jne 0x1015b692
xor eax, eax
jmp 0x1015b6b7
sbb eax, eax
or eax, 1
test eax, eax
je case.0x1015b332.61444
xor esi, esi
mov ecx, edi
call fcn.10135240
mov dword [esp + esi*4 + 0x7c], eax
inc esi
cmp esi, 4
jl 0x1015b6c1
mov edx, dword [esp + 0x88]
cmp edx, 0x100
jae 0x1015b93e
mov ecx, dword [esp + 0x80]
lea eax, [edx + 0x2939]
add eax, eax
mov dword [edi + eax*8], ecx
mov eax, edx
mov ecx, dword [esp + 0x7c]
add eax, eax
mov dword [edi + eax*8 + 0x2939c], ecx
mov dword [edi + eax*8 + 0x29394], ecx
mov ecx, dword [esp + 0x84]
mov dword [edi + eax*8 + 0x29398], ecx
cmp edx, 0x11
jne 0x1015b93e
mov eax, dword [edi + 0x548d0]
cmp eax, 3
jbe 0x1015b93e
cmp eax, 0x9c4000
jae 0x1015b93e
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x30], eax
mov edi, edx
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x548d0]
add ecx, ecx
push ecx
mov ecx, eax
call fcn.10168c80
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
push 0
mov ecx, dword [eax + 0x54800]
push dword [eax + 0x548cc]
push dword [eax + 0x548c8]
mov esi, dword [ecx]
call dword [esi + 0xc]
mov esi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x54800]
push dword [esi + 0x548d0]
push 2
mov eax, dword [ecx]
push dword [esp + 0x30]
call dword [eax + 8]
mov ecx, dword [esi + 0x54800]
push 0
push edi
push dword [esp + 0x38]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edi, esi
xor ecx, ecx
mov dword [esp + 8], ecx
mov eax, dword [edi + 0x548d0]
sub eax, 3
mov dword [esp + 0x30], eax
je 0x1015b93e
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x7c]
add edx, 4
nop dword [eax]
movzx eax, word [edx - 4]
cmp esi, eax
jne 0x1015b809
movzx eax, word [edx - 2]
cmp dword [esp + 0x80], eax
jne 0x1015b809
movzx eax, word [edx]
cmp dword [esp + 0x84], eax
jne 0x1015b809
movzx eax, word [edx - 0x22]
cmp eax, esi
je 0x1015b81c
inc ecx
add edx, 2
mov dword [esp + 8], ecx
cmp ecx, dword [esp + 0x30]
jb 0x1015b7e0
jmp 0x1015b93e
xor edx, edx
mov dword [esp + 0xc], edx
cmp dword [0x10415cf0], edx
jle 0x1015b896
mov eax, dword [esp + 0x28]
add eax, 0xffffffe6
lea ecx, [eax + ecx*2]
mov dword [esp + 0x14], ecx
nop dword [eax + eax]
mov edx, dword [edx*4 + 0x10415cd8]
mov esi, edx
movzx eax, word [ecx - 4]
add esi, esi
mov dword [edi + esi*8 + 0x2939c], eax
mov dword [edi + esi*8 + 0x29394], eax
lea eax, [edx + 0x2939]
movzx ecx, word [ecx - 2]
add eax, eax
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
mov dword [edi + eax*8], ecx
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx]
add ecx, 6
mov dword [edi + esi*8 + 0x29398], eax
mov dword [esp + 0x14], ecx
cmp edx, dword [0x10415cf0]
jl 0x1015b840
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x28]
add ecx, 0x60
lea eax, [ecx + 0xf]
cmp ecx, eax
jge 0x1015b936
movzx edx, word [esi + ecx*2]
nop dword [eax]
cmp word [esi + ecx*2], dx
jne 0x1015b8bf
add ecx, 3
cmp ecx, eax
jl 0x1015b8b0
jmp 0x1015b936
mov eax, dword [esp + 0x28]
lea edx, [edi + 0x2a394]
sub ecx, 0x5d
mov esi, 0x10415cf8
add eax, 4
lea ecx, [eax + ecx*2]
nop word [eax + eax]
movd xmm0, dword [esi]
lea ecx, [ecx + 6]
cvtdq2ps xmm0, xmm0
add esi, 4
lea edx, [edx + 0x14]
movss dword [edx - 0x18], xmm0
movzx eax, word [ecx - 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx - 0x14], xmm0
movzx eax, word [ecx - 0xa]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx - 8], xmm0
movss dword [edx - 0x10], xmm0
movzx eax, word [ecx - 6]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx - 0xc], xmm0
cmp esi, 0x10415d74
jl 0x1015b8e0
mov esi, dword [esp + 0x28]
push esi
mov ecx, edi
call fcn.10168d30
xor esi, esi
mov ecx, edi
call fcn.10135240
mov dword [esp + esi*4 + 0x7c], eax
inc esi
cmp esi, 4
jl 0x1015b940
mov edx, dword [esp + 0x88]
cmp edx, 0x100
jae case.0x1015b332.61444
mov eax, dword [esp + 0x80]
lea ecx, [edx + 0x2939]
add ecx, ecx
add edx, edx
mov dword [edi + ecx*8], eax
mov eax, dword [esp + 0x7c]
mov dword [edi + edx*8 + 0x2939c], eax
mov dword [edi + edx*8 + 0x29394], eax
mov eax, dword [esp + 0x84]
mov dword [edi + edx*8 + 0x29398], eax
jmp case.0x1015b332.61444
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x103f9b80]
call fcn.1027f670
minsd xmm0, qword [0x102c7df0]
call fcn.1026a2d1
mov dword [edi + 0x20f4c], eax
mov dword [edi + 0x20f48], eax
imul edx, dword [esp + 0x20], 0x4208
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov ecx, dword [edx + edi + 0x5a914]
cmp ecx, 1
jle 0x1015ba87
cmp ecx, eax
jne 0x1015ba87
or dword [edx + edi + 0x5aaac], 0x20
xor esi, esi
cmp dword [edi + 0x190], esi
jle 0x1015ba6d
lea ecx, [edi + 0x20f38]
mov dword [esp + 0xc], ecx
cmp esi, 4
jge 0x1015ba69
cmp esi, eax
jae 0x1015ba69
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
fadd qword [0x103f9488]
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
call fcn.1026a2d1
imul ecx, dword [esp + 0x20], 0x1082
mov edx, dword [esp + 0xc]
add ecx, esi
mov dword [edx], eax
inc esi
add edx, 4
mov dword [esp + 0xc], edx
mov dword [edi + ecx*4 + 0x5aab0], eax
mov eax, dword [esp + 0x10]
cmp esi, dword [edi + 0x190]
jl 0x1015ba15
mov edx, dword [esp + 0x24]
mov dword [edi + 0x24f50], 0
mov dword [edx + edi + 0x5eac8], 0
jmp case.0x1015b332.61444
mov ecx, dword [edi + 0x20f4c]
imul ecx, dword [edi + 0x20f48]
cmp ecx, 2
jae 0x1015bae9
cmp eax, 1
jne 0x1015bae9
push dword [esp + 0x1c]
or dword [edx + edi + 0x5aaac], 0x20
mov ecx, edi
call fcn.1013ca50
mov ecx, dword [esp + 0x24]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [edi + 0x24f50], eax
mov dword [ecx + edi + 0x5eac8], eax
fldcw word [esp + 0x10]
jmp case.0x1015b332.61444
cmp ecx, eax
ja case.0x1015b332.61444
mov dword [esp + 0xc], 0
test ecx, ecx
je 0x1015bb58
lea esi, [edi + 0x20f50]
push dword [esp + 0x1c]
mov ecx, edi
call fcn.1013ca50
mov ecx, dword [esp + 0xc]
lea esi, [esi + 4]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
inc ecx
or eax, 0xc00
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], eax
fldcw word [esp + 0x30]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov dword [esi - 4], eax
mov eax, dword [edi + 0x20f4c]
imul eax, dword [edi + 0x20f48]
fldcw word [esp + 0x10]
cmp ecx, eax
jb 0x1015bb03
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov dword [edi + 0x24f50], 0
xorps xmm0, xmm0
movups xmmword [edi + 0x20f38], xmm0
cmp esi, 0xc61a
jne case.0x1015b332.61444
or dword [edx + edi + 0x5aaac], 0x20
xor esi, esi
mov eax, dword [edi + 0x20f4c]
imul eax, dword [edi + 0x20f48]
test eax, eax
je 0x1015bbc1
lea ecx, [edx + 0x5aac8]
add ecx, edi
lea edx, [edi + 0x20f50]
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [ecx], eax
lea ecx, [ecx + 4]
mov eax, dword [edi + 0x20f4c]
inc esi
imul eax, dword [edi + 0x20f48]
cmp esi, eax
jb 0x1015bba1
mov edx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [edx + edi + 0x5eac8], 0
movups xmmword [edx + edi + 0x5aab0], xmm0
jmp case.0x1015b332.61444
cmp edx, 0xd
jb case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x10
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.10135240
mov ecx, dword [edi + 0x54800]
push 1
mov dword [edi + 0x54880], eax
mov dword [edi + 0x54884], 0
mov eax, dword [ecx]
push 0
push 0x1c
call dword [eax + 0xc]
mov ecx, edi
call fcn.10135240
add dword [edi + 0x54880], eax
mov dword [edi + 0x83dac], 0x10144700
adc dword [edi + 0x54884], 0
jmp case.0x1015b332.61444
sub esi, 0xfd09
je 0x1015bc82
sub esi, 0xf7
je 0x101591d2
sub esi, 2
jne case.0x1015b332.61444
cmp dword [esp + 0x1c], 2
jne case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
lea eax, [edi + 0x25100]
push 0x40
push eax
mov edx, dword [ecx]
call dword [edx + 0x1c]
jmp case.0x1015b332.61444
cmp edx, 0x24
jne 0x1015bcc1
mov dword [edi + 0x194], 9
xor esi, esi
mov dword [edi + 0x190], 3
nop dword [eax]
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
and al, 3
mov byte [edi + esi + 0x198], al
inc esi
cmp esi, 0x24
jl 0x1015bca0
jmp case.0x1015b332.61444
test edx, edx
je case.0x1015b332.61444
mov ecx, dword [edi + 0x54800]
cmp edx, 0x10
mov esi, edx
mov eax, 0x10
cmova esi, eax
lea edx, [esp + 0x100]
push esi
mov eax, dword [ecx]
push 1
push edx
mov dword [esp + 0x78], esi
call dword [eax + 8]
xor edx, edx
xor esi, esi
mov dword [edi + 0x190], edx
cmp dword [esp + 0x6c], edx
jbe 0x1015bd69
cmp dword [edi + 0x190], 4
jge 0x1015bd3b
mov al, byte [esp + esi + 0x100]
cmp al, 0x1f
ja 0x1015bd34
movzx ecx, al
mov eax, 1
shl eax, cl
and eax, edx
neg eax
sbb eax, eax
inc eax
add eax, dword [edi + 0x190]
bts edx, ecx
mov dword [edi + 0x190], eax
inc esi
cmp esi, dword [esp + 0x6c]
jb 0x1015bd00
cmp edx, 0x38
jne 0x1015bd56
mov ax, word [0x102b66a0]
mov word [esp + 0x4c], ax
mov al, byte [0x102b66a2]
mov byte [esp + 0x4e], al
jmp 0x1015bd69
mov eax, dword [esp + 0x4c]
cmp edx, 0x3a
mov ecx, 0x1040305
cmove eax, ecx
mov dword [esp + 0x4c], eax
mov edx, dword [edi + 0x190]
xor ecx, ecx
test edx, edx
jle 0x1015bd8b
cmp ecx, 4
jge 0x1015bd8b
movzx eax, byte [esp + ecx + 0x4c]
mov byte [esp + eax + 0x530], cl
inc ecx
cmp ecx, edx
jl 0x1015bd75
mov byte [ecx + edi + 0x1e0], 0
mov esi, 0x10
mov edi, dword [edi + 0x194]
nop
dec esi
lea edi, [edi*4]
xor edx, edx
mov eax, esi
div dword [esp + 0x6c]
movzx eax, byte [esp + edx + 0x100]
movzx ecx, byte [esp + eax + 0x530]
or edi, ecx
test esi, esi
jne 0x1015bda0
mov dword [esp + 8], edi
xor eax, eax
mov ecx, dword [esp + 8]
test ecx, ecx
mov edi, dword [esp + 0x2c]
sete al
sub ecx, eax
mov dword [edi + 0x194], ecx
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0x68]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [esp + 0xcc]
test esi, esi
jne 0x10157902
mov eax, dword [esp + 0x58]
test eax, eax
je 0x1015be9c
cmp eax, 0x9c4000
jae 0x1015be9c
push eax
mov ecx, edi
call fcn.10168c80
mov esi, eax
test esi, esi
je 0x1015be9c
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x50]
push 0
push 0
mov edx, dword [ecx]
push eax
call dword [edx + 0xc]
mov ecx, dword [edi + 0x54800]
push 1
push dword [esp + 0x5c]
mov eax, dword [ecx]
push esi
call dword [eax + 8]
mov eax, dword [esp + 0x5c]
mov ecx, edi
push eax
mov eax, dword [esp + 0x5c]
push 1
shr eax, 2
push eax
push esi
call fcn.1014a1d0
mov ecx, dword [edi + 0x54800]
push dword [esp + 0x58]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
test eax, eax
jne 0x1015be94
mov eax, dword [esp + 0x50]
mov ecx, edi
neg eax
push eax
call fcn.10157770
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x50]
push esi
mov ecx, edi
call fcn.10168d30
mov esi, dword [edi + 0x190]
xor edx, edx
mov dword [esp + 0x60], esi
test esi, esi
jle 0x1015bedf
nop dword [eax]
xor ecx, ecx
cmp ecx, 4
jge 0x1015beda
movsd xmm0, qword [esp + edx*8 + 0x170]
lea eax, [ecx + edx*4]
mulsd xmm0, qword [esp + eax*8 + 0x1b0]
inc ecx
movsd qword [esp + eax*8 + 0x1b0], xmm0
cmp ecx, esi
jl 0x1015beb2
inc edx
cmp edx, esi
jl 0x1015beb0
mov edx, dword [esp + 0x54]
test edx, edx
je 0x1015bfa4
xor ecx, ecx
mov dword [esp + 0x5c], ecx
test esi, esi
jle 0x1015bf8a
lea eax, [esp + 0x1b0]
mov dword [esp + 0x50], eax
lea edx, [esp + 0x290]
nop dword [eax + eax]
cmp ecx, 4
jge 0x1015bf86
xor edi, edi
nop word [eax + eax]
movsd xmm1, qword [esp + edi + 0xe8]
lea ecx, [esp + 0x230]
xorps xmm0, xmm0
add ecx, edi
movsd qword [edx], xmm0
nop dword [eax]
movsd xmm0, qword [ecx]
add ecx, 0x18
mulsd xmm0, qword [eax]
add eax, 8
mulsd xmm0, xmm1
addsd xmm0, qword [edx]
movsd qword [edx], xmm0
sub esi, 1
jne 0x1015bf40
mov esi, dword [esp + 0x60]
add edi, 8
mov eax, dword [esp + 0x50]
add edx, 8
cmp edi, 0x18
jl 0x1015bf20
mov ecx, dword [esp + 0x5c]
add eax, 0x20
inc ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], ecx
cmp ecx, esi
jl 0x1015bf10
mov edi, dword [esp + 0x2c]
lea eax, [esp + 0x290]
mov ecx, edi
push eax
lea eax, [edi + 0x25014]
push eax
call fcn.10125c80
mov edx, dword [esp + 0x54]
movsd xmm0, qword [esp + 0x110]
ucomisd xmm0, qword [0x103f92a0]
movsd xmm2, qword [0x103f9bc0]
movsd xmm3, qword [0x102c7ce0]
lahf
test ah, 0x44
jnp 0x1015c01f
xor eax, eax
mov dword [edi + 0x25000], 0
cmp dword [edi + 0x190], eax
jle 0x1015c01f
lea ecx, [edi + 0x24ff4]
cmp eax, 4
jge 0x1015c01f
movsd xmm1, qword [esp + eax*8 + 0x110]
movaps xmm0, xmm1
andps xmm0, xmm2
comisd xmm0, xmm3
jbe 0x1015c013
movsd xmm0, qword [0x103f94d8]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
add ecx, 4
cmp eax, dword [edi + 0x190]
jl 0x1015bfe5
test edx, edx
jne 0x1015c077
xor eax, eax
cmp dword [edi + 0x190], eax
jle 0x1015c077
lea edx, [esp + 0x1b0]
lea ecx, [edi + 0x25004]
nop word [eax + eax]
cmp eax, 4
jge 0x1015c077
movsd xmm1, qword [edx]
movaps xmm0, xmm1
andps xmm0, xmm2
comisd xmm0, xmm3
jbe 0x1015c068
movss xmm0, dword [ecx]
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
add ecx, 4
add edx, 0x28
cmp eax, dword [edi + 0x190]
jl 0x1015c040
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 4
push 0x10404af8
lea eax, [esp + 0x74]
mov dword [esp + 0x74], 5
push eax
call fcn.1026eb3b
push 0x10404af8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 5
push eax
call fcn.1026eb3b
nop
xchg edx, eax
jl 269861064
adc ah, cl
jl 0x1015c0cc
adc byte [edi*2 + 0x7d4c1015], cl
adc eax, 0x15808010
adc al, cl
jnp 0x1015c0dc
adc byte [edx - 0x33efea84], dl
xchg edx, eax
jl 269861088
adc ah, cl
int3
jl 0x1015c0e4
adc byte [edi*2 + 0x7d4c1015], cl
adc eax, 0x157d9910
adc bl, dl
jge 0x1015c0f4
sar dword [ebp + 0x15], cl
adc byte [0x4c10157e], cl
or eax, 0x4c10157e
dec esp
jle 0x1015c0fc
adc byte [esi + edi*2 + 0x7ecc1015], cl
adc eax, 0x157f1910
adc byte [esi + 0x7f], ah
adc eax, 0x157fd010
jg 0x1015c10c
adc al, dl
jg 0x1015c110
adc byte [edx], bl
adc byte [0x15808010], 0x10
add byte [ecx], al
add al, byte [ebx]
add al, 5
push es
pop es
sbb al, byte [eax - 0x7f7fefeb]
adc eax, 33619984
add eax, dword [eax + 0x9080706]
or byte [ecx], cl
or cl, byte [ebx]
or al, 0xe
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
push cs
or eax, 360755344
adc byte [ecx], bh
mov bl, 0x15
adc ah, cl
mov bl, 0x15
adc cl, cl
adc byte [0x1580d910], 0x10
jmp 0x925d6fd