Function at 0x10152080
Capabilities:
Encode data using xor
Load assembly via iassembly
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c0
push esi
push edi
mov edi, ecx
mov dword [esp + 0x30], edi
movaps xmm0, xmmword [0x103f0320]
xor eax, eax
movups xmmword [esp + 0x188], xmm0
movaps xmm0, xmmword [0x103f0320]
movups xmmword [esp + 0x198], xmm0
mov dword [esp + 0x6c], eax
xorps xmm0, xmm0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
movups xmmword [esp + 0x168], xmm0
mov dword [esp + 0xe8], eax
movups xmmword [esp + 0x178], xmm0
mov dword [esp + 0xec], eax
movaps xmm0, xmmword [0x103f0320]
movups xmmword [esp + 0xf8], xmm0
mov dword [esp + 0xf0], eax
movsd xmm0, qword [0x103efa68]
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x54858]
mov dword [esp + 0x74], 0x10
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0x3020100
movsd qword [esp + 0x108], xmm0
mov dword [esp + 0xf4], 0xfff
mov dword [esp + 0x28], eax
cmp eax, 0xa
jae 0x10157001
inc eax
lea edx, [esp + 0x1a8]
mov dword [edi + 0x54858], eax
xor esi, esi
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 0x10152166
inc esi
cmp esi, 4
jl 0x10152164
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x34]
push 2
mov word [esp + 0x38], 0xffff
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x101521bd
movzx ecx, byte [esp + 0x35]
movzx eax, byte [esp + 0x34]
jmp 0x101521c7
movzx ecx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
shl cx, 8
or cx, ax
movzx eax, cx
movzx esi, ax
cmp esi, 0x200
ja 0x10157001
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], edx
test esi, esi
je 0x10156e1d
mov dword [esp + 0xdc], 0xb4
mov dword [esp + 0xcc], 3
nop dword [eax]
lea eax, [esp + 0x60]
dec esi
push eax
lea eax, [esp + 0x74]
mov dword [esp + 0x6c], esi
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
lea eax, [esp + 0xdc]
push eax
push dword [ebp + 8]
call fcn.10161570
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, dword [esp + 0x70]
mov esi, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], ecx
cmp ecx, 8
jbe 0x1015229c
mov edx, ecx
xor ecx, ecx
add edx, eax
mov eax, dword [esp + 0xc8]
adc ecx, esi
mov esi, dword [esp + 0xc4]
shld eax, esi, 1
add esi, esi
cmp ecx, eax
jl 0x10152298
jg case.0x101561e4.61444
cmp edx, esi
ja case.0x101561e4.61444
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x83d6c]
mov esi, dword [esp + 0xd0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], esi
test eax, eax
je 0x10152305
cmp dword [esp + 0x4c], 0
je 0x101522c3
mov edx, 0x30000
jmp 0x101522cd
mov edx, dword [esp + 0x28]
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 + 0x2c]
mov ecx, dword [edi + 0x54800]
add esp, 0x18
mov eax, dword [ecx]
push 0
push dword [esp + 0x1c]
push dword [esp + 0x14]
call dword [eax + 0xc]
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
je 0x1015238f
push 0xa
lea eax, [edi + 0xc4]
push str.Hasselblad
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
jne case.0x101525c3.30766
push 7
lea eax, [edi + 0x104]
push str.Stellar
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
je 0x1015238f
push 5
lea eax, [edi + 0x104]
push str.Lunar
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
je 0x1015238f
push 2
lea eax, [edi + 0x104]
push 0x102b4460
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
jne case.0x101525c3.30766
cmp esi, 0x7820
ja 0x101525ad
je 0x1015252c
cmp esi, 0x7480
ja 0x101524d6
je 0x1015252c
mov eax, esi
sub eax, 0x7300
je 0x1015248a
sub eax, 2
je 0x1015245d
sub eax, 0x10
jne case.0x101525c3.30766
xor esi, esi
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov dword [esp + esi*4 + 0x9c], eax
inc esi
cmp esi, 4
jl 0x101523d4
mov ecx, dword [esp + 0xa0]
mov esi, dword [esp + 0x20]
cmp ecx, 0x400
jne 0x10152424
mov eax, dword [esp + 0xa4]
cmp eax, ecx
jne 0x10152424
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc], ecx
lea edx, [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
jmp 0x1015243d
lea eax, [esp + 0xa0]
mov dword [esp + 0xc], eax
lea edx, [esp + 0x9c]
mov eax, dword [esp + 0x9c]
mov edi, dword [esp + 0xc]
mov dword [edx], ecx
mov dword [edi], eax
mov edi, dword [esp + 0x30]
movups xmm0, xmmword [esp + 0x9c]
movups xmmword [edi + 0x298b0], xmm0
jmp case.0x101525c3.30766
xor esi, esi
nop
mov ecx, edi
call fcn.10131be0
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 0x10152460
mov esi, dword [esp + 0x20]
jmp case.0x101525c3.30766
xor eax, eax
lea ecx, [edi + 0x20f38]
mov dword [esp + 0xc], eax
mov dword [esp + 0x24], ecx
nop word [eax + eax]
mov edx, dword [esp + 0x10]
cmp eax, edx
jae 0x101529b4
mov ecx, edi
call fcn.10131be0
mov ecx, dword [esp + 0x24]
movzx eax, ax
mov dword [ecx], eax
add ecx, 4
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], eax
cmp eax, 4
jl 0x101524a0
jmp case.0x101525c3.30766
lea eax, [esi - 0x7481]
cmp eax, 5
ja case.0x101525c3.30766
jmp dword [eax*4 + 0x1015703c]
lea esi, [edi + 0x293b0]
mov dword [esp + 0xc], 3
nop word [eax + eax]
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152500
mov eax, dword [edi + 0x293b4]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x293bc], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x293a0]
mov dword [esp + 0xc], 3
nop word [eax + eax]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x34]
push 2
mov word [esp + 0x38], 0xffff
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10152575
movzx ecx, byte [esp + 0x35]
movzx eax, byte [esp + 0x34]
jmp 0x1015257f
movzx ecx, byte [esp + 0x34]
movzx eax, byte [esp + 0x35]
shl cx, 8
or cx, ax
movzx eax, cx
movzx eax, ax
mov dword [esi], eax
add esi, 4
sub dword [esp + 0xc], 1
jne 0x10152540
mov eax, dword [edi + 0x293a4]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x293ac], eax
jmp case.0x101525c3.30766
lea eax, [esi - 0x7821]
cmp eax, 0x5e
ja case.0x101525c3.30766
movzx eax, byte [eax + 0x10157090]
jmp dword [eax*4 + 0x10157054]
lea esi, [edi + 0x29430]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x101525d8
mov eax, dword [edi + 0x29434]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2943c], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x293c0]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152612
mov eax, dword [edi + 0x293c4]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x293cc], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x293d0]
mov dword [esp + 0xc], 3
nop dword [eax]
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152650
mov eax, dword [edi + 0x293d4]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x293dc], eax
jmp case.0x101525c3.30766
mov dword [edi + 0x2a390], 0x458ca000
lea esi, [edi + 0x2a394]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10152694
mov eax, dword [edi + 0x2a398]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2a3a0], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x29440]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x101526d7
mov eax, dword [edi + 0x29444]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2944c], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x29470]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152711
mov eax, dword [edi + 0x29474]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2947c], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x29460]
mov dword [esp + 0xc], 3
nop dword [eax + eax]
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152750
mov eax, dword [edi + 0x29464]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2946c], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x29450]
mov dword [esp + 0xc], 3
nop word [eax + eax]
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152790
mov eax, dword [edi + 0x29454]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2945c], eax
jmp case.0x101525c3.30766
lea esi, [edi + 0x29490]
mov dword [esp + 0xc], 3
nop word [eax + eax]
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x101527d0
mov eax, dword [edi + 0x29494]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2949c], eax
jmp case.0x101525c3.30766
mov dword [edi + 0x2a3a4], 0x4604d000
lea esi, [edi + 0x2a3a8]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10152814
mov eax, dword [edi + 0x2a3ac]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2a3b4], eax
jmp case.0x101525c3.30766
mov dword [edi + 0x2a3b8], 0x45bb8000
lea esi, [edi + 0x2a3bc]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10152861
mov eax, dword [edi + 0x2a3c0]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2a3c8], eax
jmp case.0x101525c3.30766
mov dword [edi + 0x2a3cc], 0x45480000
lea esi, [edi + 0x29510]
mov dword [esp + 0xc], 3
nop
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 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 0x101528b0
movd xmm0, dword [edi + 0x29514]
mov esi, dword [esp + 0x20]
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [edi + 0x2a3dc], xmm0
mov dword [edi + 0x2951c], eax
jmp case.0x101525c3.30766
mov dword [edi + 0x2a3e0], 0x451c4000
lea esi, [edi + 0x2a3e4]
mov dword [esp + 0xc], 3
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10152918
mov eax, dword [edi + 0x2a3e8]
mov esi, dword [esp + 0x20]
mov dword [edi + 0x2a3f0], eax
jmp case.0x101525c3.30766
mov edx, dword [esp + 0x10]
cmp edx, 3
jne 0x10152983
lea esi, [edi + 0x24f5c]
mov dword [esp + 0xc], edx
nop dword [eax]
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
mov dword [esi - 4], eax
jne 0x10152960
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 0x24f60]
jmp 0x101529aa
cmp edx, 1
jne 0x101529b4
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
call fcn.1026afc0
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 0x10152d70
je case.0x101561e4.61441
lea eax, [esi - 1]
cmp eax, 0x2d
ja case.0x101561e4.61444
movzx eax, byte [eax + 0x1015713c]
jmp dword [eax*4 + 0x101570f0]
cmp edx, 4
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x4c], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
mov word [edi + 0x16], ax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
mov word [edi + 0x14], ax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
add word [edi + 0x16], ax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
test eax, eax
je case.0x101561e4.61444
mov dword [edi + 0x194], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je case.0x101561e4.61444
cmp edx, 1
jne case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov dword [edi + 0x548ec], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov dword [edi + esi*4 + 0x24f24], eax
cmp esi, 0xf
jne case.0x101561e4.61444
mov eax, dword [edi + 0x24f60]
mov dword [edi + 0x24f68], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
jne case.0x101561e4.61444
cmp edx, 1
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x102c5fe8]
cvtpd2ps xmm0, xmm0
movss dword [edi + esi*8 + 0x24f6c], xmm0
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov ecx, 0x100
cmp ax, cx
ja case.0x101561e4.61444
xor ecx, ecx
cmp cx, ax
jae case.0x101561e4.61444
mov esi, eax
mov dword [esp + 0xc], eax
mov ecx, edi
call fcn.10131be0
mov ecx, 0x100
movzx eax, ax
cmp ax, cx
mov ecx, edi
jae 0x10152b7e
mov esi, eax
call fcn.10131be0
movzx ecx, ax
lea eax, [esi + 0x2939]
add eax, eax
add esi, esi
mov dword [edi + eax*8], ecx
mov ecx, edi
call fcn.10131be0
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 + 0xc]
jmp 0x10152b83
call fcn.10131c40
sub esi, 1
mov dword [esp + 0xc], esi
jne 0x10152b24
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x2a8d8], xmm0
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je 0x10152be3
cmp edx, 1
jne 0x10152be3
cmp dword [esp + 0x1c], 3
jne 0x10152be3
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov dword [edi + esi*4 + 0x547b0], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov dword [edi + esi*4 + 0x20ec8], eax
mov eax, dword [edi + 0x20f3c]
mov dword [edi + 0x20f44], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + esi*4 + 0x24f64], xmm0
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov ecx, 0x100
cmp ax, cx
ja case.0x101561e4.61444
xor ecx, ecx
cmp cx, ax
jae case.0x101561e4.61444
mov esi, eax
mov dword [esp + 0xc], eax
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov ecx, 0x100
cmp ax, cx
jae 0x10152cb4
mov ecx, edi
mov esi, eax
call fcn.10131be0
movzx ecx, ax
lea eax, [esi + 0x2939]
add eax, eax
mov dword [edi + eax*8], ecx
mov ecx, edi
call fcn.10131be0
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.10131be0
movzx eax, ax
mov dword [edi + esi*8 + 0x29398], eax
mov esi, dword [esp + 0xc]
jmp 0x10152cc5
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 + 0xc], esi
jne 0x10152c58
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je case.0x101561e4.61444
cmp edx, 1
jne case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx eax, ax
mov dword [edi + 0x548e8], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 7
jne case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, 0xff
jne case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
cmp eax, 0xd8
jne case.0x101561e4.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.0x101561e4.61444
cmp esi, 0x201
ja 0x101535da
je case.0x101561e4.61447
lea eax, [esi - 0x101]
cmp eax, 0x8f
ja case.0x101561e4.61444
movzx eax, byte [eax + 0x101571d8]
jmp dword [eax*4 + 0x1015716c]
cmp dword [esp + 0x4c], 0
je case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
movzx eax, word [edi + 0x54860]
mov dword [esp + 0x18], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.10131be0
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 + 0x30]
push 1
mov edi, dword [esi]
call fcn.10131c40
sub eax, 8
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [esp + 0x14]
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.10152080
mov eax, dword [esp + 0x18]
mov word [edi + 0x54860], ax
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x10152e49
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a904], ecx
jmp case.0x101561e4.61444
call fcn.10131c40
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a904], ecx
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a908], ecx
jmp case.0x101561e4.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.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
lea edx, [edi + 0xc4]
push 0x40
push edx
mov eax, dword [ecx]
call dword [eax + 0x1c]
jmp case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
lea eax, [edi + 0x104]
push 0x40
push eax
mov edx, dword [ecx]
call dword [edx + 0x1c]
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x10152ef7
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a92c], ecx
jmp case.0x101561e4.61444
call fcn.10131c40
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a92c], ecx
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 4
jne case.0x101561e4.61444
mov dword [edi + 0x83dac], 0x1013f180
mov dword [edi + 0x548b8], 0x2008
lea eax, [edx - 2]
cmp eax, 0x3ffd
ja case.0x101561e4.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 + 0x14], eax
imul eax, dword [esp + 0x28], 0x4208
push 4
push esi
mov dword [esp + 0x14], eax
call fcn.10166910
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], 0
mov dword [ecx + edi + 0x5a930], eax
mov dword [ecx + edi + 0x5a934], esi
test esi, esi
je 0x10152faf
mov ecx, edi
call fcn.10131c40
mov edx, dword [esp + 0x24]
mov ecx, eax
mov eax, dword [esp + 0xc]
add ecx, dword [ebp + 8]
mov eax, dword [eax + edi + 0x5a930]
mov dword [eax + edx*4], ecx
inc edx
mov dword [esp + 0x24], edx
cmp edx, esi
jb 0x10152f88
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x14]
push 0
cdq
mov esi, dword [ecx]
push edx
push eax
call dword [esi + 0xc]
mov ecx, edi
call fcn.10131c40
mov edx, dword [ebp + 8]
add edx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [esp + 0x14], eax
cmp dword [eax + edi + 0x5a900], 0
mov dword [eax + edi + 0x5a90c], edx
jne case.0x101561e4.61444
test edx, edx
jle case.0x101561e4.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 + 0x2ec]
mov ecx, edi
push eax
call fcn.1013cb90
test eax, eax
je case.0x101561e4.61444
cmp dword [esp + 0x2fc], 0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x2ec]
mov ecx, dword [esp + 0x2f4]
mov edx, dword [esp + 0x2f0]
mov dword [esi + edi + 0x5a900], eax
mov eax, dword [esp + 0x2f8]
mov dword [esi + edi + 0x5a904], 6
mov dword [esi + edi + 0x5a8f8], ecx
mov dword [esi + edi + 0x5a8fc], edx
mov dword [esp + 0x78], eax
mov dword [esi + edi + 0x5a914], eax
jne 0x1015635c
test al, 1
jne 0x10156358
imul eax, ecx
mov dword [esi + edi + 0x5a8f8], eax
jmp 0x10156363
mov ecx, edi
call fcn.10131be0
and eax, 7
movsx ecx, byte [eax + str.50132467]
sub ecx, 0x30
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a910], ecx
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x101530ce
call fcn.10131be0
movzx ecx, ax
jmp 0x101530d5
call fcn.10131c40
mov ecx, eax
and ecx, 7
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a914], ecx
jmp case.0x101561e4.61444
lea eax, [edx - 2]
cmp eax, 0x3ffd
ja case.0x101561e4.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 + 0x14], eax
imul eax, dword [esp + 0x28], 0x4208
push 4
push esi
mov dword [esp + 0x14], eax
call fcn.10166910
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], 0
mov dword [ecx + edi + 0x5a938], eax
mov dword [ecx + edi + 0x5a93c], esi
test esi, esi
je 0x10153165
mov ecx, edi
call fcn.10131c40
mov edx, dword [esp + 0xc]
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 0x10153143
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x14]
push 0
cdq
mov esi, dword [ecx]
push edx
push eax
call dword [esi + 0xc]
mov ecx, edi
call fcn.10131c40
imul ecx, dword [esp + 0x28], 0x4208
mov dword [ecx + edi + 0x5a918], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x4c], 0
je 0x101531ba
cmp esi, 0xb
jne 0x101531ba
cmp dword [esp + 0x1c], 3
jne 0x101531ba
mov ecx, edi
call fcn.10131be0
mov word [edi + 0xd30], ax
jmp case.0x101561e4.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.1027d010
add esp, 0xc
test eax, eax
je 0x10153250
push 5
push str.dcraw
push esi
call fcn.1027d010
add esp, 0xc
test eax, eax
je 0x10153250
push 5
push str.UFRaw
push esi
call fcn.1027d010
add esp, 0xc
test eax, eax
je 0x10153250
push 6
push str.Bibble
push esi
call fcn.1027d010
add esp, 0xc
test eax, eax
je 0x10153250
mov eax, str.Digital_Photo_Professional
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10153243
test cl, cl
je 0x1015323f
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10153243
add esi, 2
add eax, 2
test cl, cl
jne 0x10153223
xor eax, eax
jmp 0x10153248
sbb eax, eax
or eax, 1
test eax, eax
jne case.0x101561e4.61444
mov dword [edi + 0x184], 0
jmp case.0x101561e4.61444
push 0
mov ecx, edi
call fcn.10131cc0
jmp case.0x101561e4.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.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x101532ad
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a928], ecx
jmp case.0x101561e4.61444
call fcn.10131c40
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a928], ecx
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x101532ed
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a91c], ecx
jmp case.0x101561e4.61444
call fcn.10131c40
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a91c], ecx
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x1015332d
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a920], ecx
jmp case.0x101561e4.61444
call fcn.10131c40
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a920], ecx
jmp case.0x101561e4.61444
cmp edx, 1
jbe 0x10153360
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x3c], edx
jmp 0x1015336f
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x3c], 0
mov esi, dword [esp + 0x10]
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a90c], ecx
cmp esi, 1
jne 0x101533a4
mov dword [eax + edi + 0x5a920], 0
mov dword [eax + edi + 0x5a91c], 0
jmp case.0x101561e4.61444
cmp esi, 4
jne case.0x101561e4.61444
mov dword [edi + 0x83dac], 0x10160020
mov dword [edi + 0x184], 5
jmp case.0x101561e4.61444
cmp edx, 1
jbe 0x101533de
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x3c], edx
jmp 0x101533ed
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x3c], 0
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a918], ecx
jmp case.0x101561e4.61444
mov ecx, 0x102b4364
lea eax, [edi + 0x104]
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10153430
test dl, dl
je 0x1015342c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10153430
add eax, 2
add ecx, 2
test dl, dl
jne 0x10153410
xor eax, eax
jmp 0x10153435
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10153487
mov esi, dword [esp + 0x28]
imul eax, esi, 0x4208
cmp dword [eax + edi + 0x5a8f8], 0xf20
jne 0x10153487
mov ecx, edi
mov dword [edi + 0x83dac], 0x10160cb0
call fcn.10131c40
add eax, dword [ebp + 8]
inc esi
mov dword [edi + 0x54880], eax
mov dword [edi + 0x54884], 0
mov dword [esp + 0x28], esi
cmp esi, 0xa
jae 0x1015700e
jmp case.0x101561e4.61444
push 0xa
lea eax, [edi + 0xc4]
push str.Hasselblad
push eax
call fcn.1027d010
add esp, 0xc
test eax, eax
jne 0x101534e0
cmp dword [edi + 0x548c0], eax
je 0x101534e0
mov eax, dword [edi + 0x54800]
mov esi, dword [edi + 0x54800]
mov ecx, esi
push 0
mov eax, dword [eax]
mov edi, dword [esi]
mov eax, dword [eax + 0x10]
call eax
add eax, 4
mov ecx, esi
adc edx, 0
push edx
push eax
call dword [edi + 0xc]
mov eax, dword [esp + 0x30]
mov ecx, eax
mov esi, dword [eax + 0x54800]
jmp 0x1015619c
mov eax, dword [esp + 0x10]
cmp eax, 0x3e8
jbe 0x101534f2
mov eax, 0x3e8
jmp 0x10153500
test eax, eax
je 0x1015356d
nop word [eax + eax]
mov ecx, dword [edi + 0x54800]
dec eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x70], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x30]
push 0
mov dword [esp + 0x18], eax
mov edi, dword [esi]
call fcn.10131c40
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x30]
mov ecx, edi
push esi
call fcn.10152080
test eax, eax
jne case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
push eax
mov eax, dword [esp + 0x18]
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 0x10153500
dec eax
mov dword [esp + 0x70], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x1015359c
call fcn.10131be0
movzx ecx, ax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a924], ecx
jmp case.0x101561e4.61444
call fcn.10131c40
mov ecx, eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [eax + edi + 0x5a924], ecx
jmp case.0x101561e4.61444
mov dword [edi + 0xc4], 0x6e726153
mov dword [edi + 0xc8], 0x66666f
mov dword [edi + 0x24f58], 0xfff
jmp case.0x101561e4.61444
cmp esi, 0xc516
ja 0x10154656
je 0x10154757
cmp esi, 0x8769
ja 0x10153ddd
je 0x10153dac
cmp esi, 0x74c8
ja 0x10153a51
je 0x10153a09
cmp esi, 0x7221
ja 0x10153847
je 0x10153837
cmp esi, 0x7010
ja 0x10153806
je 0x10153779
cmp esi, 0x202
je case.0x101561e4.61448
cmp esi, 0x2bc
je 0x10153714
cmp esi, 0x2009
jne case.0x101561e4.61444
mov eax, dword [edi + 0x548e8]
cmp eax, 4
je 0x1015366c
cmp eax, 5
jne case.0x101561e4.61444
movaps xmm0, xmmword [0x102c61b0]
cmp edx, 8
mov eax, edx
mov word [edi + 0xd32], dx
mov ecx, 8
cmova eax, ecx
xor esi, esi
mov dword [esp + 0x18], eax
movups xmmword [esp + 0x128], xmm0
movaps xmm0, xmmword [0x102c61d0]
movups xmmword [esp + 0x138], xmm0
test eax, eax
jle case.0x101561e4.61444
nop dword [eax]
movd xmm1, dword [edi + 0x548ec]
movss xmm2, dword [0x102c6154]
movsd xmm0, qword [0x103efac0]
cvtdq2ps xmm1, xmm1
subss xmm2, xmm1
cvtps2pd xmm1, xmm2
call fcn.1027dc40
cvtsd2ss xmm0, xmm0
mov ecx, edi
movss dword [esp + 0x14], xmm0
call fcn.10131be0
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [esp + esi*4 + 0x128]
inc esi
divss xmm0, dword [esp + 0x14]
movss dword [edi + eax*4 + 0xd34], xmm0
cmp esi, dword [esp + 0x18]
jl 0x101536b0
jmp case.0x101561e4.61444
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x10153730
cmp eax, 2
je 0x10153730
cmp eax, 6
je 0x10153730
cmp eax, 7
jne case.0x101561e4.61444
lea eax, [edx - 2]
cmp eax, 0x4dd1dd
ja case.0x101561e4.61444
lea eax, [edx + 1]
mov ecx, edi
push eax
mov dword [edi + 0x1e8], eax
call fcn.1016c170
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.0x101561e4.61444
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.10131be0
shr eax, 2
and eax, 0xfff
mov dword [esp + esi*4 + 0xe4], eax
inc esi
cmp esi, 4
jl 0x10153780
xor ecx, ecx
mov dword [esp + 0xc], ecx
nop dword [eax]
nop word [eax + eax]
mov eax, dword [esp + ecx*4 + 0xe0]
mov edx, dword [esp + ecx*4 + 0xe4]
inc eax
cmp eax, edx
ja 0x101537f7
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 0x101537e0
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp ecx, 5
jl 0x101537b0
jmp case.0x101561e4.61444
sub esi, 0x7200
je 0x10153827
sub esi, 1
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x5c], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x54], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x64], eax
jmp case.0x101561e4.61444
cmp esi, 0x7310
ja 0x1015391c
je 0x101538bf
cmp esi, 0x7250
je 0x1015389f
cmp esi, 0x7303
jne case.0x101561e4.61444
xor esi, esi
nop dword [eax + eax]
mov ecx, edi
call fcn.10131be0
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 0x10153870
jmp case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push eax
mov ecx, edi
call fcn.1014fc40
xor eax, eax
mov word [edi + 0x12], ax
jmp case.0x101561e4.61444
xor esi, esi
mov ecx, edi
call fcn.10131be0
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 0x101538c1
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 0x101538f1
mov edi, dword [esp + 0x30]
mov eax, 4
sub dword [edx], ecx
lea edx, [edx + 4]
sub eax, 1
jne 0x10153907
mov dword [edi + 0x24f50], ecx
jmp case.0x101561e4.61444
cmp esi, 0x7313
je 0x10153978
cmp esi, 0x74c7
jne case.0x101561e4.61444
cmp edx, 2
jne case.0x101561e4.61444
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov ecx, edi
mov word [edi + 0xc0a], ax
call fcn.10131c40
mov word [edi + 0xc0c], ax
jmp case.0x101561e4.61444
lea esi, [edi + 0x24ff4]
mov dword [esp + 0xc], 4
mov ecx, edi
call fcn.10131be0
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x10153986
movss xmm0, dword [edi + 0x24ff8]
movss xmm1, dword [0x102a49ac]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101539da
movss xmm0, dword [edi + 0x24ffc]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x101539da
mov eax, 0x25000
lea ecx, [eax - 4]
jmp 0x101539e4
mov eax, 0x24ff8
mov ecx, 0x24ff4
movss xmm2, dword [eax + edi]
addss xmm2, dword [ecx + edi]
movaps xmm0, xmm2
subss xmm0, dword [eax + edi]
subss xmm2, xmm0
movss dword [eax + edi], xmm0
movss dword [ecx + edi], xmm2
jmp case.0x101561e4.61444
cmp edx, 2
jne case.0x101561e4.61444
push 4
lea eax, [edi + 0xc4]
push str.SONY
push eax
call fcn.102844b6
add esp, 0xc
test eax, eax
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov ecx, edi
mov word [edi + 0xc0e], ax
call fcn.10131c40
mov word [edi + 0xc10], ax
jmp case.0x101561e4.61444
cmp esi, 0x829a
ja 0x10153bf7
je 0x10153bc4
cmp esi, 0x828d
ja 0x10153b52
je 0x10153b21
cmp esi, 0x7800
je 0x10153a88
cmp esi, 0x827d
jmp 0x10156bd2
lea eax, [edi + 0x25044]
mov dword [esp + 0x44], 3
mov dword [esp + 0x24], eax
nop word [eax + eax]
xorps xmm0, xmm0
mov dword [esp + 0x2c], 3
movss dword [esp + 0xc], xmm0
mov esi, eax
mov ecx, edi
call fcn.10131be0
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [esp + 0x2c], 1
addss xmm0, dword [esp + 0xc]
movaps xmm1, xmm0
movss dword [esp + 0xc], xmm1
jne 0x10153ab3
cvtps2pd xmm0, xmm1
comisd xmm0, xmmword [0x102c6000]
jbe 0x10153b0a
mov eax, dword [esp + 0x24]
mov ecx, 3
movss xmm0, dword [eax]
lea eax, [eax + 4]
divss xmm0, xmm1
movss dword [eax - 4], xmm0
sub ecx, 1
jne 0x10153af5
mov eax, dword [esp + 0x24]
add eax, 0x10
sub dword [esp + 0x44], 1
mov dword [esp + 0x24], eax
jne 0x10153aa0
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
cmp ax, 6
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
cmp ax, 6
jne case.0x101561e4.61444
mov dword [edi + 0x194], 9
jmp case.0x101561e4.61444
sub esi, 0x828e
je 0x10153b94
sub esi, 2
jne case.0x101561e4.61444
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x30]
push 0
mov edi, dword [esi]
call fcn.10131c40
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.10145c20
jmp case.0x101561e4.61444
cmp dword [edi + 0x194], 9
jne 0x10156bf1
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 0x10153ba3
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
imul eax, dword [esp + 0x28], 0x4208
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
movss dword [edi + 0x2a8dc], xmm0
movss dword [eax + edi + 0x5a940], xmm0
jmp case.0x101561e4.61444
cmp esi, 0x8602
ja 0x10153c71
je 0x10153c30
cmp esi, 0x829d
je 0x10153c1a
cmp esi, 0x85ff
je 0x10153c97
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2a8e0]
jmp case.0x101561e4.61444
xor esi, esi
mov ecx, edi
call fcn.10131be0
movzx eax, ax
test eax, eax
je 0x10153c66
movsd xmm1, qword [0x102c6118]
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 0x10153c32
jmp case.0x101561e4.61444
sub esi, 0x8603
je 0x10153cb2
sub esi, 3
jne case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
push eax
mov ecx, edi
call fcn.10150120
mov eax, dword [str.Leaf]
mov dword [edi + 0xc4], eax
mov al, byte [0x102b49a8]
mov byte [edi + 0xc8], al
jmp case.0x101561e4.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.1027d010
add esp, 0xc
test eax, eax
jne case.0x101561e4.61444
mov dword [edi + 0x54834], eax
mov dword [esp + 0x24], eax
lea eax, [edi + 0x25074]
mov dword [edi + 0x190], 4
mov dword [esp + 0x2c], eax
nop
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 0x103e7adc
call dword [edx + 0x20]
inc esi
cmp esi, 4
jl 0x10153d02
cmp dword [edi + 0xe94], 0
mov edx, dword [esp + 0x2c]
je 0x10153d8c
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 0x10153d41
movsd xmm2, qword [0x103efa68]
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 0x10153d70
mov eax, dword [esp + 0x24]
add edx, 0x10
add eax, 4
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
cmp eax, 0xc
jl 0x10153d00
jmp case.0x101561e4.61444
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x30]
push 0
mov edi, dword [esi]
call fcn.10131c40
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.10143ef0
jmp case.0x101561e4.61444
cmp esi, 0x9400
ja 0x10154145
je 0x101540e5
cmp esi, 0x9205
ja 0x1015402c
je 0x10153fca
cmp esi, 0x8773
je case.0x1015488d.50831
cmp esi, 0x8825
je 0x10153e33
cmp esi, 0x9102
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov dword [edi + 0x54870], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov ecx, dword [edi + 0x54800]
mov esi, dword [ebp + 8]
add eax, esi
push 0
push 0
mov edx, dword [ecx]
push eax
mov dword [esp + 0x30], eax
call dword [edx + 0xc]
mov ecx, edi
call fcn.10131be0
movzx eax, ax
test eax, eax
je 0x10153faa
dec eax
mov ecx, edi
mov dword [esp + 0x18], eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xd8]
push eax
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0xe4]
push eax
push esi
call fcn.10161570
mov edx, dword [esp + 0xd4]
cmp edx, 0x400
jbe 0x10153ebc
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0x98]
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x10153f9e
mov esi, dword [esp + 0xd8]
mov dword [esp + 0x14], esi
lea eax, [esi - 1]
cmp eax, 0x1c
ja case.0x10153eda.8
movzx eax, byte [eax + 0x1015727c]
jmp dword [eax*4 + 0x10157268]
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
shr esi, 1
mov dword [edi + esi*4 + 0x2a968], eax
jmp case.0x10153eda.8
mov eax, 0xaaaaaaab
mov dword [esp + 0xc], 6
mul esi
shr edx, 1
lea eax, [edx + edx*2]
lea esi, [eax*8 + 0x2a8f4]
add esi, edi
nop dword [eax]
mov ecx, edi
call fcn.10131c40
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
mov dword [esi - 4], eax
jne 0x10153f20
jmp case.0x10153eda.8
lea esi, [edi + 0x2a93c]
mov dword [esp + 0xc], 2
mov ecx, edi
call fcn.10131c40
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
mov dword [esi - 4], eax
jne 0x10153f44
jmp case.0x10153eda.8
mov ecx, dword [edi + 0x54800]
mov eax, 0xc
cmp edx, eax
cmovb eax, edx
mov esi, dword [ecx]
push eax
mov eax, 0xaaaaaaab
mul dword [esp + 0x18]
shr edx, 1
add edx, 0xaa4b
lea eax, [edi + edx*4]
push eax
call dword [esi + 0x1c]
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0x98]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x10153e65
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0x2c]
mov eax, dword [ecx]
call dword [eax + 0xc]
push esi
mov ecx, edi
call fcn.101457a0
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fmul qword [0x103efa18]
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
comiss xmm1, dword [0x102c6178]
ja 0x1015401c
movss xmm0, dword [0x102c61a8]
comiss xmm0, xmm1
ja 0x1015401c
movsd xmm0, qword [0x103efac0]
cvtps2pd xmm1, xmm1
call fcn.1027dc40
cvtsd2ss xmm0, xmm0
movss dword [edi + 0x200], xmm0
jmp case.0x101561e4.61444
xorps xmm0, xmm0
movss dword [edi + 0x200], xmm0
jmp case.0x101561e4.61444
sub esi, 0x920a
je 0x101540cf
sub esi, 7
je 0x101540a3
sub esi, 7
jne case.0x101561e4.61444
mov dword [edi + 0x54834], esi
lea esi, [edi + 0x25074]
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], 3
nop
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp st(0)
mov dword [esp + 0xc], 3
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [esi]
add esi, 4
sub dword [esp + 0xc], 1
jne 0x10154075
mov esi, dword [esp + 0x24]
add esi, 0x10
sub dword [esp + 0x2c], 1
mov dword [esp + 0x24], esi
jne 0x10154060
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x101540bf
call fcn.10131be0
movzx eax, ax
mov dword [edi + 0x2a8f0], eax
jmp case.0x101561e4.61444
call fcn.10131c40
mov dword [edi + 0x2a8f0], eax
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2a8e4]
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
movss xmm0, dword [edi + 0x2abec]
comiss xmm0, dword [0x102c61ac]
fstp dword [esp + 0x14]
movss xmm1, dword [esp + 0x14]
movss dword [edi + 0x2ac04], xmm1
jbe case.0x101561e4.61444
cmp dword [edi + 0x54850], 0x34353933
jne case.0x101561e4.61444
cmp dword [edi + 0x54854], 0x44
jne case.0x101561e4.61444
addss xmm0, xmm1
movss dword [edi + 0x2abec], xmm0
jmp case.0x101561e4.61444
cmp esi, 0xa010
ja 0x10154243
je 0x101541db
add esi, 0xffff6bff
cmp esi, 4
ja case.0x101561e4.61444
jmp dword [esi*4 + 0x1015729c]
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2ac08]
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2ac0c]
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2ac10]
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2ac14]
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2ac18]
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov dword [edi + 0x54878], eax
imul eax, dword [esp + 0x28], 0x4208
mov dword [edi + 0x5487c], 0
mov eax, dword [eax + edi + 0x5a904]
sub eax, 0x8002
je 0x10154234
sub eax, 2
je 0x10154225
sub eax, 1
jne case.0x101561e4.61444
mov dword [edi + 0x83dac], 0x1015db60
jmp case.0x101561e4.61444
mov dword [edi + 0x83dac], 0x1015d9c0
jmp case.0x101561e4.61444
mov dword [edi + 0x83dac], 0x1015e2c0
jmp case.0x101561e4.61444
cmp esi, 0xa431
ja 0x10154270
je case.0x1015488d.50735
cmp esi, 0xa405
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131be0
mov word [edi + 0x404], ax
jmp case.0x101561e4.61444
cmp esi, 0xb4c2
ja 0x10154398
je 0x101543cc
add esi, 0xffff5bce
cmp esi, 3
ja case.0x101561e4.61444
jmp dword [esi*4 + 0x101572b0]
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.10131ed0
fstp dword [edi + 0x1f0]
push esi
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x1f4]
push esi
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x1f8]
push esi
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x1fc]
jmp case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov esi, 0x80
cmp edx, esi
cmovb esi, edx
lea edx, [edi + 0x304]
test esi, esi
je case.0x101561e4.61444
mov eax, dword [ecx]
push 1
push esi
push edx
call dword [eax + 8]
mov byte [edi + esi + 0x303], 0
jmp case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov esi, 0x80
cmp edx, esi
cmovb esi, edx
lea edx, [edi + 0x204]
test esi, esi
je case.0x101561e4.61444
mov eax, dword [ecx]
push 1
push esi
push edx
call dword [eax + 8]
mov byte [edi + esi + 0x203], 0
jmp case.0x101561e4.61444
mov eax, dword [edi + 0x54800]
lea ecx, [edi + 0x284]
mov esi, 0x80
cmp edx, esi
cmovb esi, edx
test esi, esi
je 0x10154375
mov eax, dword [eax]
push 1
push esi
push ecx
mov ecx, dword [edi + 0x54800]
call dword [eax + 8]
lea ecx, [edi + 0x284]
mov byte [ecx + esi - 1], 0
push 4
push 0x102b4638
push ecx
call fcn.1027d010
add esp, 0xc
test eax, eax
jne case.0x101561e4.61444
mov byte [edi + 0x284], al
jmp case.0x101561e4.61444
sub esi, 0xb4c3
je 0x1015460d
sub esi, 4
jne case.0x101561e4.61444
mov esi, dword [esp + 0x6c]
test esi, esi
je case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x26
mov eax, dword [ecx]
call dword [eax + 0xc]
jmp 0x101543d0
mov esi, dword [esp + 0x6c]
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x28
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.10131c40
mov ecx, edi
mov word [edi + 0x12], ax
call fcn.10131c40
mov ecx, edi
mov word [edi + 0x10], ax
call fcn.10131c40
and eax, 7
mov ecx, edi
mov word [edi + 0x1a], ax
call fcn.10131c40
movzx ecx, word [edi + 0x12]
and eax, 7
sub cx, word [edi + 0x1a]
sub cx, ax
mov word [edi + 0x16], cx
mov ecx, edi
call fcn.10131c40
and eax, 7
mov ecx, edi
mov word [edi + 0x18], ax
call fcn.10131c40
movzx ecx, word [edi + 0x10]
and eax, 7
sub cx, word [edi + 0x18]
sub cx, ax
mov eax, 0x1c5e
mov word [edi + 0x14], cx
cmp word [edi + 0x12], ax
jne 0x1015447f
mov eax, 7
cmp esi, 0xdf76880
jne 0x10154474
mov dword [edi + 0x14], 0x1c301524
mov word [edi + 0x1a], ax
mov dword [edi + 0x194], 0
jmp 0x1015447f
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 + 0xc], 3
nop
mov ecx, edi
call fcn.10131c40
sub dword [esp + 0xc], 1
lea esi, [esi + 4]
mov dword [esp + 0x14], eax
movss xmm0, dword [esp + 0x14]
cvtps2pd xmm0, xmm0
cvtpd2ps xmm0, xmm0
movss dword [esi - 4], xmm0
jne 0x101544a0
mov ecx, dword [edi + 0x54800]
push 1
push 0
push 0x72
mov eax, dword [ecx]
call dword [eax + 0xc]
mov ecx, edi
call fcn.10131be0
movzx eax, ax
shr eax, 7
imul eax, eax, 0x5a
mov dword [edi + 0x30], eax
movzx edx, word [edi + 0x16]
mov dword [esp + 0x14], eax
mov esi, edx
movzx eax, word [edi + 0x14]
mov ecx, eax
mov edi, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], ecx
movzx ecx, cx
mov dword [esp + 0x24], ecx
mov ecx, esi
mov dword [esp + 0x2c], ecx
movzx ecx, di
mov edi, dword [esp + 0x30]
mov dword [esp + 0x44], ecx
mov ecx, edx
imul ecx, eax
lea ecx, [ecx + ecx*2]
add ecx, ecx
cmp ecx, dword [esp + 0x6c]
jne 0x1015459a
mov ecx, edx
xor edx, edx
mov dword [esp + 0x2c], ecx
movzx ecx, ax
mov eax, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x14]
div dword [esp + 0xdc]
cmp edx, 0x5a
jne 0x1015456c
mov eax, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esp + 0x24]
mov word [edi + 0x16], ax
mov word [edi + 0x14], si
movzx eax, ax
movzx edx, dx
jmp 0x10154574
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xc]
mov word [edi + 0x12], ax
xor eax, eax
mov word [edi + 0x10], cx
mov dword [edi + 0x30], 0
mov dword [edi + 0x194], 0
mov dword [edi + 0x18], eax
movzx eax, dx
movzx ecx, cx
jmp 0x101545a2
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x44]
movzx eax, ax
movzx ecx, cx
imul ecx, eax
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea eax, [edi + 0x104]
push str.Ixpress__d_Mp
push eax
call fcn.10007060
add esp, 0xc
mov dword [edi + 0x83dac], 0x101398e0
cmp dword [edi + 0x194], 0
je 0x101545fe
test byte [edi + 0x1a], 1
je 0x101545f4
mov dword [edi + 0x194], 0x61616161
mov dword [edi + 0x83dac], fcn.10162370
mov dword [edi + 0x24f58], 0xffff
jmp case.0x101561e4.61444
mov eax, dword [str.Imacon]
mov dword [edi + 0xc4], eax
mov ax, word [0x102b49b0]
mov word [edi + 0xc8], ax
mov al, byte [0x102b49b2]
mov byte [edi + 0xca], al
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [edi + 0x54880], eax
mov eax, dword [esp + 0x10]
mov dword [edi + 0x54884], edx
mov dword [esp + 0x6c], eax
jmp case.0x101561e4.61444
cmp esi, 0xc612
ja 0x10154865
je 0x10154815
sub esi, 0xc517
je 0x10154757
sub esi, 3
je 0x1015471d
sub esi, 1
jne case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
movzx eax, word [edi + 0x54860]
mov dword [esp + 0x18], eax
mov dword [edi + 0x548c0], 1
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0xc], eax
mov ecx, edi
mov eax, dword [edi + 0x54858]
mov dword [esp + 0x14], eax
call fcn.10131be0
mov ecx, edi
mov word [edi + 0x54860], ax
call fcn.10131be0
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x30]
push 0
mov edi, dword [esi]
call fcn.10131c40
add eax, dword [esp + 0x10]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [esp + 0xc]
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.10152080
mov eax, dword [esp + 0x14]
mov dword [edi + 0x54858], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 0x24f58], 0xffff
mov word [edi + 0x54860], ax
jmp case.0x101561e4.61444
cmp byte [edi + 0xc4], 0
jne case.0x101561e4.61444
movq xmm0, qword [str.Hasselblad]
movq qword [edi + 0xc4], xmm0
mov ax, word [0x102b4444]
mov word [edi + 0xcc], ax
mov al, byte [0x102b4446]
mov byte [edi + 0xce], al
jmp case.0x101561e4.61444
lea eax, [edx - 1]
cmp eax, 0x270fff
ja case.0x101561e4.61444
push edx
mov ecx, edi
call fcn.1016c170
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
je case.0x101561e4.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 0x10157025
mov ecx, dword [esp + 0xc]
lea eax, [ecx + esi]
mov byte [eax - 1], 0
mov dword [esp + 0x14], eax
lea esi, [ecx - 1]
test esi, esi
je 0x10154808
nop
cmp esi, eax
jae 0x10154804
push 8
inc esi
push str.Neutral
push esi
call fcn.1027d010
add esp, 0xc
test eax, eax
jne 0x101547ef
lea eax, [edi + 0x24ffc]
push eax
lea eax, [edi + 0x24ff8]
push eax
lea eax, [edi + 0x24ff4]
push eax
lea eax, [esi + 8]
push 0x102b49d0
push eax
call fcn.1001c660
add esp, 0x14
push 0xa
push esi
call fcn.1026c230
mov esi, eax
add esp, 8
mov eax, dword [esp + 0x14]
test esi, esi
jne 0x101547b0
mov ecx, dword [esp + 0xc]
push ecx
mov ecx, edi
call fcn.10168850
jmp case.0x101561e4.61444
mov esi, 4
nop word [eax + eax]
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 ecx, eax
mov dword [edi + 0x188], ecx
sub esi, 1
jne 0x10154820
cmp byte [edi + 0xc4], 0
jne 0x10154856
mov dword [edi + 0xc4], 0x474e44
mov dword [edi + 0x184], 1
jmp case.0x101561e4.61444
cmp esi, 0xc714
ja 0x10156056
je 0x10156103
lea eax, [esi - 0xc614]
cmp eax, 0x7b
ja case.0x101561e4.61444
movzx eax, byte [eax + 0x10157330]
jmp dword [eax*4 + 0x101572c0]
mov ecx, dword [edi + 0x54800]
mov esi, 0x40
cmp edx, esi
cmovb esi, edx
lea edx, [edi + 0xd74]
test esi, esi
je case.0x101561e4.61444
mov eax, dword [ecx]
push 1
push esi
push edx
call dword [eax + 8]
mov byte [edi + esi + 0xd73], 0
jmp case.0x101561e4.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.0x101561e4.61444
mov esi, dword [edi + 0x54800]
mov ecx, 0x40
cmp edx, ecx
cmovb ecx, edx
lea edx, [edi + 0x25140]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x10154928
mov eax, dword [esi]
push 1
push ecx
push edx
mov ecx, esi
call dword [eax + 8]
mov ecx, dword [esp + 0x14]
lea edx, [edi + 0x25140]
mov byte [edx + ecx - 1], 0
lea esi, [edi + 0x104]
mov byte [edi + 0x2517f], 0
cmp byte [esi], 0
jne case.0x101561e4.61444
push ecx
push edx
lea eax, [edi + 0xc4]
push eax
call fcn.1027d870
lea eax, [edi + 0xc4]
push 0x20
push eax
call fcn.1026c230
mov edx, eax
add esp, 0x14
test edx, edx
je case.0x101561e4.61444
lea ecx, [edx + 1]
sub esi, ecx
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x10154970
mov byte [edx], al
jmp case.0x101561e4.61444
cmp dword [edi + 0x194], 9
je case.0x101561e4.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 + 0x74], edx
lea edx, [esp + 0x54]
push 1
push edx
call dword [eax + 8]
lea edx, [edi + 0x190]
jmp 0x10156cee
mov ecx, edi
call fcn.10131be0
cmp ax, 2
jne case.0x101561e4.61444
mov eax, 1
mov word [edi + 0x5483e], ax
jmp case.0x101561e4.61444
imul esi, dword [esp + 0x28], 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.1013c190
jmp case.0x101561e4.61444
imul esi, dword [esp + 0x28], 0x4208
mov ecx, edi
or dword [esi + edi + 0x5aaac], 0x20
call fcn.10131be0
movzx eax, ax
mov ecx, edi
mov dword [edi + 0x20f48], eax
mov dword [esi + edi + 0x5aac0], eax
call fcn.10131be0
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.0x101561e4.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.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
mov esi, 0x40
cmp edx, esi
cmovb esi, edx
lea edx, [edi + 0x25180]
test esi, esi
je case.0x101561e4.61444
mov eax, dword [ecx]
push 1
push esi
push edx
call dword [eax + 8]
mov byte [edi + esi + 0x2517f], 0
jmp case.0x101561e4.61444
xor esi, esi
xorps xmm0, xmm0
movsd qword [esp + 0x38], xmm0
test edx, edx
je case.0x101561e4.61444
fld qword [esp + 0x38]
fstp qword [esp + 0x78]
cmp esi, 0x10000
jge 0x10154b28
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fadd qword [esp + 0x78]
mov edx, dword [esp + 0x10]
inc esi
fst qword [esp + 0x78]
fstp qword [esp + 0x38]
cmp esi, edx
jb 0x10154b00
test edx, edx
je case.0x101561e4.61444
movsd xmm1, qword [esp + 0x38]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
shr edx, 0x1f
mov eax, dword [edi + 0x24f50]
addsd xmm0, qword [edx*8 + 0x103f0390]
divsd xmm1, xmm0
movd xmm0, eax
addsd xmm1, qword [0x103efa18]
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movsd qword [esp + 0x38], xmm1
addsd xmm0, qword [eax*8 + 0x103f0390]
addsd xmm0, xmm1
call fcn.1026ad30
imul esi, dword [esp + 0x28], 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 + 0x103f0390]
addsd xmm0, qword [esp + 0x38]
call fcn.1026ad30
or dword [esi + edi + 0x5aaac], 0x20
mov dword [esi + edi + 0x5eac8], eax
jmp case.0x101561e4.61444
imul esi, dword [esp + 0x28], 0x4208
mov ecx, edi
or dword [esi + edi + 0x5aaac], 0x40
cmp dword [esp + 0x1c], 3
jne 0x10154bea
call fcn.10131be0
movzx eax, ax
jmp 0x10154bef
call fcn.10131c40
mov dword [edi + 0x24f58], eax
mov dword [esi + edi + 0x5eacc], eax
cmp dword [esi + edi + 0x5a914], 1
jle case.0x101561e4.61444
mov eax, 1
mov dword [esp + 0xc], eax
cmp dword [edi + 0x190], eax
jle case.0x101561e4.61444
mov esi, dword [esp + 0x10]
cmp eax, 4
jge case.0x101561e4.61444
cmp eax, esi
jae case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x10154c47
call fcn.10131be0
movzx edx, ax
jmp 0x10154c4e
call fcn.10131c40
mov edx, eax
imul ecx, dword [esp + 0x28], 0x1082
mov eax, dword [esp + 0xc]
add ecx, eax
inc eax
mov dword [esp + 0xc], eax
mov dword [edi + ecx*4 + 0x5eacc], edx
cmp eax, dword [edi + 0x190]
jl 0x10154c23
jmp case.0x101561e4.61444
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.10131ed0
fstp dword [esp + 0x14]
push esi
mov ecx, edi
call fcn.10131ed0
movss xmm0, dword [esp + 0x14]
movss xmm2, dword [0x102c5f94]
comiss xmm0, xmm2
fstp dword [esp + 0x18]
jbe case.0x101561e4.61444
movss xmm1, dword [esp + 0x18]
comiss xmm1, xmm2
jbe case.0x101561e4.61444
divss xmm0, xmm1
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x102c6078]
movsd qword [edi + 0x28], xmm0
jbe case.0x101561e4.61444
movsd xmm1, qword [0x102c6080]
comisd xmm1, xmm0
jbe case.0x101561e4.61444
movsd xmm0, qword [0x103efa68]
movsd qword [edi + 0x28], xmm0
jmp case.0x101561e4.61444
cmp edx, 2
jne case.0x101561e4.61444
imul eax, dword [esp + 0x28], 0x4208
mov ecx, edi
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0x10], eax
or dword [eax + edi + 0x5aaac], 0x200
call fcn.10131ed0
mov ecx, dword [esp + 0xc]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x14], eax
push esi
fldcw word [esp + 0x18]
fistp qword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov dword [ecx + edi + 0x5eadc], eax
mov ecx, edi
fldcw word [esp + 0x14]
call fcn.10131ed0
mov esi, dword [esp + 0xc]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x14], eax
push 4
push str.SONY
fldcw word [esp + 0x1c]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov dword [esi + edi + 0x5eae0], eax
lea eax, [edi + 0xc4]
push eax
fldcw word [esp + 0x1c]
call fcn.102844b6
add esp, 0xc
test eax, eax
jne case.0x101561e4.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.0x101561e4.61444
cmp edx, 2
jne case.0x101561e4.61444
imul eax, dword [esp + 0x28], 0x4208
mov ecx, edi
mov esi, dword [esp + 0x1c]
push esi
mov dword [esp + 0x10], eax
or dword [eax + edi + 0x5aaac], 0x400
call fcn.10131ed0
mov ecx, dword [esp + 0xc]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x14], eax
push esi
fldcw word [esp + 0x18]
fistp qword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov dword [ecx + edi + 0x5eae4], eax
mov ecx, edi
fldcw word [esp + 0x14]
call fcn.10131ed0
mov esi, dword [esp + 0xc]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x14], eax
push 4
push str.SONY
fldcw word [esp + 0x1c]
fistp qword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov dword [esi + edi + 0x5eae8], eax
lea eax, [edi + 0xc4]
push eax
fldcw word [esp + 0x1c]
call fcn.102844b6
add esp, 0xc
test eax, eax
jne case.0x101561e4.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.0x101561e4.61444
imul esi, dword [esp + 0x28], 0x4208
mov ecx, edi
call fcn.10131be0
or dword [esi + edi + 0x5a95c], 2
mov word [esi + edi + 0x5a960], ax
jmp case.0x101561e4.61444
imul esi, dword [esp + 0x28], 0x4208
mov ecx, edi
call fcn.10131be0
or dword [esi + edi + 0x5aa04], 2
mov word [esi + edi + 0x5aa08], ax
jmp case.0x101561e4.61444
xor edx, edx
cmp esi, 0xc621
setne dl
imul ecx, dword [esp + 0x28], 0x4208
imul eax, edx, 0xa8
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
add eax, ecx
xor ecx, ecx
mov dword [esp + 0x24], ecx
or dword [eax + edi + 0x5a95c], 4
cmp dword [edi + 0x190], ecx
jle 0x10154f9e
lea esi, [esp + 0x228]
nop
cmp ecx, 4
jge 0x10154f9e
lea eax, [edx*8]
mov dword [esp + 0xc], 3
sub eax, edx
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x14]
lea eax, [eax + eax*2]
lea eax, [eax + 0x16a69]
lea eax, [ecx + eax*4]
add eax, edi
mov dword [esp + 0x58], eax
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
mov eax, dword [esp + 0x58]
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
movsd qword [esi], xmm0
add esi, 8
cvtpd2ps xmm0, xmm0
movss dword [eax], xmm0
add eax, 4
sub dword [esp + 0xc], 1
mov dword [esp + 0x58], eax
jne 0x10154f53
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x24], ecx
cmp ecx, dword [edi + 0x190]
jl 0x10154f20
mov dword [esp + 0x58], 1
jmp case.0x101561e4.61444
xor eax, eax
cmp esi, 0xc623
setne al
imul ecx, dword [esp + 0x28], 0x4208
mov dword [esp + 0x14], eax
xor edx, edx
imul eax, eax, 0xa8
mov dword [esp + 0x24], edx
add ecx, edi
or dword [eax + ecx + 0x5a95c], 8
mov ecx, dword [edi + 0x190]
test ecx, ecx
jle case.0x101561e4.61444
xor esi, esi
mov eax, ecx
test ecx, ecx
jle 0x10155054
nop
mov eax, ecx
cmp esi, 4
jge 0x10155050
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
mov eax, dword [esp + 0x24]
imul ecx, dword [esp + 0x14], 0x2a
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
lea edx, [eax*4]
lea eax, [edx + esi]
movsd qword [esp + eax*8 + 0x1a8], xmm0
imul eax, dword [esp + 0x28], 0x1082
cvtpd2ps xmm0, xmm0
add eax, edx
add ecx, eax
add ecx, esi
inc esi
movss dword [edi + ecx*4 + 0x5a964], xmm0
mov eax, dword [edi + 0x190]
mov ecx, eax
cmp esi, eax
jl 0x10154ff0
mov edx, dword [esp + 0x24]
inc edx
mov ecx, eax
mov dword [esp + 0x24], edx
cmp edx, eax
jl 0x10154fe6
jmp case.0x101561e4.61444
imul eax, dword [esp + 0x28], 0x4208
xor esi, esi
or dword [eax + edi + 0x5aaac], 0x10
cmp dword [edi + 0x190], esi
jle case.0x101561e4.61444
cmp esi, 4
jge case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
imul eax, dword [esp + 0x28], 0x1082
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + esi*8 + 0x188], xmm0
cvtpd2ps xmm0, xmm0
add eax, esi
inc esi
movss dword [edi + eax*4 + 0x5eaf0], xmm0
cmp esi, dword [edi + 0x190]
jl 0x10155082
jmp case.0x101561e4.61444
xor esi, esi
cmp dword [edi + 0x190], esi
jle case.0x101561e4.61444
nop dword [eax]
cmp esi, 4
jge case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp qword [esp + esi*8 + 0x168]
inc esi
cmp esi, dword [edi + 0x190]
jl 0x101550e0
jmp case.0x101561e4.61444
mov esi, dword [esp + 0x1c]
mov ecx, edi
push esi
call fcn.10131ed0
fstp qword [esp + 0xf8]
push esi
mov ecx, edi
call fcn.10131ed0
movsd xmm0, qword [0x103efa68]
lea eax, [esp + 0xf8]
subsd xmm0, qword [esp + 0xf8]
fstp qword [esp + 0x100]
mov ecx, 0x102c6570
subsd xmm0, qword [esp + 0x100]
movsd qword [esp + 0x108], 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, 0x102c657c
jl 0x10155160
jmp case.0x101561e4.61444
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fstp dword [edi + 0x2938c]
jmp case.0x101561e4.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 + 0x44], eax
movzx eax, word [edi + 0x54860]
push 6
mov esi, dword [ecx]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x12c]
push 1
push eax
mov dword [esp + 0x38], edx
call dword [esi + 8]
mov ecx, str.Adobe
lea eax, [esp + 0x128]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10155201
test dl, dl
je 0x101551fd
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10155201
add eax, 2
add ecx, 2
test dl, dl
jne 0x101551e1
xor eax, eax
jmp 0x10155206
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10155e97
mov ecx, dword [esp + 0x44]
mov eax, 0x4d4d
mov esi, dword [esp + 0x10]
add ecx, 6
mov word [edi + 0x54860], ax
mov eax, dword [esp + 0x2c]
adc eax, 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
cmp esi, 0xe
jb 0x10155e2b
nop dword [eax]
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x128]
push 4
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
add dword [esp + 0x24], 8
lea eax, [esp + 0x128]
push 4
adc dword [esp + 0x24], 0
push str.MakN
push eax
call fcn.1027d010
add esp, 0xc
test eax, eax
je 0x101552a5
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
sbb eax, edx
add ecx, 8
adc eax, 0
js 0x10155240
jg 0x10155e2f
cmp ecx, esi
jbe 0x10155240
jmp 0x10155e2f
mov ecx, edi
call fcn.10131c40
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.10131be0
mov ecx, edi
movzx esi, ax
call fcn.10131c40
mov edi, eax
mov eax, dword [esp + 0x30]
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 + 0x14], edx
mov eax, dword [esp + 0x24]
push 2
sub eax, edi
mov edi, dword [esp + 0x34]
push 0
add eax, 6
mov ecx, edi
push eax
call fcn.1014cfc0
mov eax, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [edi + 0x54800]
add eax, esi
push 0
adc edx, dword [esp + 0x18]
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 + 0x128]
push 4
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
push 4
lea eax, [esp + 0x12c]
push str.SR2
push eax
call fcn.1027d010
add esp, 0xc
test eax, eax
jne 0x10155e2b
mov eax, 0x4d4d
mov ecx, edi
mov word [edi + 0x54860], ax
call fcn.10131c40
mov ecx, edi
call fcn.10131be0
mov ecx, edi
movzx esi, ax
call fcn.10131c40
xor ecx, ecx
mov word [edi + 0x54860], si
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
sub ecx, eax
mov dword [esp + 0xc], 0
add ecx, 0xe
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], ecx
mov ecx, edi
call fcn.10131be0
movzx esi, ax
test esi, esi
je 0x10155e2b
nop dword [eax + eax]
lea eax, [esp + 0xbc]
mov ecx, edi
push eax
lea eax, [esp + 0xc4]
dec esi
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xa0]
push eax
push dword [esp + 0x20]
call fcn.10161570
mov eax, dword [esp + 0x94]
cmp eax, 0x7200
jne 0x10155407
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0xc], eax
jmp 0x1015542d
cmp eax, 0x7201
jne 0x1015541b
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x24], eax
jmp 0x1015542d
cmp eax, 0x7221
jne 0x1015542d
mov ecx, edi
call fcn.10131c40
mov dword [esp + 0x18], eax
mov ecx, dword [edi + 0x54800]
push 0
push 0
push dword [esp + 0xc4]
mov edx, dword [ecx]
call dword [edx + 0xc]
test esi, esi
jne 0x101553c0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x10155f4f
cmp eax, 0x9c4000
jae 0x10155e2b
add eax, 0x400
mov ecx, edi
push eax
call fcn.1016c170
mov dword [esp + 0x20], eax
test eax, eax
je 0x10155e2b
mov ecx, dword [edi + 0x54800]
mov edx, dword [esp + 0xc]
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 + 0x20]
push 1
push dword [esp + 0x28]
mov eax, dword [ecx]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
push ecx
push 1
shr eax, 2
mov ecx, edi
push eax
push esi
call fcn.10160e20
movzx ecx, byte [esi + 1]
mov edx, 0x4949
movzx eax, byte [esi]
cmp word [edi + 0x54860], dx
jne 0x101554da
shl ecx, 8
jmp 0x101554dd
shl eax, 8
or ecx, eax
mov eax, 2
mov dword [esp + 0x10], eax
test ecx, ecx
je 0x10155e23
movzx edx, byte [eax + esi + 1]
dec ecx
movzx eax, byte [eax + esi]
mov dword [esp + 0x78], ecx
movzx ecx, word [edi + 0x54860]
mov edi, 0x4949
cmp cx, di
jne 0x10155514
shl edx, 8
jmp 0x10155517
shl eax, 8
or edx, eax
mov eax, dword [esp + 0x10]
add eax, 2
mov dword [esp + 0x94], edx
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x10]
movzx esi, byte [eax + esi + 1]
mov eax, dword [esp + 0x20]
movzx eax, byte [edi + eax]
add edi, 2
mov dword [esp + 0x10], edi
mov edi, 0x4949
cmp cx, di
mov ecx, dword [esp + 0x10]
jne 0x10155585
mov edi, dword [esp + 0x10]
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x20]
movzx ecx, byte [ecx + eax + 3]
movzx eax, byte [edi + eax + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x20]
shl ecx, 8
movzx eax, byte [edi + eax + 1]
or ecx, eax
mov eax, dword [esp + 0x20]
movzx eax, byte [edi + eax]
jmp 0x101555bb
shl eax, 8
or esi, eax
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
movzx ecx, byte [ecx + eax + 1]
movzx eax, byte [edi + eax]
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x20]
shl ecx, 8
movzx eax, byte [edi + eax + 2]
or ecx, eax
mov eax, dword [esp + 0x20]
movzx eax, byte [edi + eax + 3]
add dword [esp + 0x10], 4
mov edi, dword [esp + 0x30]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x18], esi
cmp esi, 0xe
mov dword [esp + 0x98], esi
mov dword [esp + 0xc0], ecx
sbb eax, eax
and eax, esi
movsx eax, byte [eax + str.11124811248484]
sub eax, 0x30
imul eax, ecx
cmp eax, 4
jbe 0x10155679
movzx eax, word [edi + 0x54860]
mov ecx, 0x4949
mov esi, dword [esp + 0x20]
cmp ax, cx
mov eax, dword [esp + 0x10]
jne 0x10155645
movzx ecx, byte [eax + esi + 3]
movzx eax, byte [eax + esi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 8
movzx eax, byte [eax + esi + 1]
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 8
movzx eax, byte [eax + esi]
or ecx, eax
mov eax, dword [esp + 0x10]
sub ecx, dword [esp + 0xc]
jmp 0x1015567f
movzx ecx, byte [eax + esi]
movzx eax, byte [eax + esi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 8
movzx eax, byte [eax + esi + 2]
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 8
movzx eax, byte [eax + esi + 3]
or ecx, eax
mov eax, dword [esp + 0x10]
sub ecx, dword [esp + 0xc]
jmp 0x1015567f
mov eax, dword [esp + 0x10]
mov ecx, eax
cmp ecx, dword [esp + 0x24]
ja 0x10155e1f
add eax, 4
mov dword [esp + 0x10], eax
cmp edx, 0x7820
ja 0x101558a3
je 0x10155843
cmp edx, 0x7480
ja 0x101557d6
je 0x10155843
sub edx, 0x7302
je 0x10155784
sub edx, 0x10
jne case.default.0x101558b2
movzx eax, word [edi + 0x54860]
xor esi, esi
mov edx, dword [esp + 0x20]
mov edi, 0x4949
mov dword [esp + 0x14], eax
add edx, ecx
movzx eax, byte [edx + 1]
movzx ecx, byte [edx]
cmp word [esp + 0x14], di
jne 0x101556f4
shl eax, 8
jmp 0x101556f7
shl ecx, 8
or eax, ecx
add edx, 2
mov dword [esp + esi*4 + 0xac], eax
inc esi
cmp esi, 4
jl 0x101556e1
mov ecx, dword [esp + 0xb0]
mov edi, dword [esp + 0x30]
cmp ecx, 0x400
jne 0x10155757
mov eax, dword [esp + 0xb4]
cmp eax, 0x400
jne 0x10155757
mov ecx, dword [esp + 0xb8]
lea edx, [esp + 0xb4]
lea esi, [esp + 0xb8]
mov dword [edx], ecx
mov dword [esi], eax
movups xmm0, xmmword [esp + 0xac]
movups xmmword [edi + 0x298b0], xmm0
jmp 0x10155e0b
mov eax, dword [esp + 0xac]
lea edx, [esp + 0xac]
lea esi, [esp + 0xb0]
mov dword [edx], ecx
mov dword [esi], eax
movups xmm0, xmmword [esp + 0xac]
movups xmmword [edi + 0x298b0], xmm0
jmp 0x10155e0b
mov esi, dword [esp + 0x20]
xor edx, edx
mov dword [esp + 0x18], edx
add esi, ecx
movzx ecx, byte [esi + 1]
mov edx, 0x4949
movzx eax, byte [esi]
cmp word [edi + 0x54860], dx
jne 0x101557aa
shl ecx, 8
jmp 0x101557ad
shl eax, 8
mov edx, dword [esp + 0x18]
or ecx, eax
xor eax, eax
cmp edx, 2
setl al
add esi, 2
xor eax, edx
inc edx
mov dword [esp + 0x18], edx
mov dword [edi + eax*4 + 0x298b0], ecx
cmp edx, 4
jl 0x10155790
jmp 0x10155e0b
add edx, 0xffff8b7f
cmp edx, 5
ja case.default.0x101558b2
jmp dword [edx*4 + 0x101573ac]
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x293b0]
add edx, ecx
mov dword [esp + 0x18], 3
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155817
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x1015581e
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [esp + 0x18], 1
jne 0x10155800
mov eax, dword [edi + 0x293b4]
mov dword [edi + 0x293bc], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x293a0]
add edx, ecx
mov dword [esp + 0x18], 3
nop word [eax + eax]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155877
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x1015587e
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [esp + 0x18], 1
jne 0x10155860
mov eax, dword [edi + 0x293a4]
mov dword [edi + 0x293ac], eax
jmp 0x10155e0b
add edx, 0xffff87df
cmp edx, 0xc
ja case.default.0x101558b2
jmp dword [edx*4 + 0x101573c4]
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29430]
add edx, ecx
mov dword [esp + 0x18], 3
nop dword [eax]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x101558e7
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x101558ee
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [esp + 0x18], 1
jne 0x101558d0
mov eax, dword [edi + 0x29434]
mov dword [edi + 0x2943c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x293c0]
mov dword [esp + 0x18], esi
add edx, ecx
mov dword [esp + 0x14], 3
nop dword [eax + eax]
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x1015594a
shl eax, 8
jmp 0x1015594d
shl ecx, 8
mov esi, dword [esp + 0x18]
or eax, ecx
add edx, 2
mov dword [esi], eax
add esi, 4
sub dword [esp + 0x14], 1
mov dword [esp + 0x18], esi
jne 0x10155930
mov eax, dword [edi + 0x293c4]
mov dword [edi + 0x293cc], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x293d0]
mov dword [esp + 0x14], esi
add edx, ecx
mov dword [esp + 0x18], 3
nop
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x101559aa
shl eax, 8
jmp 0x101559ad
shl ecx, 8
mov esi, dword [esp + 0x14]
or eax, ecx
add edx, 2
mov dword [esi], eax
add esi, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
jne 0x10155990
mov eax, dword [edi + 0x293d4]
mov dword [edi + 0x293dc], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x2a394]
mov dword [edi + 0x2a390], 0x458ca000
add edx, ecx
mov dword [esp + 0x14], 3
nop word [eax + eax]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155a17
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x10155a1e
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [esp + 0x14], 1
jne 0x10155a00
mov eax, dword [edi + 0x2a398]
mov dword [edi + 0x2a3a0], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29440]
mov dword [esp + 0x14], esi
add edx, ecx
mov dword [esp + 0x18], 3
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x10155a7e
shl eax, 8
jmp 0x10155a81
shl ecx, 8
mov esi, dword [esp + 0x14]
or eax, ecx
add edx, 2
mov dword [esi], eax
add esi, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
jne 0x10155a64
mov eax, dword [edi + 0x29444]
mov dword [edi + 0x2944c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29470]
mov dword [esp + 0x14], esi
add edx, ecx
mov dword [esp + 0x18], 3
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x10155add
shl eax, 8
jmp 0x10155ae0
shl ecx, 8
mov esi, dword [esp + 0x14]
or eax, ecx
add edx, 2
mov dword [esi], eax
add esi, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
jne 0x10155ac3
mov eax, dword [edi + 0x29474]
mov dword [edi + 0x2947c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29460]
add edx, ecx
mov dword [esp + 0x14], 3
nop
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155b37
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x10155b3e
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [esp + 0x14], 1
jne 0x10155b20
mov eax, dword [edi + 0x29464]
mov dword [edi + 0x2946c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29450]
add edx, ecx
mov dword [esp + 0x14], 3
nop word [eax + eax]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155b97
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x10155b9e
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
mov dword [esi], ecx
add esi, 4
sub dword [esp + 0x14], 1
jne 0x10155b80
mov eax, dword [edi + 0x29454]
mov dword [edi + 0x2945c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29490]
mov dword [esp + 0x14], esi
add edx, ecx
mov dword [esp + 0x18], 3
nop dword [eax + eax]
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x10155bfa
shl eax, 8
jmp 0x10155bfd
shl ecx, 8
mov esi, dword [esp + 0x14]
or eax, ecx
add edx, 2
mov dword [esi], eax
add esi, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
jne 0x10155be0
mov eax, dword [edi + 0x29494]
mov dword [edi + 0x2949c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x2a3a8]
mov dword [edi + 0x2a3a4], 0x4604d000
add edx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 3
nop dword [eax]
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x10155c6a
shl eax, 8
jmp 0x10155c6d
shl ecx, 8
mov esi, dword [esp + 0x14]
or eax, ecx
add edx, 2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
jne 0x10155c50
mov eax, dword [edi + 0x2a3ac]
mov dword [edi + 0x2a3b4], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x2a3bc]
mov dword [edi + 0x2a3b8], 0x45bb8000
add edx, ecx
mov dword [esp + 0x14], 3
nop
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155cd7
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x10155cde
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [esp + 0x14], 1
jne 0x10155cc0
mov eax, dword [edi + 0x2a3c0]
mov dword [edi + 0x2a3c8], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x29510]
mov dword [edi + 0x2a3cc], 0x45480000
add edx, ecx
mov dword [esp + 0x14], 3
nop word [eax + eax]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x10155d47
movzx ecx, byte [edx + 1]
movzx eax, byte [edx]
jmp 0x10155d4e
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
add edx, 2
or ecx, eax
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [esi + 0xec0], xmm0
mov dword [esi], eax
add esi, 4
sub dword [esp + 0x14], 1
jne 0x10155d30
movd xmm0, dword [edi + 0x29514]
cvtdq2ps xmm0, xmm0
cvttss2si eax, xmm0
movss dword [edi + 0x2a3dc], xmm0
mov dword [edi + 0x2951c], eax
jmp 0x10155e0b
mov edx, dword [esp + 0x20]
lea esi, [edi + 0x2a3e4]
mov dword [edi + 0x2a3e0], 0x451c4000
add edx, ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 3
nop dword [eax]
movzx eax, byte [edx + 1]
mov esi, 0x4949
movzx ecx, byte [edx]
cmp word [edi + 0x54860], si
jne 0x10155dda
shl eax, 8
jmp 0x10155ddd
shl ecx, 8
mov esi, dword [esp + 0x14]
or eax, ecx
add edx, 2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esi], xmm0
add esi, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], esi
jne 0x10155dc0
mov eax, dword [edi + 0x2a3e8]
mov dword [edi + 0x2a3f0], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x20]
test ecx, ecx
jne 0x101554f0
mov esi, dword [esp + 0x20]
push esi
mov ecx, edi
call fcn.10168850
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x44]
mov ecx, dword [edi + 0x54800]
push 0
push edx
push esi
mov eax, dword [ecx]
call dword [eax + 0xc]
mov eax, dword [esp + 0x38]
mov word [edi + 0x54860], ax
cmp dword [edi + 0x188], 0
jne case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
mov esi, dword [esp + 0x30]
mov edi, eax
add edi, dword [ebp + 8]
mov ecx, esi
push edi
call fcn.1014fc40
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 + 0x34]
mov ecx, edi
call fcn.10152080
jmp case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x12e]
push 2
push 1
push edx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, 0x102b4388
lea eax, [esp + 0x128]
nop word [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10155ee0
test dl, dl
je 0x10155edc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10155ee0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10155ec0
xor eax, eax
jmp 0x10155ee5
sbb eax, eax
or eax, 1
test eax, eax
je 0x10155f22
mov ecx, str.SAMSUNG
lea eax, [esp + 0x128]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10155f15
test dl, dl
je 0x10155f11
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10155f15
add eax, 2
add ecx, 2
test dl, dl
jne 0x10155ef5
xor eax, eax
jmp 0x10155f1a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x10155e2b
mov ecx, dword [edi + 0x54800]
mov esi, dword [esp + 0x44]
push 0
push dword [esp + 0x30]
mov eax, dword [ecx]
push esi
call dword [eax + 0xc]
push 1
push 0
push dword [ebp + 8]
mov ecx, edi
call fcn.1014cfc0
mov edx, dword [esp + 0x2c]
jmp 0x10155e33
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
jmp 0x10155e33
push 3
lea eax, [edi + 0x5486a]
mov ecx, edi
push eax
call fcn.1015c840
jmp case.0x101561e4.61444
mov esi, dword [esp + 0x1c]
mov ecx, edi
cmp esi, 3
jne 0x10155f86
call fcn.10131be0
movzx eax, ax
jmp 0x10155f8b
call fcn.10131c40
mov word [edi + 0x18], ax
mov ecx, edi
cmp esi, 3
jne 0x10155fa0
call fcn.10131be0
movzx eax, ax
jmp 0x10155fa5
call fcn.10131c40
mov word [edi + 0x1a], ax
mov ecx, edi
cmp esi, 3
jne 0x10155fba
call fcn.10131be0
movzx eax, ax
jmp 0x10155fbf
call fcn.10131c40
sub ax, word [edi + 0x18]
mov ecx, edi
mov word [edi + 0x14], ax
cmp esi, 3
jne 0x10155fe3
call fcn.10131be0
movzx eax, ax
sub ax, word [edi + 0x1a]
mov word [edi + 0x16], ax
jmp case.0x101561e4.61444
call fcn.10131c40
sub ax, word [edi + 0x1a]
mov word [edi + 0x16], ax
jmp case.0x101561e4.61444
xor eax, eax
mov dword [esp + 0x14], eax
test edx, edx
je 0x10156047
mov esi, dword [esp + 0x10]
lea ecx, [edi + 0x34]
mov dword [esp + 0x18], ecx
nop word [eax + eax]
cmp eax, 0x20
jge 0x10156047
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x10156028
call fcn.10131be0
movzx eax, ax
jmp 0x1015602d
call fcn.10131c40
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
add ecx, 4
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
cmp eax, esi
jb 0x10156010
mov dword [edi + 0x24f50], 0
jmp case.0x101561e4.61444
cmp esi, 0xf000
ja 0x101561c3
je 0x10156192
mov eax, esi
sub eax, 0xc715
je 0x10156103
sub eax, 5
je 0x101560c2
sub eax, 0x27
jne case.0x101561e4.61444
imul esi, dword [esp + 0x28], 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.0x101561e4.61444
imul esi, dword [esp + 0x28], 0x4208
mov ecx, edi
or dword [esi + edi + 0x5aaac], 0x800
cmp dword [esp + 0x1c], 3
jne 0x101560f2
call fcn.10131be0
movzx eax, ax
mov dword [esi + edi + 0x5eaec], eax
jmp case.0x101561e4.61444
call fcn.10131c40
mov dword [esi + edi + 0x5eaec], eax
jmp case.0x101561e4.61444
xor eax, eax
cmp esi, 0xc714
setne al
imul ecx, dword [esp + 0x28], 0x4208
mov dword [esp + 0x78], eax
imul eax, eax, 0xa8
add ecx, edi
or dword [eax + ecx + 0x5a95c], 1
xor eax, eax
mov dword [esp + 0xc], eax
xor esi, esi
cmp dword [edi + 0x190], esi
jle 0x10156181
nop word [eax + eax]
cmp esi, 4
jge 0x1015617d
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
imul eax, dword [esp + 0x28], 0x1082
imul ecx, dword [esp + 0x78], 0x2a
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
add eax, dword [esp + 0xc]
add ecx, eax
add ecx, esi
inc esi
fstp dword [edi + ecx*4 + 0x5a9d4]
cmp esi, dword [edi + 0x190]
jl 0x10156140
mov eax, dword [esp + 0xc]
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, 0xc
jl 0x10156130
jmp case.0x101561e4.61444
mov esi, dword [edi + 0x54800]
mov ecx, dword [esp + 0x30]
mov edi, dword [esi]
push 0
call fcn.10131c40
add eax, dword [ebp + 8]
mov ecx, esi
push 0
push eax
call dword [edi + 0xc]
push dword [ebp + 8]
mov edi, dword [esp + 0x34]
mov ecx, edi
call fcn.10152080
jmp case.0x101561e4.61444
cmp esi, 0xfd04
ja 0x10156bb0
je 0x10156b4b
lea eax, [esi - 0xf001]
cmp eax, 0xd
ja case.0x101561e4.61444
jmp dword [eax*4 + 0x101573f8]
cmp dword [esp + 0x1c], 3
jne 0x10156275
mov ecx, dword [edi + 0x54800]
lea edx, [esp + 0x48]
push 2
mov word [esp + 0x4c], 0xffff
push 1
mov eax, dword [ecx]
push edx
call dword [eax + 8]
mov eax, 0x4949
cmp word [edi + 0x54860], ax
jne 0x1015624a
movzx ecx, byte [esp + 0x49]
movzx eax, byte [esp + 0x48]
shl cx, 8
or cx, ax
movzx eax, cx
imul ecx, dword [esp + 0x28], 0x4208
movzx eax, ax
mov dword [ecx + edi + 0x5a8f8], eax
jmp case.0x101561e4.61444
movzx ecx, byte [esp + 0x48]
movzx eax, byte [esp + 0x49]
shl cx, 8
or cx, ax
movzx eax, cx
imul ecx, dword [esp + 0x28], 0x4208
movzx eax, ax
mov dword [ecx + edi + 0x5a8f8], eax
jmp case.0x101561e4.61444
mov ecx, edi
call fcn.10131c40
imul ecx, dword [esp + 0x28], 0x4208
mov dword [ecx + edi + 0x5a8f8], eax
jmp case.0x101561e4.61444
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x101562b5
call fcn.10131be0
imul ecx, dword [esp + 0x28], 0x4208
movzx eax, ax
mov dword [ecx + edi + 0x5a8fc], eax
jmp case.0x101561e4.61444
call fcn.10131c40
imul ecx, dword [esp + 0x28], 0x4208
mov dword [ecx + edi + 0x5a8fc], eax
jmp case.0x101561e4.61444
imul esi, dword [esp + 0x28], 0x4208
and edx, 7
cmp dword [esp + 0x1c], 3
mov ecx, edi
mov dword [esi + edi + 0x5a914], edx
jne 0x101562f3
call fcn.10131be0
movzx eax, ax
jmp 0x101562f8
call fcn.10131c40
mov dword [esi + edi + 0x5a900], eax
cmp dword [edi + 0x548a4], eax
jae case.0x101561e4.61444
mov dword [edi + 0x548a4], eax
jmp case.0x101561e4.61444
xor eax, eax
mov word [edi + 0x10], ax
imul eax, dword [esp + 0x28], 0x4208
cmp dword [eax + edi + 0x5a900], 0xc
jg case.0x101561e4.61444
mov ecx, edi
mov dword [edi + 0x83dac], 0x1013ed40
call fcn.10131c40
neg eax
sbb eax, eax
and eax, 0xffffffc8
add eax, 0x50
mov dword [edi + 0x548b8], eax
jmp case.0x101561e4.61444
mov eax, ecx
jmp 0x10156363
mov eax, dword [esp + 0x2f4]
lea ecx, [edx*4]
xor edx, edx
cmp eax, ecx
mov ecx, dword [esp + 0x78]
not ecx
setg dl
test ecx, edx
je 0x10156397
cdq
sub eax, edx
sar eax, 1
mov dword [esi + edi + 0x5a8f8], eax
mov eax, dword [esp + 0x2f0]
add eax, eax
mov dword [esi + edi + 0x5a8fc], eax
mov eax, dword [esp + 0x14]
mov ecx, edi
movzx esi, word [edi + 0x54860]
mov eax, dword [eax + edi + 0x5a90c]
add eax, 0xc
push eax
call fcn.10151fe0
mov word [edi + 0x54860], si
jmp case.0x101561e4.61444
mov esi, 4
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x101563d8
call fcn.10131be0
movzx eax, ax
jmp 0x101563dd
call fcn.10131c40
movd xmm0, eax
xor edx, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mov ecx, 3
addsd xmm0, qword [eax*8 + 0x103f0390]
mov eax, esi
dec esi
div ecx
cvtpd2ps xmm0, xmm0
movss dword [edi + edx*4 + 0x24ff4], xmm0
cmp esi, 1
jg 0x101563c5
jmp case.0x101561e4.61444
lea esi, [edi + 0x104]
mov ecx, str.X_A3
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10156441
test dl, dl
je 0x1015643d
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10156441
add eax, 2
add ecx, 2
test dl, dl
jne 0x10156421
xor eax, eax
jmp 0x10156446
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov ecx, str.X_A10
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10156475
test dl, dl
je 0x10156471
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10156475
add eax, 2
add ecx, 2
test dl, dl
jne 0x10156455
xor eax, eax
jmp 0x1015647a
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov ecx, str.X_A5
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101564b0
test dl, dl
je 0x101564ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101564b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x10156490
xor eax, eax
jmp 0x101564b5
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov eax, str.X_A20
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x101564e2
test cl, cl
je 0x101564de
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x101564e2
add esi, 2
add eax, 2
test cl, cl
jne 0x101564c2
xor eax, eax
jmp 0x101564e7
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov esi, 4
cmp dword [esp + 0x1c], 3
mov ecx, edi
jne 0x10156507
call fcn.10131be0
movzx ecx, ax
jmp 0x1015650e
call fcn.10131c40
mov ecx, eax
mov eax, esi
xor edx, edx
div dword [esp + 0xcc]
dec esi
mov dword [edi + edx*4 + 0x298b0], ecx
cmp esi, 1
jg 0x101564f4
mov eax, dword [edi + 0x298b4]
mov dword [edi + 0x298bc], eax
jmp case.0x101561e4.61444
lea esi, [edi + 0x104]
mov ecx, str.X_A3
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10156564
test dl, dl
je 0x10156560
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10156564
add eax, 2
add ecx, 2
test dl, dl
jne 0x10156544
xor eax, eax
jmp 0x10156569
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov ecx, str.X_A10
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10156598
test dl, dl
je 0x10156594
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10156598
add eax, 2
add ecx, 2
test dl, dl
jne 0x10156578
xor eax, eax
jmp 0x1015659d
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov ecx, str.X_A5
mov eax, esi
nop dword [eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x101565d0
test dl, dl
je 0x101565cc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x101565d0
add eax, 2
add ecx, 2
test dl, dl
jne 0x101565b0
xor eax, eax
jmp 0x101565d5
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
mov eax, str.X_A20
mov cl, byte [esi]
cmp cl, byte [eax]
jne 0x10156602
test cl, cl
je 0x101565fe
mov cl, byte [esi + 1]
cmp cl, byte [eax + 1]
jne 0x10156602
add esi, 2
add eax, 2
test cl, cl
jne 0x101565e2
xor eax, eax
jmp 0x10156607
sbb eax, eax
or eax, 1
test eax, eax
je case.0x101561e4.61444
xor esi, esi
mov ecx, edi
call fcn.10131c40
mov dword [esp + esi*4 + 0x80], eax
inc esi
cmp esi, 4
jl 0x10156611
mov edx, dword [esp + 0x8c]
cmp edx, 0x100
jae 0x1015688e
mov ecx, dword [esp + 0x84]
lea eax, [edx + 0x2939]
add eax, eax
mov dword [edi + eax*8], ecx
mov eax, edx
mov ecx, dword [esp + 0x80]
add eax, eax
mov dword [edi + eax*8 + 0x2939c], ecx
mov dword [edi + eax*8 + 0x29394], ecx
mov ecx, dword [esp + 0x88]
mov dword [edi + eax*8 + 0x29398], ecx
cmp edx, 0x11
jne 0x1015688e
mov eax, dword [edi + 0x548d0]
sub eax, 4
cmp eax, 0x9c3ffb
ja 0x1015688e
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0x38], eax
mov edi, edx
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x548d0]
add ecx, ecx
push ecx
mov ecx, eax
call fcn.1016c170
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
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 + 0x30]
mov ecx, dword [esi + 0x54800]
push dword [esi + 0x548d0]
push 2
mov eax, dword [ecx]
push dword [esp + 0x34]
call dword [eax + 8]
mov ecx, dword [esi + 0x54800]
push 0
push edi
push dword [esp + 0x40]
mov eax, dword [ecx]
call dword [eax + 0xc]
mov edi, esi
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov eax, dword [edi + 0x548d0]
sub eax, 3
mov dword [esp + 0x38], eax
je 0x1015688e
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x80]
add edx, 4
nop dword [eax]
movzx eax, word [edx - 4]
cmp esi, eax
jne 0x10156759
movzx eax, word [edx - 2]
cmp dword [esp + 0x84], eax
jne 0x10156759
movzx eax, word [edx]
cmp dword [esp + 0x88], eax
jne 0x10156759
movzx eax, word [edx - 0x22]
cmp eax, esi
je 0x1015676c
inc ecx
add edx, 2
mov dword [esp + 0xc], ecx
cmp ecx, dword [esp + 0x38]
jb 0x10156730
jmp 0x1015688e
xor edx, edx
mov dword [esp + 0x14], edx
cmp dword [0x10408760], edx
jle 0x101567e6
mov eax, dword [esp + 0x2c]
add eax, 0xffffffe6
lea ecx, [eax + ecx*2]
mov dword [esp + 0x18], ecx
nop dword [eax]
mov edx, dword [edx*4 + 0x10408748]
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 + 0x14]
inc edx
mov dword [esp + 0x14], edx
mov dword [edi + eax*8], ecx
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx]
add ecx, 6
mov dword [edi + esi*8 + 0x29398], eax
mov dword [esp + 0x18], ecx
cmp edx, dword [0x10408760]
jl 0x10156790
mov ecx, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
add ecx, 0x60
lea eax, [ecx + 0xf]
cmp ecx, eax
jge 0x10156886
movzx edx, word [esi + ecx*2]
nop dword [eax]
cmp word [esi + ecx*2], dx
jne 0x10156812
add ecx, 3
cmp ecx, eax
jl 0x10156800
jmp 0x10156886
mov eax, dword [esp + 0x2c]
lea edx, [edi + 0x2a394]
add eax, 0xffffff46
mov esi, 0x10408768
lea ecx, [eax + ecx*2]
nop dword [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 - 4]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx - 0x14], xmm0
movzx eax, word [ecx - 6]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx - 8], xmm0
movss dword [edx - 0x10], xmm0
movzx eax, word [ecx - 2]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edx - 0xc], xmm0
cmp esi, 0x104087e4
jl 0x10156830
mov esi, dword [esp + 0x2c]
push esi
mov ecx, edi
call fcn.10168850
xor esi, esi
mov ecx, edi
call fcn.10131c40
mov dword [esp + esi*4 + 0x80], eax
inc esi
cmp esi, 4
jl 0x10156890
mov edx, dword [esp + 0x8c]
cmp edx, 0x100
jae case.0x101561e4.61444
mov eax, dword [esp + 0x84]
lea ecx, [edx + 0x2939]
add ecx, ecx
add edx, edx
mov dword [edi + ecx*8], eax
mov eax, dword [esp + 0x80]
mov dword [edi + edx*8 + 0x2939c], eax
mov dword [edi + edx*8 + 0x29394], eax
mov eax, dword [esp + 0x88]
mov dword [edi + edx*8 + 0x29398], eax
jmp case.0x101561e4.61444
movd xmm0, edx
mov eax, edx
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
xorps xmm1, xmm1
addsd xmm0, qword [eax*8 + 0x103f0390]
ucomisd xmm1, xmm0
ja 0x10156918
sqrtsd xmm0, xmm0
jmp 0x1015691d
call fcn.1027eaf0
minsd xmm0, qword [0x102c60e8]
call fcn.1026ad30
mov dword [edi + 0x20f4c], eax
mov dword [edi + 0x20f48], eax
imul edx, dword [esp + 0x28], 0x4208
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov ecx, dword [edx + edi + 0x5a914]
cmp ecx, 1
jle 0x101569f2
cmp ecx, eax
jne 0x101569f2
or dword [edx + edi + 0x5aaac], 0x20
xor esi, esi
cmp dword [edi + 0x190], esi
jle 0x101569d8
lea ecx, [edi + 0x20f38]
mov dword [esp + 0x14], ecx
nop
cmp esi, 4
jge 0x101569d4
cmp esi, eax
jae 0x101569d4
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
fadd qword [0x103efa18]
fstp qword [esp + 0x38]
movsd xmm0, qword [esp + 0x38]
call fcn.1026ad30
imul ecx, dword [esp + 0x28], 0x1082
mov edx, dword [esp + 0x14]
add ecx, esi
mov dword [edx], eax
inc esi
add edx, 4
mov dword [esp + 0x14], edx
mov dword [edi + ecx*4 + 0x5aab0], eax
mov eax, dword [esp + 0x10]
cmp esi, dword [edi + 0x190]
jl 0x10156980
mov edx, dword [esp + 0x24]
mov dword [edi + 0x24f50], 0
mov dword [edx + edi + 0x5eac8], 0
jmp case.0x101561e4.61444
mov ecx, dword [edi + 0x20f4c]
imul ecx, dword [edi + 0x20f48]
cmp ecx, 2
jae 0x10156a54
cmp eax, 1
jne 0x10156a54
push dword [esp + 0x1c]
or dword [edx + edi + 0x5aaac], 0x20
mov ecx, edi
call fcn.10131ed0
mov ecx, dword [esp + 0x24]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x38], eax
fldcw word [esp + 0x38]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [edi + 0x24f50], eax
mov dword [ecx + edi + 0x5eac8], eax
fldcw word [esp + 0x10]
jmp case.0x101561e4.61444
cmp ecx, eax
ja case.0x101561e4.61444
mov dword [esp + 0x14], 0
test ecx, ecx
je 0x10156ac7
lea esi, [edi + 0x20f50]
push dword [esp + 0x1c]
mov ecx, edi
call fcn.10131ed0
mov ecx, dword [esp + 0x14]
lea esi, [esi + 4]
fnstcw word [esp + 0x10]
movzx eax, word [esp + 0x10]
inc ecx
or eax, 0xc00
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], eax
fldcw word [esp + 0x38]
fistp qword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esi - 4], eax
mov eax, dword [edi + 0x20f48]
imul eax, dword [edi + 0x20f4c]
fldcw word [esp + 0x10]
cmp ecx, eax
jb 0x10156a72
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [edi + 0x24f50], 0
xorps xmm0, xmm0
movups xmmword [edi + 0x20f38], xmm0
cmp esi, 0xc61a
jne case.0x101561e4.61444
or dword [edx + edi + 0x5aaac], 0x20
xor esi, esi
mov eax, dword [edi + 0x20f48]
imul eax, dword [edi + 0x20f4c]
test eax, eax
je 0x10156b30
add edx, 0x5aac8
lea ecx, [edi + 0x20f50]
add edx, edi
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov dword [edx], eax
lea edx, [edx + 4]
mov eax, dword [edi + 0x20f48]
inc esi
imul eax, dword [edi + 0x20f4c]
cmp esi, eax
jb 0x10156b10
mov edx, dword [esp + 0x24]
xorps xmm0, xmm0
mov dword [edx + edi + 0x5eac8], 0
movups xmmword [edx + edi + 0x5aab0], xmm0
jmp case.0x101561e4.61444
cmp edx, 0xd
jb case.0x101561e4.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.10131c40
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.10131c40
add dword [edi + 0x54880], eax
mov dword [edi + 0x83dac], 0x1013ed40
adc dword [edi + 0x54884], 0
jmp case.0x101561e4.61444
sub esi, 0xfd09
je 0x10156bf1
sub esi, 0xf7
je 0x10153b63
sub esi, 2
jne case.0x101561e4.61444
cmp dword [esp + 0x1c], 2
jne case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
lea eax, [edi + 0x25100]
push 0x40
push eax
mov edx, dword [ecx]
call dword [edx + 0x1c]
jmp case.0x101561e4.61444
cmp edx, 0x24
jne 0x10156c31
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 0x10156c10
jmp case.0x101561e4.61444
test edx, edx
je case.0x101561e4.61444
mov ecx, dword [edi + 0x54800]
cmp edx, 0x10
mov eax, 0x10
cmova edx, eax
push edx
mov eax, dword [ecx]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x11c]
push 1
push edx
call dword [eax + 8]
xor eax, eax
lea ecx, [edi + 0x190]
xor esi, esi
mov dword [esp + 0x14], eax
mov edx, ecx
mov dword [esp + 0x18], ecx
mov dword [ecx], eax
cmp dword [esp + 0x74], eax
jbe 0x10156cee
xor edx, edx
cmp edx, 4
jge 0x10156cbc
mov cl, byte [esp + eax + 0x118]
cmp cl, 0x1f
ja 0x10156cb1
movzx ecx, cl
mov eax, 1
shl eax, cl
and eax, esi
neg eax
sbb eax, eax
inc eax
add edx, eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x190], edx
bts esi, ecx
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x74]
jb 0x10156c80
cmp esi, 0x38
jne 0x10156cdb
mov ax, word [0x102b4998]
mov edx, dword [esp + 0x18]
mov word [esp + 0x50], ax
mov al, byte [0x102b499a]
mov byte [esp + 0x52], al
jmp 0x10156cee
mov ecx, dword [esp + 0x18]
mov edx, ecx
cmp esi, 0x3a
jne 0x10156cee
mov dword [esp + 0x50], 0x1040305
mov edx, dword [edx]
xor ecx, ecx
test edx, edx
jle 0x10156d0c
cmp ecx, 4
jge 0x10156d0c
movzx eax, byte [esp + ecx + 0x50]
mov byte [esp + eax + 0x4c8], cl
inc ecx
cmp ecx, edx
jl 0x10156cf6
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 + 0x74]
movzx eax, byte [esp + edx + 0x118]
movzx ecx, byte [esp + eax + 0x4c8]
or edi, ecx
test esi, esi
jne 0x10156d20
mov dword [esp + 0xc], edi
xor eax, eax
mov ecx, dword [esp + 0xc]
test ecx, ecx
mov edi, dword [esp + 0x30]
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 + 0x68]
test esi, esi
jne 0x10152220
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x10156e1d
cmp eax, 0x9c4000
jae 0x10156e1d
push eax
mov ecx, edi
call fcn.1016c170
mov esi, eax
test esi, esi
je 0x10156e1d
mov ecx, dword [edi + 0x54800]
mov eax, dword [esp + 0x54]
push 0
push 0
mov edx, dword [ecx]
push eax
call dword [edx + 0xc]
mov ecx, dword [edi + 0x54800]
push 1
push dword [esp + 0x60]
mov eax, dword [ecx]
push esi
call dword [eax + 8]
mov eax, dword [esp + 0x64]
mov ecx, edi
push eax
mov eax, dword [esp + 0x60]
push 1
shr eax, 2
push eax
push esi
call fcn.10160e20
mov ecx, dword [edi + 0x54800]
push dword [esp + 0x5c]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
test eax, eax
jne 0x10156e15
mov eax, dword [esp + 0x54]
mov ecx, edi
neg eax
push eax
call fcn.10152080
mov ecx, dword [edi + 0x54800]
mov eax, dword [ecx]
call dword [eax + 0x50]
push esi
mov ecx, edi
call fcn.10168850
mov esi, dword [edi + 0x190]
xor edx, edx
mov dword [esp + 0x60], esi
test esi, esi
jle 0x10156e5f
nop dword [eax]
xor ecx, ecx
cmp ecx, 4
jge 0x10156e5a
movsd xmm0, qword [esp + edx*8 + 0x188]
lea eax, [ecx + edx*4]
mulsd xmm0, qword [esp + eax*8 + 0x1a8]
inc ecx
movsd qword [esp + eax*8 + 0x1a8], xmm0
cmp ecx, esi
jl 0x10156e32
inc edx
cmp edx, esi
jl 0x10156e30
mov edx, dword [esp + 0x58]
test edx, edx
je 0x10156f22
xor ecx, ecx
mov dword [esp + 0x64], ecx
test esi, esi
jle 0x10156f08
lea eax, [esp + 0x1a8]
lea esi, [esp + 0x288]
mov dword [esp + 0x54], eax
nop dword [eax + eax]
cmp ecx, 4
jge 0x10156f04
xor edi, edi
nop dword [eax + eax]
movsd xmm2, qword [esp + edi + 0xf8]
lea ecx, [esp + 0x228]
mov edx, dword [esp + 0x60]
xorps xmm1, xmm1
add ecx, edi
nop dword [eax]
movsd xmm0, qword [eax]
add eax, 8
mulsd xmm0, qword [ecx]
add ecx, 0x18
mulsd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [esi], xmm1
sub edx, 1
jne 0x10156ec0
mov eax, dword [esp + 0x54]
add edi, 8
add esi, 8
cmp edi, 0x18
jl 0x10156ea0
mov ecx, dword [esp + 0x64]
add eax, 0x20
inc ecx
mov dword [esp + 0x54], eax
mov dword [esp + 0x64], ecx
cmp ecx, dword [esp + 0x60]
jl 0x10156e90
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x288]
mov ecx, edi
push eax
lea eax, [edi + 0x25014]
push eax
call fcn.1012ddd0
mov edx, dword [esp + 0x58]
movsd xmm0, qword [esp + 0x168]
ucomisd xmm0, qword [0x103ef838]
movsd xmm2, qword [0x103f03f0]
movsd xmm3, qword [0x102c5fd0]
lahf
test ah, 0x44
jnp 0x10156fa1
xor eax, eax
mov dword [edi + 0x25000], 0
cmp dword [edi + 0x190], eax
jle 0x10156fa1
lea ecx, [edi + 0x24ff4]
cmp eax, 4
jge 0x10156fa1
movsd xmm1, qword [esp + eax*8 + 0x168]
movaps xmm0, xmm1
andps xmm0, xmm2
comisd xmm0, xmm3
jbe 0x10156f95
movsd xmm0, qword [0x103efa68]
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
movss dword [ecx], xmm0
inc eax
add ecx, 4
cmp eax, dword [edi + 0x190]
jl 0x10156f67
test edx, edx
jne 0x10156ff7
xor eax, eax
cmp dword [edi + 0x190], eax
jle 0x10156ff7
lea edx, [esp + 0x1a8]
lea ecx, [edi + 0x25004]
nop dword [eax]
cmp eax, 4
jge 0x10156ff7
movsd xmm1, qword [edx]
movaps xmm0, xmm1
andps xmm0, xmm2
comisd xmm0, xmm3
jbe 0x10156fe8
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 0x10156fc0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret 4
push 0x103fa020
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 5
push eax
call fcn.1026cad5
push 0x103fa020
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 5
push eax
call fcn.1026cad5
retf 0x1525