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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x8df0
call fcn.100d0470
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
movzx eax, byte [ecx + 0x49]
mov ebx, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
cvtsi2ss xmm0, eax
test ebx, ebx
movss dword [esp + 0x40], xmm0
je 0x100070f6
mov eax, dword [esi + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + ebx + 8]
sub esp, 8
movss dword [esp + 4], xmm0
mov dword [esp], eax
call dword [esi + 0x14]
add esp, 8
test eax, eax
je 0x10007753
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x54], eax
or eax, ecx
mov dword [esp + 0x50], ecx
je 0x1000712f
xor eax, eax
cmp dword [edi + 4], 0x101
movsd xmm0, qword [edx + 8]
setb al
mulsd xmm0, qword [eax*8 + 0x100d5630]
movapd xmmword [esp + 0xa0], xmm0
jmp 0x1000712f
movzx ecx, byte [edx + 0x46]
mov eax, 1
movsd xmm3, qword [edx + 0x10]
shl eax, cl
mov byte [esp + 0x1d], cl
mov ecx, dword [esp + 0x54]
movapd xmm2, xmm3
movsd qword [esp + 8], xmm3
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
cmpunordsd xmm2, xmm3
mulsd xmm0, qword [0x100d5640]
movapd xmm1, xmm2
or ecx, dword [esp + 0x50]
mulsd xmm0, xmm0
andpd xmm1, xmm0
maxsd xmm0, xmm3
andnpd xmm2, xmm0
setne byte [esp + 0x1e]
orpd xmm2, xmm1
movapd xmmword [esp + 0x20], xmm2
je 0x100071c0
movapd xmm2, xmmword [esp + 0xa0]
movapd xmm3, xmmword [esp + 0x20]
movapd xmm0, xmm2
minsd xmm0, xmm3
cmpunordsd xmm3, xmm3
movapd xmm1, xmm3
andpd xmm3, xmm2
andnpd xmm1, xmm0
orpd xmm3, xmm1
movapd xmmword [esp + 0x20], xmm3
lea eax, [esp + 0xf8]
push 0x98
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [ebp + 0xc]
movsd xmm1, qword [esp + 8]
mov eax, dword [esp + 0xfc]
xorpd xmm0, xmm0
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebx
movzx edx, word [ecx + 0x3c]
ucomisd xmm1, xmm0
jne 0x10007209
jp 0x10007209
movzx ecx, dx
cmp eax, ecx
jbe 0x1000861c
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x7c], edx
lea ebx, [esp + 0x15c0]
mov dword [esp + 8], 0
mov dword [esp + 0x44], 0
mov edx, dword [esi + 0x40]
lea ecx, [edx + edx*2 + 3]
movzx ecx, cx
shr ecx, 2
cmp eax, 0x1389
cmovb ecx, edx
lea edx, [ecx + ecx*2 + 3]
movzx edx, dx
shr edx, 2
cmp eax, 0x61a9
cmovb edx, ecx
lea ecx, [edx + edx*2 + 3]
movzx ecx, cx
shr ecx, 2
cmp eax, 0xc351
cmovb ecx, edx
lea edx, [ecx + ecx*2 + 3]
movzx edi, dx
shr edi, 2
cmp eax, 0x186a1
cmovb edi, ecx
xor eax, eax
mov ecx, dword [esp + 0x7c]
test di, di
setg al
movsd xmm0, qword [eax*8 + 0x100d5648]
mov eax, edi
inc eax
mov dword [esp + 0x10], ecx
cwde
movsd qword [esp + 0x38], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movzx eax, byte [esi + 0x4a]
movss dword [esp + 0x94], xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mov eax, dword [esi + 0x28]
movss dword [esp + 0x4c], xmm0
movapd xmm0, xmmword [esp + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x2c]
xor esi, esi
cmpunordsd xmm0, xmm0
movapd xmmword [esp + 0xe0], xmm0
mov dword [esp + 0x74], eax
nop word [eax + eax]
mov dword [esp + 4], esi
or esi, dword [esp + 8]
movsd xmm1, qword [0x100d5658]
lea eax, [esp + 0xf8]
je 0x100072fd
movapd xmm1, xmm0
movsd qword [esp + 0x80], xmm0
movapd xmm0, xmmword [esp + 0xe0]
movapd xmm3, xmmword [esp + 0x20]
movapd xmm2, xmm0
andpd xmm2, xmm1
maxsd xmm1, xmm3
andnpd xmm0, xmm1
movapd xmm1, xmm3
orpd xmm0, xmm2
mulsd xmm1, qword [esp + 0x38]
maxsd xmm0, qword [0x100d5660]
mulsd xmm0, qword [0x100d5668]
sub esp, 0x1c
mov ecx, dword [esp + 0x2c]
movsd qword [esp + 0xc], xmm1
mov dword [esp + 4], eax
mov dword [esp], ebx
movsd qword [esp + 0x14], xmm0
mov dword [esp + 8], ecx
call fcn.10018130
add esp, 0x1c
cmp dword [esp + 0x15c0], 0
mov esi, dword [esp + 0x15c4]
jne 0x10007808
push 0x1404
lea eax, [esp + 0x15cc]
push eax
lea eax, [esp + 0x59ec]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x59e0], esi
push dword [esp + 0x104]
push dword [esp + 0x104]
push dword [esp + 0x84]
lea eax, [esp + 0x59ec]
push eax
lea eax, [esp + 0x2de0]
push eax
call fcn.1000b6f0
add esp, 0x14
test di, di
mov eax, 0
movss xmm2, dword [esp + 0x94]
cmovg eax, edi
cwde
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movaps xmm1, xmm0
xorps xmm0, xmmword [0x100d5670]
divss xmm1, xmm2
divss xmm0, xmm2
sub esp, 0xc
movss xmm2, dword [0x100d5680]
movss dword [esp], xmm1
movss dword [esp + 4], xmm0
movss dword [esp + 8], xmm2
call fcn.100ceb70
add esp, 0xc
fstp dword [esp + 0x98]
movss xmm1, dword [esp + 0x98]
movss dword [esp + 0x48], xmm1
sub esp, 0xc
movss xmm0, dword [esp + 0x4c]
movss xmm2, dword [esp + 0x58]
movss dword [esp], xmm1
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm2
call fcn.100ceb70
add esp, 0xc
fstp xword [esp + 0x60]
movss xmm2, dword [0x100d5688]
xorps xmm0, xmm0
mov dword [esp + 0x15c0], 0x100d5b10
mov dword [esp + 0x15c4], 2
mov dword [esp + 0x15d0], 0
movss xmm1, dword [esp + 0x48]
mulss xmm1, dword [0x100d5684]
maxss xmm0, xmm1
minss xmm2, xmm0
cvttss2si eax, xmm2
mov byte [esp + 0x1f], al
lea eax, [esp + 0x1f]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xbc]
mov dword [esp + 0xc0], fcn.100bfaa0
mov dword [esp + 0x15c8], eax
mov dword [esp + 0x15cc], 1
push ebx
lea eax, [esp + 0xc8]
push eax
call fcn.100a4530
add esp, 8
mov edx, dword [esp + 0x78]
fld xword [esp + 0x60]
fstp dword [esp + 0x9c]
movss xmm0, dword [esp + 0x9c]
mov esi, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc8]
test edx, edx
movss dword [esp + 0x48], xmm0
je 0x1000753e
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + edx + 8]
push dword [esp + 0xcc]
push esi
push dword [ebp + 0xc]
push eax
call dword [ecx + 0x14]
add esp, 0x10
test ebx, ebx
je 0x1000754e
push 1
push ebx
push esi
call fcn.10004680
add esp, 0xc
test di, di
jle 0x100077a5
movapd xmm0, xmmword [esp + 0x20]
mov esi, dword [esp + 4]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
setbe al
test esi, esi
setne cl
or cl, al
movzx eax, cl
push eax
lea eax, [esp + 0x2dd4]
push eax
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x15cc]
push eax
call fcn.1000a370
add esp, 0x10
cmp dword [esp + 0x15c0], 0
mov ebx, dword [esp + 0x5c]
jne 0x10007801
mov eax, esi
movsd xmm0, qword [0x100d5690]
movsd xmm1, qword [esp + 0x80]
or eax, dword [esp + 8]
je 0x100075c5
movapd xmm0, xmm1
movsd xmm2, qword [esp + 0x15c8]
test esi, esi
je 0x10007600
ucomisd xmm0, xmm2
ja 0x10007600
movapd xmm0, xmmword [esp + 0x20]
ucomisd xmm0, xmm2
jb 0x10007710
movzx eax, word [esp + 0x10]
cmp dword [esp + 0x2dd0], eax
jae 0x10007710
nop word [eax + eax]
movapd xmm0, xmmword [esp + 0x20]
movapd xmmword [esp + 0x60], xmm2
ucomisd xmm0, xmm2
jbe 0x1000763e
xorpd xmm0, xmm0
ucomisd xmm2, xmm0
jbe 0x1000763e
movapd xmm0, xmmword [esp + 0x20]
movsd xmm1, qword [esp + 0x38]
divsd xmm0, xmm2
mulsd xmm1, qword [0x100d56a0]
minsd xmm1, xmm0
movsd qword [esp + 0x38], xmm1
mov eax, dword [esp + 0x2dd0]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x90], eax
inc eax
cmp cx, ax
cmovae ecx, eax
dec edi
mov dword [esp + 0x10], ecx
push 0x1000
lea eax, [esp + 0x2dd8]
push eax
lea eax, [esp + 0x7df0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x3dd4]
mov dword [esp + 0x8c], eax
push 0x400
lea eax, [esp + 0x3ddc]
push eax
lea eax, [esp + 0x41e0]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movapd xmm0, xmmword [esp + 0x60]
mov dword [esp + 8], 0
mov esi, 1
mov dword [esp + 0x44], 0
test ebx, ebx
je 0x10007734
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + ebx + 8]
sub esp, 8
movss xmm1, dword [esp + 0x50]
mov dword [esp], eax
movapd xmmword [esp + 0x68], xmm0
movss dword [esp + 4], xmm1
call dword [edx + 0x14]
movapd xmm0, xmmword [esp + 0x68]
add esp, 8
test eax, eax
sete al
test al, al
je 0x1000773e
jmp 0x10007814
mov eax, dword [esp + 0x44]
movapd xmm0, xmm1
movsd xmm1, qword [0x100d5698]
sub edi, eax
inc eax
movsd qword [esp + 0x38], xmm1
add edi, 0xfffffffa
mov dword [esp + 0x44], eax
test ebx, ebx
jne 0x100076c3
xor eax, eax
test al, al
jne 0x10007814
test di, di
jle 0x10007814
lea ebx, [esp + 0x15c0]
jmp 0x100072e0
mov eax, dword [ebp + 8]
mov dword [eax + 8], 0x66
mov dword [eax + 4], 0
mov dword [eax], 2
mov eax, dword [edi + 4]
test eax, eax
je 0x10007781
shl eax, 5
push 4
push eax
push dword [edi]
call fcn.10004680
add esp, 0xc
mov eax, dword [edi + 0xc]
mov esi, dword [ebp + 8]
test eax, eax
je 0x1000857f
shl eax, 4
push 4
push eax
push dword [edi + 8]
call fcn.10004680
add esp, 0xc
jmp 0x1000857f
mov esi, dword [esp + 0x2dd0]
lea eax, [esp + 0x6de8]
push 0x1000
lea ecx, [esp + 0x2dd8]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [esp + 0x3dd4]
lea eax, [esp + 0x29d0]
push 0x400
lea ecx, [esp + 0x3ddc]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x80]
mov ebx, dword [esp + 0x5c]
movaps xmmword [esp + 0x60], xmm0
jmp 0x10007866
mov esi, dword [esp + 0x15c4]
mov dword [esp + 0x190], esi
jmp 0x10007bfc
movapd xmmword [esp + 0x60], xmm0
mov dword [esp + 4], esi
lea eax, [esp + 0x6de8]
push 0x1000
lea ecx, [esp + 0x7dec]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x29d0]
push 0x400
lea ecx, [esp + 0x41dc]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x8c]
lea eax, [esp + 0x45dc]
lea ecx, [esp + 0x6de8]
push 0x1000
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x55e0]
mov dword [esp + 0x55dc], edi
lea ecx, [esp + 0x29d0]
push 0x400
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0xfc]
mov dword [esp + 0x45d8], esi
movzx edx, word [eax + 0x3e]
movsd xmm0, qword [eax + 0x18]
lea eax, [edx + edx*2 + 3]
movzx eax, ax
shr eax, 2
cmp ecx, 0x1389
cmovb eax, edx
lea edx, [eax + eax*2 + 3]
movzx edx, dx
shr edx, 2
cmp ecx, 0x61a9
cmovb edx, eax
lea eax, [edx + edx*2 + 3]
movzx eax, ax
shr eax, 2
cmp ecx, 0xc351
cmovb eax, edx
lea edx, [eax + eax*2 + 3]
movzx edx, dx
shr edx, 2
cmp ecx, 0x186a1
jb 0x10007910
addsd xmm0, xmm0
mov ecx, dword [esp + 4]
cmovae eax, edx
mov edi, 1
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x40]
movapd xmm1, xmmword [esp + 0x60]
test ax, ax
cmovne edi, eax
or ecx, dword [esp + 8]
mov ecx, dword [esp + 0x54]
cmovne edi, eax
or ecx, dword [esp + 0x50]
cmove edi, eax
test di, di
je 0x10007b9d
mov eax, dword [esp + 0x78]
test eax, eax
je 0x1000797f
mov ecx, dword [esp + 0x74]
mov edx, eax
mov eax, dword [ecx + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + edx + 8]
push 0x27
push str.__moving_colormap_towards_local_minimum
push dword [ebp + 0xc]
push eax
call dword [ecx + 0x14]
movss xmm0, dword [esp + 0x50]
add esp, 0x10
mov eax, dword [esp + 0x50]
or dword [esp + 0x54], eax
je 0x10007ba8
movsd xmm1, qword [0x100d56a8]
mulsd xmm1, qword [esp + 0xa0]
test ebx, ebx
movsd qword [esp + 0x38], xmm1
je 0x10007bbe
movss xmm1, dword [esp + 0x4c]
movzx eax, di
mov ecx, dword [esp + 0x58]
cvtsi2ss xmm2, eax
mov eax, dword [ebp + 0xc]
movss dword [esp + 0x80], xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
mov edx, dword [ecx + 8]
mov esi, dword [ecx + 0x14]
divss xmm0, xmm2
movzx eax, byte [eax + 0x4b]
dec edx
and edx, 0xfffffff8
cvtsi2ss xmm3, eax
lea ebx, [edx + ebx + 8]
movss dword [esp + 0x48], xmm3
mulss xmm0, xmm3
sub esp, 0xc
movss xmm2, dword [0x100d56b8]
movss dword [esp + 0x58], xmm1
movss dword [esp + 8], xmm1
movss dword [esp], xmm0
movss dword [esp + 4], xmm2
call fcn.100ceb70
add esp, 4
fstp dword [esp + 4]
mov dword [esp], ebx
mov dword [esp + 0x4c], esi
call esi
add esp, 8
test eax, eax
je 0x1000860b
lea eax, [esp + 0x45d8]
push 0
push eax
lea esi, [esp + 0x100]
push esi
lea eax, [esp + 0x15cc]
push eax
call fcn.1000a370
add esp, 0x10
cmp dword [esp + 0x15c0], 0
jne 0x10007bee
mov eax, dword [esp + 8]
movsd xmm2, qword [esp + 0x15c8]
movsd xmm1, qword [esp + 0x10]
or dword [esp + 4], eax
je 0x10007a9b
movapd xmm0, xmmword [esp + 0x60]
subsd xmm0, xmm2
andpd xmm0, xmmword [0x100d56c0]
ucomisd xmm1, xmm0
ja 0x10008680
mov esi, ebx
xor ebx, ebx
ucomisd xmm2, qword [esp + 0x38]
mov dword [esp + 8], 0
mov dword [esp + 4], 1
seta bl
inc ebx
cmp bx, di
jae 0x1000882b
movzx eax, bx
movapd xmmword [esp + 0x20], xmm2
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm0, dword [esp + 0x80]
mulss xmm0, dword [esp + 0x48]
sub esp, 0xc
movss xmm1, dword [esp + 0x58]
movss xmm2, dword [0x100d56b8]
movss dword [esp], xmm0
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm2
call fcn.100ceb70
add esp, 4
mov dword [esp], esi
fstp dword [esp + 4]
call dword [esp + 0x4c]
add esp, 8
test eax, eax
je 0x10008831
push 0
lea eax, [esp + 0x45dc]
push eax
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0x15cc]
push eax
call fcn.1000a370
add esp, 0x10
cmp dword [esp + 0x15c0], 0
jne 0x10007bee
movsd xmm0, qword [esp + 0x15c8]
movapd xmm2, xmmword [esp + 0x20]
movsd xmm1, qword [esp + 0x10]
subsd xmm2, xmm0
andpd xmm2, xmmword [0x100d56c0]
ucomisd xmm1, xmm2
ja 0x10008611
xor eax, eax
ucomisd xmm0, qword [esp + 0x38]
movapd xmm2, xmm0
seta al
lea ebx, [eax + ebx + 1]
cmp bx, di
jb 0x10007ac2
jmp 0x10008611
movapd xmmword [esp + 0x20], xmm1
jmp 0x10008831
movsd xmm1, qword [0x100d56b0]
test ebx, ebx
movsd qword [esp + 0x38], xmm1
jne 0x100079ac
lea eax, [esp + 0x45d8]
push 0
push eax
lea esi, [esp + 0x100]
push esi
lea eax, [esp + 0x15cc]
push eax
call fcn.1000a370
add esp, 0x10
cmp dword [esp + 0x15c0], 0
je 0x10008647
mov eax, dword [esp + 0x15c4]
mov dword [esp + 0x190], eax
mov dword [esp + 0x159c], 0
mov dword [esp + 0x1598], 2
mov eax, dword [esp + 0xfc]
mov edi, dword [ebp + 8]
test eax, eax
je 0x10007c35
shl eax, 5
push 4
push eax
push dword [esp + 0x100]
call fcn.10004680
add esp, 0xc
mov eax, dword [esp + 0x104]
test eax, eax
je 0x10007c55
shl eax, 4
push 4
push eax
push dword [esp + 0x108]
call fcn.10004680
add esp, 0xc
mov ecx, dword [esp + 0x1598]
mov edx, dword [esp + 0x159c]
mov esi, dword [esp + 0x190]
mov eax, ecx
xor eax, 2
or eax, edx
jne 0x10007c7b
mov dword [edi + 8], esi
jmp 0x10008570
movzx ebx, byte [ebp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x60], edx
lea ecx, [esp + 0x194]
lea eax, [esp + 0x15c4]
push 0x1404
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm0, qword [esp + 0x15a0]
test bl, bl
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x15c0], esi
movsd qword [esp + 0x20], xmm0
je 0x10007d71
mov eax, dword [esp + 0x25c4]
cmp esi, eax
ja 0x100089aa
test esi, esi
je 0x10007d71
xor eax, eax
cmp esi, 8
jb 0x100081c6
movaps xmm1, xmmword [0x100d56d0]
mov eax, esi
lea ecx, [esp + 0x25d8]
and eax, 0xfffffff8
mov edx, eax
nop dword [eax]
movups xmm0, xmmword [ecx - 0x10]
movaps xmm5, xmmword [0x100d5670]
movups xmm2, xmmword [ecx]
movaps xmm4, xmm0
movaps xmm7, xmm2
movaps xmm3, xmm0
xorps xmm4, xmm5
xorps xmm7, xmm5
movaps xmm5, xmm2
movaps xmm6, xmm4
cmpltps xmm3, xmm4
cmpltps xmm5, xmm7
cmpltps xmm6, xmm0
andps xmm0, xmm3
andps xmm4, xmm6
andnps xmm6, xmm1
orps xmm6, xmm4
movaps xmm4, xmm7
cmpltps xmm4, xmm2
andnps xmm3, xmm6
andps xmm2, xmm5
andps xmm7, xmm4
andnps xmm4, xmm1
orps xmm3, xmm0
orps xmm4, xmm7
movups xmmword [ecx - 0x10], xmm3
andnps xmm5, xmm4
orps xmm5, xmm2
movups xmmword [ecx], xmm5
add ecx, 0x20
add edx, 0xfffffff8
jne 0x10007d00
cmp esi, eax
jne 0x100081c6
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x10007de3
mov ecx, dword [ebp + 0xc]
movss xmm2, dword [esp + 0x40]
movzx eax, byte [ecx + 0x4b]
movzx ecx, byte [ecx + 0x4a]
xorps xmm1, xmm1
cvtsi2ss xmm1, ecx
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
addss xmm2, xmm1
sub esp, 0xc
movss xmm1, dword [str.33s_]
movss dword [esp], xmm0
movss dword [esp + 8], xmm2
movss dword [esp + 4], xmm1
call fcn.100ceb70
add esp, 0xc
mov eax, dword [ebx + 8]
dec eax
and eax, 0xfffffff8
lea eax, [eax + esi + 8]
sub esp, 8
mov dword [esp], eax
fstp dword [esp + 4]
call dword [ebx + 0x14]
add esp, 8
test eax, eax
je 0x100081bc
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x1e]
xor eax, 1
or eax, dword [esp + 0x60]
setne al
xor cl, 1
or cl, al
jne 0x10007f2c
movsd xmm0, qword [esp + 0x20]
ucomisd xmm0, qword [esp + 0xa0]
jbe 0x10007f2c
movsd xmm0, qword [0x100d56f0]
movsd xmm1, qword [0x100d5740]
mov bl, 0x64
mulsd xmm0, qword [esp + 0x20]
divsd xmm0, qword [0x100d56f8]
divsd xmm0, qword [0x100d5700]
movsd qword [esp + 0x7de8], xmm0
jmp 0x10007e62
addsd xmm0, xmm1
dec bl
ucomisd xmm0, qword [esp + 0x20]
jae 0x10008227
mov eax, ebx
inc al
cmp al, 2
jb 0x10008223
xorpd xmm0, xmm0
cmp bl, 0x63
ja 0x10007e50
movzx eax, bl
movsd xmm1, qword [0x100d5710]
xorps xmm2, xmm2
cvtsi2sd xmm2, eax
movapd xmm0, xmm2
movsd qword [esp + 0x10], xmm2
addsd xmm0, qword [0x100d5708]
divsd xmm1, xmm0
xorpd xmm0, xmm0
addsd xmm1, qword [0x100d5718]
maxsd xmm1, xmm0
movapd xmm0, xmm2
addsd xmm0, qword [0x100d5720]
movsd qword [esp + 8], xmm1
sub esp, 0x10
movsd xmm1, qword [0x100d5668]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
call fcn.100cec50
add esp, 0x10
movsd xmm1, qword [0x100d5728]
movsd xmm0, qword [0x100d5730]
fstp qword [esp + 0xd8]
divsd xmm1, qword [esp + 0xd8]
subsd xmm0, qword [esp + 0x10]
mulsd xmm0, xmm1
movsd xmm1, qword [0x100d5740]
divsd xmm0, qword [0x100d5738]
addsd xmm0, qword [esp + 8]
mulsd xmm0, qword [0x100d5700]
jmp 0x10007e50
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x15c0]
movzx eax, byte [eax + 0x42]
mov byte [esp + 0x29d0], al
mov eax, dword [esp + 0x25c4]
cmp edx, eax
ja 0x100089bb
lea esi, [esp + 0x25c8]
test edx, edx
mov dword [esp + 8], edx
lea eax, [esp + 0x194]
mov dword [esp + 0x190], 0
mov edx, esi
je 0x10008016
mov edi, dword [esp + 8]
xor ebx, ebx
mov esi, 0x1400
jmp 0x10007fba
lea ecx, [esp + 0x59e4]
add ebx, 4
add esi, 0xffffffec
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
movss dword [eax + 0x10], xmm2
add eax, 0x14
dec edi
je 0x10008016
movss xmm2, dword [esp + ebx + 0x25c8]
movsd xmm0, qword [edx + ebx*4 - 0x1004]
movsd xmm1, qword [edx + ebx*4 - 0xffc]
lea ecx, [esp + 0x59e4]
test esi, esi
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
jne 0x10007f90
push 0x100d5428
mov dword [esp + 8], eax
movss dword [esp + 0x3c], xmm2
call fcn.100345e0
movss xmm2, dword [esp + 0x3c]
mov eax, dword [esp + 8]
lea edx, [esp + 0x25cc]
add esp, 4
jmp 0x10007f90
mov eax, dword [esp + 8]
lea ebx, [esp + 0x190]
lea esi, [esp + 0x59e0]
mov dword [esp + 0x190], eax
push 0x1404
push ebx
push esi
mov edi, edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x59e0]
lea edx, [esp + 0x29d0]
lea ecx, [esp + 0x59e4]
mov dword [esp + 0x2dd0], edx
lea edx, [esp + 0x2dd0]
mov dword [esp + 0x190], edx
push ebx
push eax
push ecx
call fcn.1001a080
add esp, 0xc
mov eax, dword [esp + 8]
lea ebx, [esp + 0x15c4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x190], ebx
shl eax, 4
lea ecx, [edi + ecx*4]
add eax, ebx
mov dword [esp + 0x194], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x198], edi
mov dword [esp + 0x19c], ecx
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x1a8], eax
lea eax, [esp + 0x1b0]
push 0x1404
push esi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
cmp dword [esp + 8], 0
mov dword [esp + 0x15b4], 0
mov dword [esp + 0x15b8], 0
mov dword [esp + 0x15bc], 0
je 0x10008589
mov eax, dword [esp + 0x1b0]
mov ecx, 1
mov edx, 0x1008
lea esi, [esp + 0x1c4]
nop dword [eax + eax]
sub eax, 1
mov dword [esp + 0x1a0], ecx
jb 0x10008169
mov dword [esp + 0x1ac], ecx
inc ecx
movsd xmm1, qword [esi - 0x10]
movsd xmm2, qword [esi - 8]
movss xmm0, dword [esi]
add esi, 0x14
movsd qword [esp + edx*4 - 0x2a54], xmm2
movsd qword [esp + edx*4 - 0x2a5c], xmm1
movss dword [esp + edx + 0x15c0], xmm0
add edx, 4
dec dword [esp + 8]
jne 0x10008120
mov edx, dword [esp + 0x15c0]
mov ecx, edx
shl ecx, 4
cmp byte [esp + 0x29d0], 0
lea eax, [ebx + ecx]
je 0x10008599
test edx, edx
je 0x10008904
movss xmm0, dword [0x100d56e8]
lea esi, [esp + 0x15d4]
xor edx, edx
nop
movss xmm1, dword [esi - 0x10]
ucomiss xmm0, xmm1
jae 0x1000888a
add esi, 0x10
inc edx
add ecx, 0xfffffff0
jne 0x100081a0
jmp 0x10008904
mov eax, 0x66
jmp 0x1000856d
movaps xmm1, xmmword [0x100d5670]
movss xmm2, dword [0x100d56e0]
lea ecx, [esp + eax*4 + 0x25c8]
sub esi, eax
xorps xmm0, xmm0
jmp 0x100081fe
movss dword [ecx], xmm3
add ecx, 4
dec esi
je 0x10007d71
movss xmm3, dword [ecx]
ucomiss xmm0, xmm3
ja 0x100081f0
movaps xmm4, xmm3
xorps xmm4, xmm1
movaps xmm5, xmm4
cmpltss xmm5, xmm3
andps xmm4, xmm5
andnps xmm5, xmm2
orps xmm5, xmm4
movaps xmm3, xmm5
jmp 0x100081f0
xor ebx, ebx
jmp 0x10008229
inc bl
movsd xmm0, qword [0x100d56f0]
mov byte [esp + 0x41d8], bl
mov bl, 0x64
mulsd xmm0, qword [esp + 0xa0]
divsd xmm0, qword [0x100d56f8]
divsd xmm0, qword [0x100d5700]
movsd qword [esp + 0x6de8], xmm0
jmp 0x10008275
addsd xmm0, xmm1
dec bl
ucomisd xmm0, qword [esp + 0xa0]
jae 0x10008343
mov eax, ebx
inc al
cmp al, 2
jb 0x1000833f
xorpd xmm0, xmm0
cmp bl, 0x63
ja 0x10008260
movzx eax, bl
movsd xmm1, qword [0x100d5710]
xorps xmm2, xmm2
cvtsi2sd xmm2, eax
movapd xmm0, xmm2
movsd qword [esp + 8], xmm2
addsd xmm0, qword [0x100d5708]
divsd xmm1, xmm0
xorpd xmm0, xmm0
addsd xmm1, qword [0x100d5718]
maxsd xmm1, xmm0
movapd xmm0, xmm2
addsd xmm0, qword [0x100d5720]
movsd qword [esp + 0x20], xmm1
sub esp, 0x10
movsd xmm1, qword [0x100d5668]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
call fcn.100cec50
add esp, 0x10
movsd xmm1, qword [0x100d5728]
movsd xmm0, qword [0x100d5730]
fstp qword [esp + 0xd0]
divsd xmm1, qword [esp + 0xd0]
subsd xmm0, qword [esp + 8]
mulsd xmm0, xmm1
movsd xmm1, qword [0x100d5740]
divsd xmm0, qword [0x100d5738]
addsd xmm0, qword [esp + 0x20]
mulsd xmm0, qword [0x100d5700]
jmp 0x10008260
xor ebx, ebx
jmp 0x10008345
inc bl
lea eax, [esp + 0x7de8]
mov dword [esp + 0x2dd0], 0x100d5a20
mov dword [esp + 0x2dd4], 5
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 3
mov dword [esp + 0x198], 2
mov dword [esp + 0x1a0], 0x20
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 8
mov byte [esp + 0x1ac], 3
mov dword [esp + 0x1b0], 2
mov dword [esp + 0x1b8], 2
mov dword [esp + 0x1c0], 0x20
mov dword [esp + 0x1c4], 1
mov dword [esp + 0x1c8], 0
mov byte [esp + 0x1cc], 3
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 3
mov dword [esp + 0x1d8], 2
mov dword [esp + 0x1e0], 0x20
mov dword [esp + 0x1e4], 2
mov dword [esp + 0x1e8], 8
mov byte [esp + 0x1ec], 3
mov dword [esp + 0x1f0], 2
mov dword [esp + 0x1f8], 2
mov dword [esp + 0x200], 0x20
mov dword [esp + 0x204], 3
mov dword [esp + 0x208], 0
mov byte [esp + 0x29d0], bl
mov byte [esp + 0x20c], 3
lea ecx, [esp + 0x45d8]
mov dword [esp + 0x59e0], eax
lea eax, [esp + 0x41d8]
mov dword [esp + 0x59e4], 0x100be690
mov dword [esp + 0x59e8], eax
lea eax, [esp + 0x6de8]
mov dword [esp + 0x59ec], 0x100bfaa0
mov dword [esp + 0x59f0], eax
lea eax, [esp + 0x29d0]
mov dword [esp + 0x59f4], 0x100be690
mov dword [esp + 0x59f8], eax
lea eax, [esp + 0x190]
mov dword [esp + 0x59fc], 0x100bfaa0
mov dword [esp + 0x2de0], eax
lea eax, [esp + 0x59e0]
mov dword [esp + 0x2de4], 4
mov dword [esp + 0x2dd8], eax
lea eax, [esp + 0x2dd0]
mov dword [esp + 0x2ddc], 4
push eax
push ecx
call fcn.100a4530
add esp, 8
mov ebx, dword [ebp + 0xc]
mov esi, dword [esp + 0x45d8]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x10008551
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push dword [esp + 0x45e0]
push esi
push ebx
push eax
call dword [ecx + 0x14]
add esp, 0x10
mov eax, dword [esp + 0x45dc]
test eax, eax
je 0x10008568
push 1
push eax
push esi
call fcn.10004680
add esp, 0xc
mov eax, 0x63
mov dword [edi + 8], eax
mov dword [edi + 4], 0
mov dword [edi], 2
mov esi, edi
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp byte [esp + 0x29d0], 0
mov eax, ebx
jne 0x10008904
movss xmm0, dword [0x100d56e8]
lea edx, [esp + 0x15c0]
mov ecx, eax
sub ecx, edx
mov edx, 1
add ecx, 0xfffffffc
nop word cs:[eax + eax]
nop
cmp ebx, eax
je 0x10008904
add ecx, 0xfffffff0
inc edx
ucomiss xmm0, dword [ebx]
lea esi, [ebx + 0x10]
mov ebx, esi
jb 0x100085c0
lea ebx, [edx - 1]
cmp esi, eax
je 0x10008695
shr ecx, 4
jmp 0x10008601
ucomiss xmm0, dword [esi]
cmovae ebx, eax
inc edx
add esi, 0x10
dec ecx
je 0x10008695
cmp ebx, edx
mov eax, ebx
ja 0x100085f0
mov eax, edx
jmp 0x100085f0
movapd xmm0, xmmword [esp + 0x60]
movapd xmmword [esp + 0x20], xmm0
jmp 0x10008831
mov eax, edx
lea ecx, [esp + 0x190]
mov edx, edi
push eax
call fcn.10009db0
add esp, 4
mov eax, dword [esp + 0xfc]
mov edi, dword [ebp + 8]
test eax, eax
jne 0x10007c20
jmp 0x10007c35
mov eax, dword [esp + 8]
movsd xmm2, qword [esp + 0x15c8]
movsd xmm1, qword [esp + 0x10]
or dword [esp + 4], eax
je 0x10008793
movapd xmm0, xmmword [esp + 0x60]
subsd xmm0, xmm2
andpd xmm0, xmmword [0x100d56c0]
ucomisd xmm1, xmm0
jbe 0x10008793
mov dword [esp + 8], 0
mov dword [esp + 4], 1
jmp 0x1000882b
xor eax, eax
cmp ebx, 1
mov ecx, str.yiesQuantizationResult_q
mov edx, 0x100d5acd
mov dword [esp + str.__eliminated_opaque_tRNS_chunk_entries..._entr_transparent], 0x100d5ab4
mov dword [esp + 0x194], 3
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x7de8], ebx
setne al
cmove edx, ecx
lea ecx, [esp + 0x190]
lea eax, [eax + eax + 1]
mov dword [esp + 0x6de8], edx
mov dword [esp + 0x6dec], eax
lea eax, [esp + 0x7de8]
mov dword [esp + 0x2dd0], eax
lea eax, [esp + 0x6de8]
mov dword [esp + 0x2dd4], 0x100bfe40
mov dword [esp + 0x2dd8], eax
lea eax, [esp + 0x2dd0]
mov dword [esp + 0x2ddc], 0x10015340
mov dword [esp + 0x198], eax
lea eax, [esp + 0x45d8]
mov dword [esp + 0x19c], 2
push ecx
push eax
call fcn.100a4530
add esp, 8
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x45d8]
mov eax, dword [edi + 0x28]
test eax, eax
je 0x10008776
mov ecx, dword [edi + 0x2c]
mov edx, dword [ecx + 8]
dec edx
and edx, 0xfffffff8
lea eax, [edx + eax + 8]
push dword [esp + 0x45e0]
push esi
push edi
push eax
call dword [ecx + 0x14]
add esp, 0x10
mov eax, dword [esp + 0x45dc]
test eax, eax
je 0x10008904
push 1
push eax
push esi
call fcn.10004680
jmp 0x10008901
xor ebx, ebx
ucomisd xmm2, qword [esp + 0x38]
mov dword [esp + 8], 0
mov dword [esp + 4], 1
seta bl
inc ebx
cmp bx, di
jae 0x1000882b
movapd xmmword [esp + 0x20], xmm2
push 0
lea eax, [esp + 0x45dc]
push eax
push esi
lea eax, [esp + 0x15cc]
push eax
call fcn.1000a370
add esp, 0x10
cmp dword [esp + 0x15c0], 0
jne 0x10007bee
movsd xmm0, qword [esp + 0x15c8]
movapd xmm2, xmmword [esp + 0x20]
movsd xmm1, qword [esp + 0x10]
subsd xmm2, xmm0
andpd xmm2, xmmword [0x100d56c0]
ucomisd xmm1, xmm2
ja 0x10008611
xor eax, eax
ucomisd xmm0, qword [esp + 0x38]
movapd xmm2, xmm0
seta al
lea ebx, [eax + ebx + 1]
cmp bx, di
jb 0x100087b4
jmp 0x10008611
movapd xmmword [esp + 0x20], xmm2
lea eax, [esp + 0x45d8]
lea ecx, [esp + 0x190]
push 0x1408
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 8]
movapd xmm0, xmmword [esp + 0x20]
mov edi, dword [ebp + 8]
mov dword [esp + 0x159c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x1598], eax
mov eax, dword [esp + 0xfc]
movsd qword [esp + 0x15a0], xmm0
test eax, eax
jne 0x10007c20
jmp 0x10007c35
lea ecx, [esi - 0x10]
movss dword [esp + 0x2dd0], xmm1
mov dword [esp + 0x2dd4], edx
inc edx
mov dword [esp + 0x190], esi
mov dword [esp + 0x194], eax
lea eax, [esp + 0x45d8]
mov dword [esp + 0x2dd8], ecx
lea ecx, [esp + 0x2dd0]
mov dword [esp + 0x198], edx
push ecx
lea ecx, [esp + 0x194]
push ecx
push eax
call fcn.10021940
add esp, 0xc
cmp dword [esp + 0x45e0], 0
je 0x10008904
mov eax, dword [esp + 0x15c0]
lea ecx, [esp + 0x15c0]
dec eax
push dword [esp + 0x45dc]
push eax
push ecx
call fcn.1000bd80
add esp, 0xc
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x15c0]
lea eax, [esi + 0x10]
push 0x1408
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edi, dword [ebp + 0xc]
lea eax, [esi + 0x1430]
movzx ebx, byte [edi + 0x45]
push 0x400
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov ecx, dword [esp + 0x60]
movzx eax, byte [edi + 0x44]
movsd xmm0, qword [esp + 0x20]
movsd xmm1, qword [ebp + 0x18]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi], ecx
movzx ecx, byte [esp + 0x1d]
movsd qword [esi + 8], xmm0
mov dword [esi + 0x1418], 0
movsd qword [esi + 0x1420], xmm1
mov dword [esi + 0x1428], 0
mov dword [esi + 0x142c], 0
mov dword [esi + 0x1830], 0x3f800000
mov byte [esi + 0x1834], al
mov byte [esi + 0x1835], bl
mov byte [esi + 0x1836], cl
jmp 0x1000857f
push 0x100d59dc
push eax
push esi
call fcn.100b6af0
add esp, 0xc
ud2
push 0x100d59dc
push eax
push edx
call fcn.100b6af0
add esp, 0xc
ud2