Function at 0x140015f80
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x17d8
call fcn.1400507c0
sub rsp, rax
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x1740], xmm11
movdqa xmmword [rbp + 0x1730], xmm10
movdqa xmmword [rbp + 0x1720], xmm9
movdqa xmmword [rbp + 0x1710], xmm8
movdqa xmmword [rbp + 0x1700], xmm7
movaps xmmword [rbp + 0x16f0], xmm6
and rsp, 0xffffffffffffffe0
mov rsi, r9
mov qword [rsp + 0x120], r8
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x178], rcx
movzx eax, byte [0x142822100]
mov edx, 0x1300000
xor ecx, ecx
call fcn.140032080
mov qword [rsp + 0x138], rax
test rax, rax
je 0x140018421
mov rdi, qword [rbp + 0x17c8]
xor eax, eax
mov r14, qword [rsp + 0x138]
nop word [rax + rax]
mov rbx, rax
lea rcx, [r14 + rax]
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [r14 + rbx]
add rcx, 0x400
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [r14 + rbx]
add rcx, 0x800
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [r14 + rbx]
add rcx, 0xc00
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [r14 + rbx]
add rcx, 0x1000
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
lea rax, [rbx + 0x1400]
cmp rax, 0x12ffc00
jne 0x140016030
lea rcx, [r14 + rbx]
add rcx, 0x1400
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
mov dword [rsp + 0x720], 1
mov dword [rsp + 0x180], 0x20
mov dword [rsp + 0x220], 0x4c00
mov dword [rsp + 0x640], 2
mov dword [rsp + 0x1a0], 0x13
mov dword [rsp + 0x1c0], 2
mov dword [rsp + 0x1e0], 0x20
mov dword [rsp + 0x200], 0x20
mov dword [rsp + 0x100], 0
mov dword [rsp + 0xf40], 0
lea rax, [rsp + 0x720]
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], 4
lea rax, [rsp + 0x180]
mov qword [rsp + 0x250], rax
mov qword [rsp + 0x258], 4
lea rax, [rsp + 0x220]
mov qword [rsp + 0x260], rax
mov qword [rsp + 0x268], 4
lea rax, [rsp + 0x640]
mov qword [rsp + 0x270], rax
mov qword [rsp + 0x278], 4
lea rax, [rsp + 0x1a0]
mov qword [rsp + 0x280], rax
mov qword [rsp + 0x288], 4
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x290], rax
mov qword [rsp + 0x298], 4
lea rax, [rsp + 0x1e0]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], 4
mov qword [rsp + 0x2b0], rsi
mov qword [rsp + 0x2b8], 0x20
lea rax, [rsp + 0x200]
mov qword [rsp + 0x2c0], rax
mov qword [rsp + 0x2c8], 4
mov qword [rsp + 0x2d0], rdi
mov qword [rsp + 0x2d8], 0x20
lea rax, [rsp + 0x100]
mov qword [rsp + 0x2e0], rax
mov qword [rsp + 0x2e8], 4
mov qword [rsp + 0x2f0], 1
mov qword [rsp + 0x2f8], 0
lea rax, [rsp + 0xf40]
mov qword [rsp + 0x300], rax
mov qword [rsp + 0x308], 4
mov qword [rsp + 0x310], 1
mov qword [rsp + 0x318], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x770], xmm0
movaps xmmword [rsp + 0x760], xmm0
movaps xmmword [rsp + 0x750], xmm0
movaps xmmword [rsp + 0x740], xmm0
mov qword [rsp + 0x780], 0
lea rcx, [rsp + 0x740]
lea r8, [rsp + 0x240]
mov edx, 0x40
mov r9d, 0xe
call fcn.140007070
movaps xmm0, xmmword [rsp + 0x740]
movdqa xmm1, xmmword [rsp + 0x750]
movdqa xmm2, xmmword [rsp + 0x760]
movdqa xmm3, xmmword [rsp + 0x770]
movdqa xmmword [rsp + 0xb70], xmm3
movdqa xmmword [rsp + 0xb60], xmm2
movdqa xmmword [rsp + 0xb50], xmm1
movaps xmmword [rsp + 0xb40], xmm0
mov qword [rsp + 0xb80], 0
lea rsi, [rsp + 0xb40]
mov edx, 0x400
mov r9d, 0x48
mov rcx, r14
mov r8, rsi
call fcn.140007590
mov dword [rsp + 0xb80], 1
lea rcx, [r14 + 0x400]
mov edx, 0x400
mov r9d, 0x48
mov r8, rsi
call fcn.140007590
xor r15d, r15d
mov rbx, r14
nop word [rax + rax]
lea rax, [r15 + 1]
mov qword [rsp + 0x148], rax
mov eax, 0xffffffff
mov qword [rsp + 0x130], rax
xor eax, eax
mov qword [rsp + 0xf8], rax
xor r14d, r14d
mov qword [rsp + 0xb0], r15
nop
lea rax, [r14 + 1]
mov rsi, r14
or rsi, r15
xor ecx, ecx
test esi, esi
sete cl
mov dword [rsp + 0xbc], ecx
mov edi, ecx
add edi, edi
mov qword [rsp + 0x150], rax
imul eax, eax, 0x1300
xor edx, edx
cmp r14, 3
mov ecx, 0
mov qword [rsp + 0xf0], rcx
cmove rax, rdx
mov qword [rsp + 0x168], rax
xor eax, eax
mov qword [rsp + 0x128], rax
mov r8d, 0x400
lea rcx, [rsp + 0xf40]
xor edx, edx
call sub.msvcrt.dll_memset
mov r8d, 0x400
lea rcx, [rsp + 0xb40]
xor edx, edx
call sub.msvcrt.dll_memset
mov r8d, 0x400
lea rcx, [rsp + 0x740]
xor edx, edx
call sub.msvcrt.dll_memset
test r15, r15
jne 0x140016570
cmp r14, 1
ja 0x140016570
mov qword [rsp + 0xb40], r15
mov qword [rsp + 0xb48], 0
mov qword [rsp + 0xb50], r14
mov qword [rsp + 0xb58], 0x4c00
mov qword [rsp + 0xb60], 2
mov qword [rsp + 0xb68], 2
test esi, esi
je 0x1400164df
xor eax, eax
mov qword [rsp + 0xf0], rax
mov al, 1
mov qword [rsp + 0x128], rax
mov dword [rsp + 0xbc], 0
xor edi, edi
jmp 0x140016570
mov qword [rsp + 0xb70], 1
lea rsi, [rsp + 0xf40]
mov rcx, rsi
lea rdx, [rsp + 0xb40]
lea rdi, [rsp + 0x740]
mov r8, rdi
xor r9d, r9d
call fcn.140007790
mov r8d, 0x400
mov r12, r14
lea r14, [rsp + 0x240]
mov rcx, r14
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rcx, rsi
mov rdx, r14
mov r14, r12
mov r8, rdi
xor r9d, r9d
call fcn.140007790
mov edi, 2
mov al, 1
mov dword [rsp + 0xbc], eax
mov eax, 1
mov qword [rsp + 0xf0], rax
mov al, 1
mov qword [rsp + 0x128], rax
nop word cs:[rax + rax]
mov qword [rsp + 0x160], r14
imul eax, r14d, 0x1300
lea ecx, [rax - 1]
mov qword [rsp + 0x158], rcx
mov r12d, eax
or r12d, edi
imul ecx, r12d, 0x286bca1b
ror ecx, 0xa
lea r14d, [rax + rdi]
add r14d, 0x4c00
cmp ecx, 0x35e51
cmovae r14d, r12d
dec r14d
mov rax, qword [rsp + 0xf8]
lea esi, [rdi + rax]
shl rsi, 0xa
add rsi, rbx
nop word cs:[rax + rax]
mov eax, r12d
shr eax, 0xa
imul rax, rax, 0xd79435f
shr rax, 0x20
imul eax, eax, 0xffffb400
mov rcx, qword [rsp + 0x130]
add ecx, edi
add eax, ecx
cmove r14d, ecx
mov r15d, r14d
cmp byte [rsp + 0x128], 0
je 0x1400166a0
mov ebx, edi
and ebx, 0x7f
jne 0x14001667e
mov rcx, qword [rsp + 0xf0]
inc rcx
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xb70], rcx
lea rcx, [rsp + 0xf40]
lea rdx, [rsp + 0xb40]
lea r13, [rsp + 0x740]
mov r8, r13
xor r9d, r9d
call fcn.140007790
mov r8d, 0x400
lea rcx, [rsp + 0x240]
mov rdx, r13
call sub.msvcrt.dll_memcpy
lea rcx, [rsp + 0xf40]
lea rdx, [rsp + 0x240]
mov r8, r13
xor r9d, r9d
call fcn.140007790
mov eax, ebx
lea rax, [rsp + rax*8]
add rax, 0x740
mov eax, dword [rax]
cmp byte [rsp + 0xbc], 0
je 0x1400166c3
jmp 0x140016700
cmp r14d, 0x4c00
jae 0x140018421
mov rax, r15
shl rax, 0xa
add rax, rbx
mov eax, dword [rax]
cmp byte [rsp + 0xbc], 0
jne 0x140016700
cmp qword [rsp + 0xb0], 0
je 0x1400166de
lea ecx, [rdi + 0x38ff]
mov r13, qword [rsp + 0x168]
jmp 0x140016706
cmp qword [rsp + 0x160], 0
je 0x140016700
mov rcx, qword [rsp + 0x158]
add ecx, edi
jmp 0x140016703
lea ecx, [rdi - 1]
xor r13d, r13d
mov rdx, qword [rsp + 0xf8]
lea r8d, [rdx + rdi]
imul rax, rax
shr rax, 0x20
mov ecx, ecx
imul rax, rcx
shr rax, 0x20
not rax
add r13, rcx
add r13, rax
mov rax, r13
movabs rcx, 0xd79435e50d79435f
mul rcx
cmp r8d, 0x4c00
jae 0x140018421
mov rbx, rdx
mov dword [rsp + 0xe8], r12d
mov r8d, 0x400
lea r12, [rsp + 0x1370]
mov rcx, r12
mov rdx, rsi
call sub.msvcrt.dll_memcpy
cmp r14d, 0x4c00
jae 0x140018421
inc edi
shr rbx, 0xe
imul rax, rbx, 0x4c00
sub r13, rax
cmp qword [rsp + 0xb0], 0
setne r9b
shl r15, 0xa
mov rbx, qword [rsp + 0x138]
add r15, rbx
shl r13, 0xa
add r13, rbx
mov rcx, r15
mov rdx, r13
mov r8, r12
call fcn.140007790
mov r8d, 0x400
mov rcx, rsi
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov r12d, dword [rsp + 0xe8]
inc r12d
inc r14d
add rsi, 0x400
cmp edi, 0x1300
jne 0x1400165d0
mov rax, qword [rsp + 0xf8]
add eax, 0x1300
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0x130]
add eax, 0x1300
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x150]
mov r14, rax
cmp rax, 4
mov r15, qword [rsp + 0xb0]
jne 0x1400163d0
mov rax, qword [rsp + 0x148]
mov r15, rax
cmp rax, 2
jne 0x1400163a0
mov rdx, rbx
add rdx, 0x12ffc00
lea rcx, [rsp + 0x240]
mov r8d, 0x400
call sub.msvcrt.dll_memcpy
mov edx, 0x20
mov ecx, 8
call fcn.140032080
test rax, rax
je 0x140018421
mov rsi, rbx
mov rbx, rax
lea r8, [rsp + 0x240]
mov edx, 0x20
mov r9d, 0x400
mov rcx, rax
call fcn.140007590
mov rcx, qword [0x1428220c8]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
movzx eax, byte [rbx]
mov byte [rsp + 0x80], al
movzx eax, byte [rbx + 1]
mov byte [rsp + 0xa0], al
movzx eax, byte [rbx + 2]
mov byte [rsp + 0x90], al
movzx eax, byte [rbx + 3]
mov byte [rsp + 0x9f], al
movzx eax, byte [rbx + 4]
mov byte [rsp + 0x7c], al
movzx eax, byte [rbx + 5]
mov byte [rsp + 0x9e], al
movzx eax, byte [rbx + 6]
mov byte [rsp + 0x8e], al
movzx eax, byte [rbx + 7]
mov byte [rsp + 0x9d], al
movzx eax, byte [rbx + 8]
mov byte [rsp + 0x78], al
movzx eax, byte [rbx + 9]
mov byte [rsp + 0x9c], al
movzx eax, byte [rbx + 0xa]
mov byte [rsp + 0x8c], al
movzx eax, byte [rbx + 0xb]
mov byte [rsp + 0x9b], al
movzx eax, byte [rbx + 0xc]
mov byte [rsp + 0x74], al
movzx eax, byte [rbx + 0xd]
mov byte [rsp + 0x9a], al
movzx eax, byte [rbx + 0xe]
mov byte [rsp + 0x8a], al
movzx eax, byte [rbx + 0xf]
mov byte [rsp + 0x99], al
movzx eax, byte [rbx + 0x10]
mov byte [rsp + 0x70], al
movzx eax, byte [rbx + 0x11]
mov byte [rsp + 0x98], al
movzx eax, byte [rbx + 0x12]
mov byte [rsp + 0x88], al
movzx eax, byte [rbx + 0x13]
mov byte [rsp + 0x97], al
movzx eax, byte [rbx + 0x14]
mov byte [rsp + 0x6c], al
movzx eax, byte [rbx + 0x15]
mov byte [rsp + 0x96], al
movzx eax, byte [rbx + 0x16]
mov byte [rsp + 0x86], al
movzx eax, byte [rbx + 0x17]
mov byte [rsp + 0x95], al
movzx eax, byte [rbx + 0x18]
mov byte [rsp + 0x68], al
movzx eax, byte [rbx + 0x19]
mov byte [rsp + 0x94], al
movzx eax, byte [rbx + 0x1a]
mov byte [rsp + 0x84], al
movzx eax, byte [rbx + 0x1b]
mov byte [rsp + 0x93], al
movzx eax, byte [rbx + 0x1c]
mov byte [rsp + 0x64], al
movzx eax, byte [rbx + 0x1d]
mov byte [rsp + 0x92], al
movzx eax, byte [rbx + 0x1e]
mov byte [rsp + 0x82], al
movzx eax, byte [rbx + 0x1f]
mov byte [rsp + 0x91], al
movzx eax, byte [0x142822100]
xor ecx, ecx
mov rsi, qword [rsp + 0x120]
mov rdx, rsi
call fcn.140032080
test rax, rax
je 0x140018421
mov r14, rax
movabs rdi, 0x8000000000000000
mov rcx, rax
mov rdx, qword [rsp + 0x140]
mov r8, rsi
call sub.msvcrt.dll_memcpy
cmp rsi, 0x10
jb 0x140018df1
mov qword [rsp + 0x170], rbx
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0xf8], al
movzx edi, byte [rsp + 0xa0]
movzx ecx, byte [rsp + 0x90]
movzx eax, byte [rsp + 0x9f]
mov byte [rsp + 0x130], al
movzx r9d, byte [rsp + 0x7c]
mov qword [rsp + 0xe8], r14
movzx eax, byte [rsp + 0x9e]
mov byte [rsp + 0x128], al
movzx r10d, byte [rsp + 0x8e]
movzx r15d, byte [rsp + 0x9d]
movzx r14d, byte [rsp + 0x78]
movzx r13d, byte [rsp + 0x9c]
movzx ebx, byte [rsp + 0x8c]
movzx r8d, byte [rsp + 0x9b]
movzx r11d, byte [rsp + 0x74]
movzx esi, byte [rsp + 0x9a]
movzx edx, byte [rsp + 0x8a]
movzx r12d, byte [rsp + 0x99]
mov rax, qword [rbp + 0x17c0]
movq xmm6, qword [rax]
mov eax, dword [rax + 8]
mov dword [rsp + 0xb0], eax
movzx eax, byte [rsp + 0x70]
mov byte [rsp + 0xf0], al
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x168], al
movzx eax, byte [rsp + 0x88]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x97]
mov byte [rsp + 0x158], al
movzx eax, byte [rsp + 0x6c]
mov byte [rsp + 0x150], al
movzx eax, byte [rsp + 0x96]
mov byte [rsp + 0x148], al
movzx eax, byte [rsp + 0x86]
mov byte [rsp + 0x140], al
movzx eax, byte [rsp + 0x95]
mov byte [rsp + 0xaf], al
movzx eax, byte [rsp + 0x93]
mov byte [rsp + 0xbc], al
movzx eax, byte [rsp + 0x84]
mov byte [rsp + 0x138], al
movzx eax, byte [rsp + 0x94]
mov byte [rsp + 0xaa], al
movzx eax, byte [rsp + 0x68]
mov byte [rsp + 0xa9], al
movzx eax, byte [rsp + 0x64]
mov byte [rsp + 0xae], al
movzx eax, byte [rsp + 0x92]
mov byte [rsp + 0xad], al
movzx eax, byte [rsp + 0x82]
mov byte [rsp + 0xac], al
movzx eax, byte [rsp + 0x91]
mov byte [rsp + 0xab], al
movzx eax, byte [section..data]
cmp al, 0xff
mov eax, edi
jne 0x140016cee
mov byte [rsp + 0xa2], r12b
mov byte [rsp + 0xa3], dl
mov byte [rsp + 0xa4], sil
mov byte [rsp + 0xa5], r11b
mov byte [rsp + 0xa1], bl
mov edi, r8d
mov esi, r13d
mov ebx, r14d
mov r13d, r15d
mov r15d, r10d
mov byte [rsp + 0xa6], r9b
mov byte [rsp + 0xa7], cl
mov byte [rsp + 0xa8], al
lea rcx, [rsp + 0xb40]
call fcn.14000b400
lea rcx, [rsp + 0x740]
call fcn.14000b430
mov r14d, dword [rsp + 0xb48]
mov eax, r14d
not eax
test eax, 0xc000000
jne 0x140016c7c
call fcn.140015f70
not eax
test al, 6
sete al
jmp 0x140016c7e
xor eax, eax
mov ecx, dword [rsp + 0x744]
and ecx, 0x20
shr ecx, 5
shr r14d, 0x1c
and r14b, al
and r14b, cl
mov byte [section..data], r14b
movzx eax, byte [rsp + 0xa8]
movzx ecx, byte [rsp + 0xa7]
movzx r9d, byte [rsp + 0xa6]
mov r10d, r15d
mov r15d, r13d
mov r14d, ebx
mov r13d, esi
mov r8d, edi
movzx ebx, byte [rsp + 0xa1]
movzx r11d, byte [rsp + 0xa5]
movzx esi, byte [rsp + 0xa4]
movzx edx, byte [rsp + 0xa3]
movzx r12d, byte [rsp + 0xa2]
movdqu xmm0, xmmword [0x14281b478]
movdqa xmmword [rsp + 0xf40], xmm0
mov edi, edx
mov edx, r12d
mov r12d, esi
mov esi, r8d
mov r8d, ebx
mov ebx, r13d
mov r13d, r15d
movzx r15d, byte [rsp + 0xf8]
mov byte [rsp + 0xf50], r15b
mov byte [rsp + 0xf51], al
mov byte [rsp + 0xf52], cl
movzx eax, byte [rsp + 0x130]
mov byte [rsp + 0xf53], al
mov byte [rsp + 0xf54], r9b
movzx eax, byte [rsp + 0x128]
mov byte [rsp + 0xf55], al
mov byte [rsp + 0xf56], r10b
mov byte [rsp + 0xf57], r13b
mov byte [rsp + 0xf58], r14b
mov byte [rsp + 0xf59], bl
mov byte [rsp + 0xf5a], r8b
mov byte [rsp + 0xf5b], sil
mov byte [rsp + 0xf5c], r11b
mov byte [rsp + 0xf5d], r12b
mov byte [rsp + 0xf5e], dil
mov byte [rsp + 0xf5f], dl
movzx eax, byte [rsp + 0xf0]
mov byte [rsp + 0xf60], al
movzx eax, byte [rsp + 0x168]
mov byte [rsp + 0xf61], al
movzx eax, byte [rsp + 0x160]
mov byte [rsp + 0xf62], al
movzx eax, byte [rsp + 0x158]
mov byte [rsp + 0xf63], al
movzx eax, byte [rsp + 0x150]
mov byte [rsp + 0xf64], al
movzx eax, byte [rsp + 0x148]
mov byte [rsp + 0xf65], al
movzx eax, byte [rsp + 0x140]
mov byte [rsp + 0xf66], al
movzx eax, byte [rsp + 0xaf]
mov byte [rsp + 0xf67], al
movzx eax, byte [rsp + 0xa9]
mov byte [rsp + 0xf68], al
movzx eax, byte [rsp + 0xaa]
mov byte [rsp + 0xf69], al
movzx eax, byte [rsp + 0x138]
mov byte [rsp + 0xf6a], al
movzx eax, byte [rsp + 0xbc]
mov byte [rsp + 0xf6b], al
movzx eax, byte [rsp + 0xae]
mov byte [rsp + 0xf6c], al
movzx eax, byte [rsp + 0xad]
mov byte [rsp + 0xf6d], al
movzx eax, byte [rsp + 0xac]
mov byte [rsp + 0xf6e], al
movzx eax, byte [rsp + 0xab]
mov byte [rsp + 0xf6f], al
mov dword [rsp + 0xf70], 0
movq qword [rsp + 0xf74], xmm6
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0xf7c], eax
pxor xmm0, xmm0
movdqa xmmword [rsp + 0xfb0], xmm0
movdqa xmmword [rsp + 0xfa0], xmm0
movdqa xmmword [rsp + 0xf90], xmm0
movdqa xmmword [rsp + 0xf80], xmm0
mov byte [rsp + 0xfc0], 0
movdqa xmmword [rsp + 0xd0], xmm0
movdqa xmmword [rsp + 0xc0], xmm0
xor eax, eax
test al, al
jne 0x140018421
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x740], rax
mov qword [rsp + 0x748], rax
mov qword [rsp + 0x750], 0
movzx eax, byte [section..data]
cmp al, 1
mov rsi, qword [rsp + 0x120]
mov r14, qword [rsp + 0xe8]
jne 0x140016f58
lea rcx, [rsp + 0xf40]
lea rdx, [rsp + 0x740]
call fcn.1400152f0
movzx eax, byte [section..data]
cmp al, 1
jne 0x140016f7d
lea rdx, [rsp + 0xf80]
lea rcx, [rsp + 0xf40]
call fcn.140015db0
jmp 0x140017110
movdqa xmm4, xmmword [rsp + 0xf40]
movdqa xmm2, xmmword [rsp + 0xf50]
movdqa xmm1, xmmword [rsp + 0xf60]
movdqa xmm0, xmmword [rsp + 0xf70]
mov eax, 0xa
movdqa xmm6, xmm4
movdqa xmm3, xmm2
movdqa xmm5, xmm0
movdqa xmm7, xmm1
nop word cs:[rax + rax]
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x10
pslld xmm5, 0x10
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x14
pslld xmm3, 0xc
por xmm3, xmm8
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x18
pslld xmm5, 8
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x19
pslld xmm3, 7
por xmm3, xmm8
pshufd xmm7, xmm7, 0x39
pshufd xmm5, xmm5, 0x4e
pshufd xmm6, xmm6, 0x93
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x10
pslld xmm5, 0x10
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x14
pslld xmm3, 0xc
por xmm3, xmm8
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x18
pslld xmm5, 8
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x19
pslld xmm3, 7
por xmm3, xmm8
pshufd xmm7, xmm7, 0x93
pshufd xmm5, xmm5, 0x4e
pshufd xmm6, xmm6, 0x39
dec rax
jne 0x140016fc0
paddd xmm6, xmm4
paddd xmm3, xmm2
paddd xmm7, xmm1
paddd xmm5, xmm0
movdqa xmmword [rsp + 0xf80], xmm6
movdqa xmmword [rsp + 0xf90], xmm3
movdqa xmmword [rsp + 0xfa0], xmm7
movdqa xmmword [rsp + 0xfb0], xmm5
movd eax, xmm0
inc eax
mov dword [rsp + 0xf70], eax
lea r13, [rsi - 0x10]
movaps xmm0, xmmword [rsp + 0xf80]
xorps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xf90]
movaps xmmword [rsp + 0xc0], xmm0
xorps xmm1, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0xd0], xmm1
mov byte [rsp + 0xfc0], 0x20
movzx eax, byte [0x140058001]
cmp al, 0xff
je 0x14001790d
cmp al, 1
jne 0x14001796c
lea rcx, [rsp + 0x740]
lea rdx, [rsp + 0xc0]
call fcn.1400192e0
movaps xmm6, xmmword [rsp + 0x740]
movaps xmm7, xmmword [rsp + 0x750]
movaps xmm0, xmmword [rsp + 0x760]
movaps xmm1, xmmword [rsp + 0x770]
movaps xmmword [rsp + 0x660], xmm0
movaps xmmword [rsp + 0x670], xmm1
movaps xmm0, xmmword [rsp + 0x780]
movaps xmmword [rsp + 0x680], xmm0
movaps xmm0, xmmword [rsp + 0x790]
movaps xmmword [rsp + 0x690], xmm0
lea rcx, [rsp + 0x740]
lea rdx, [rsp + 0x660]
mov r8, rdx
call fcn.140019430
movaps xmm10, xmmword [rsp + 0x740]
movaps xmm11, xmmword [rsp + 0x750]
movaps xmm8, xmmword [rsp + 0x760]
movaps xmm9, xmmword [rsp + 0x770]
mov qword [rsp + 0x20], 0x3ffffff
lea rdi, [rsp + 0x6c0]
mov r8d, 0x3ffffff
mov r9d, 0x3ffffff
mov rcx, rdi
mov rdx, 0xffffffffffffffff
call fcn.140019a90
movaps xmmword [rsp + 0x6b0], xmm11
movaps xmmword [rsp + 0x6a0], xmm10
lea rsi, [rsp + 0x180]
lea rdx, [rsp + 0x6a0]
mov rcx, rsi
mov r8, rdi
call fcn.140019de0
mov qword [rsp + 0x20], 0x1a
lea rdi, [rsp + 0x700]
mov edx, 0x40
mov r8d, 0x1a
mov r9d, 0x1a
mov rcx, rdi
call fcn.140019a90
movaps xmmword [rsp + 0x6f0], xmm11
movaps xmmword [rsp + 0x6e0], xmm10
lea r15, [rsp + 0x720]
lea rdx, [rsp + 0x6e0]
mov rcx, r15
mov r8, rdi
call fcn.140019e00
lea rdi, [rsp + 0x220]
mov rcx, rdi
mov rdx, r15
call fcn.140019e20
lea rcx, [rsp + 0xb40]
mov rdx, rsi
mov r8, rdi
call fcn.140019b00
movaps xmm10, xmmword [rsp + 0xb40]
movaps xmm11, xmmword [rsp + 0xb50]
movaps xmmword [rsp + 0x1b0], xmm11
movaps xmmword [rsp + 0x1a0], xmm10
lea rsi, [rsp + 0x1c0]
lea rdx, [rsp + 0x1a0]
mov rcx, rsi
call fcn.140019e30
lea rdi, [rsp + 0x200]
mov rcx, rdi
mov rdx, rsi
call fcn.140019e20
movaps xmmword [rsp + 0x1f0], xmm9
movaps xmmword [rsp + 0x1e0], xmm8
lea rcx, [rsp + 0xb40]
lea rdx, [rsp + 0x1e0]
mov r8, rdi
call fcn.140019b00
movaps xmm8, xmmword [rsp + 0xb40]
movaps xmm9, xmmword [rsp + 0xb50]
mov qword [rsp + 0x20], 0xffffffffffffffff
lea rdi, [rsp + 0xb40]
mov edx, 0x3ffffff
mov rcx, rdi
mov r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
call fcn.140019a90
movaps xmmword [rsp + 0x110], xmm11
movaps xmmword [rsp + 0x100], xmm10
lea rsi, [rsp + 0x640]
lea rdx, [rsp + 0x100]
mov rcx, rsi
mov r8, rdi
call fcn.140019de0
mov qword [rsp + 0x20], 0x1a
lea rdi, [rsp + 0x220]
mov edx, 0x40
mov r8d, 0x40
mov r9d, 0x40
mov rcx, rdi
call fcn.140019a90
movaps xmmword [rsp + 0x190], xmm9
movaps xmmword [rsp + 0x180], xmm8
lea rcx, [rsp + 0xb40]
lea rdx, [rsp + 0x180]
mov r8, rdi
call fcn.140019e00
movaps xmm10, xmmword [rsp + 0xb40]
movaps xmm11, xmmword [rsp + 0xb50]
movaps xmmword [rsp + 0x1b0], xmm11
movaps xmmword [rsp + 0x1a0], xmm10
lea rdi, [rsp + 0x1e0]
lea r8, [rsp + 0x1a0]
mov rcx, rdi
mov rdx, rsi
call fcn.140019b00
movaps xmmword [rsp + 0x1d0], xmm11
movaps xmmword [rsp + 0x1c0], xmm10
lea rsi, [rsp + 0x200]
lea rdx, [rsp + 0x1c0]
mov rcx, rsi
call fcn.140019e50
lea rcx, [rsp + 0xb40]
mov rdx, rdi
mov r8, rsi
call fcn.140019b00
movaps xmm10, xmmword [rsp + 0xb40]
movaps xmm11, xmmword [rsp + 0xb50]
mov qword [rsp + 0x20], 0x3ffffff
lea rdi, [rsp + 0xb40]
mov rcx, rdi
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140019a90
movaps xmmword [rsp + 0x110], xmm9
movaps xmmword [rsp + 0x100], xmm8
lea rsi, [rsp + 0x720]
lea rdx, [rsp + 0x100]
mov rcx, rsi
mov r8, rdi
call fcn.140019de0
mov qword [rsp + 0x20], 0x3ffffff
lea r15, [rsp + 0x6e0]
mov r8d, 0x3ffffff
mov r9d, 0x3ffffff
mov rcx, r15
mov rdx, 0xffffffffffffffff
call fcn.140019a90
movaps xmmword [rsp + 0x6d0], xmm11
movaps xmmword [rsp + 0x6c0], xmm10
lea rdi, [rsp + 0x640]
lea rdx, [rsp + 0x6c0]
mov rcx, rdi
mov r8, r15
call fcn.140019de0
mov qword [rsp + 0x20], 0x1a
lea r15, [rsp + 0x180]
mov edx, 0x40
mov r8d, 0x1a
mov r9d, 0x1a
mov rcx, r15
call fcn.140019a90
movaps xmmword [rsp + 0x710], xmm11
movaps xmmword [rsp + 0x700], xmm10
lea r12, [rsp + 0x220]
lea rdx, [rsp + 0x700]
mov rcx, r12
mov r8, r15
call fcn.140019e00
lea r15, [rsp + 0x1a0]
mov rcx, r15
mov rdx, r12
call fcn.140019e20
lea rcx, [rsp + 0xb40]
mov rdx, rdi
mov r8, r15
call fcn.140019b00
movaps xmm8, xmmword [rsp + 0xb40]
movaps xmm9, xmmword [rsp + 0xb50]
movaps xmmword [rsp + 0x1d0], xmm9
movaps xmmword [rsp + 0x1c0], xmm8
lea rdi, [rsp + 0x1e0]
lea rdx, [rsp + 0x1c0]
mov rcx, rdi
call fcn.140019e30
lea r15, [rsp + 0x200]
mov rcx, r15
mov rdx, rdi
call fcn.140019e20
lea rdi, [rsp + 0x6a0]
mov rcx, rdi
mov rdx, rsi
mov r8, r15
call fcn.140019b00
mov qword [rsp + 0x20], 0xffffffffffffffff
lea rsi, [rsp + 0xb40]
mov edx, 0x3ffffff
mov rcx, rsi
mov r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
call fcn.140019a90
movaps xmmword [rsp + 0x110], xmm9
movaps xmmword [rsp + 0x100], xmm8
lea r15, [rsp + 0x1340]
lea rdx, [rsp + 0x100]
mov rcx, r15
mov r8, rsi
call fcn.140019de0
lea rsi, [rsp + 0x1e0]
mov rcx, rsi
call fcn.140019e70
lea r12, [rsp + 0x100]
mov rcx, r12
mov rdx, r15
mov r8, rsi
call fcn.1400193e0
lea rsi, [rsp + 0x200]
mov rcx, rsi
call fcn.140019e70
lea r15, [rsp + 0xb40]
mov rcx, r15
mov rdx, rdi
mov r8, rsi
call fcn.1400193e0
lea rcx, [rsp + 0x180]
mov rdx, r12
mov r8, r15
call fcn.140019e80
lea rsi, [rsp + 0x8e0]
movdqa xmm8, xmmword [rsp + 0x180]
movdqa xmm9, xmmword [rsp + 0x190]
movdqa xmmword [rsp + 0x230], xmm9
movdqa xmmword [rsp + 0x220], xmm8
lea rdi, [rsp + 0x1a0]
lea rdx, [rsp + 0x220]
mov rcx, rdi
call fcn.140019380
movdqa xmmword [rsp + 0x650], xmm9
movdqa xmmword [rsp + 0x640], xmm8
lea r15, [rsp + 0x1c0]
lea rdx, [rsp + 0x640]
mov rcx, r15
mov r8, rdi
call fcn.140019360
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 1
lea rdi, [rsp + 0x1e0]
mov rcx, rdi
mov edx, 4
mov r8d, 3
mov r9d, 2
call fcn.1400193a0
lea rcx, [rsp + 0xb40]
mov rdx, r15
mov r8, rdi
call fcn.1400193e0
movdqa xmm10, xmmword [rsp + 0xb40]
movaps xmm11, xmmword [rsp + 0xb50]
movdqa xmmword [rsp + 0x210], xmm9
movdqa xmmword [rsp + 0x200], xmm8
movaps xmmword [rsp + 0x110], xmm11
movdqa xmmword [rsp + 0x100], xmm10
lea rdx, [rsp + 0x200]
lea r8, [rsp + 0x100]
mov rcx, rsi
call fcn.140019400
movaps xmmword [rsp + 0xb50], xmm11
movdqa xmmword [rsp + 0xb40], xmm10
lea rcx, [rsp + 0x900]
lea rdx, [rsp + 0xb40]
call fcn.140019420
movaps xmmword [rsp + 0x890], xmm7
movaps xmmword [rsp + 0x880], xmm6
movaps xmm0, xmmword [rsp + 0x660]
movaps xmm1, xmmword [rsp + 0x670]
movdqa xmm2, xmmword [rsp + 0x680]
movdqa xmm3, xmmword [rsp + 0x690]
movaps xmmword [rsp + 0x8a0], xmm0
movaps xmmword [rsp + 0x8b0], xmm1
movdqa xmmword [rsp + 0x8c0], xmm2
movdqa xmmword [rsp + 0x8d0], xmm3
mov byte [rsp + 0x740], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x920], xmm0
movaps xmmword [rsp + 0x930], xmm0
movaps xmmword [rsp + 0x940], xmm0
movaps xmmword [rsp + 0x950], xmm0
movups xmmword [rsp + 0x959], xmm0
movdqa xmm7, xmmword [rsp + 0x740]
movaps xmm6, xmmword [rsp + 0x750]
mov esi, dword [rsp + 0x760]
movdqu xmm0, xmmword [rsp + 0x764]
movdqa xmmword [rsp + 0x100], xmm0
mov eax, dword [rsp + 0x774]
mov dword [rsp + 0x110], eax
lea rdx, [rsp + 0x778]
lea rcx, [rsp + 0xb40]
mov r8d, 0x208
call sub.msvcrt.dll_memcpy
jmp 0x1400179dd
lea rcx, [rsp + 0xb40]
call fcn.14000b400
lea rcx, [rsp + 0x740]
call fcn.14000b430
mov esi, dword [rsp + 0xb48]
mov eax, esi
not eax
test eax, 0xc000000
jne 0x140017947
call fcn.140015f70
not eax
test al, 6
sete al
jmp 0x140017949
xor eax, eax
mov ecx, dword [rsp + 0x744]
and ecx, 0x20
shr ecx, 5
shr esi, 0x1c
and sil, al
and sil, cl
mov byte [0x140058001], sil
jne 0x140017163
xorps xmm0, xmm0
movaps xmmword [rsp + 0x100], xmm0
mov dword [rsp + 0x110], 0
mov eax, dword [rsp + 0xc3]
shr eax, 2
mov ecx, dword [rsp + 0xc6]
shr ecx, 4
mov edx, dword [rsp + 0xc9]
shr edx, 6
movd xmm6, eax
punpcklqdq xmm6, xmmword [rsp + 0xc0]
movd xmm0, ecx
movd xmm1, edx
punpcklqdq xmm1, xmm0
shufps xmm6, xmm1, 0x22
andps xmm6, xmmword [0x140059490]
mov esi, dword [rsp + 0xcc]
shr esi, 8
and esi, 0xfffff
movdqa xmm7, xmmword [rsp + 0xd0]
movabs rdi, 0x8000000000000000
movabs r15, 0x3fffffffbf
movdqa xmmword [rsp + 0x240], xmm7
movaps xmmword [rsp + 0x250], xmm6
mov dword [rsp + 0x260], esi
movaps xmm0, xmmword [rsp + 0x100]
movups xmmword [rsp + 0x264], xmm0
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x274], eax
lea rcx, [rsp + 0x278]
lea rdx, [rsp + 0xb40]
mov r8d, 0x208
call sub.msvcrt.dll_memcpy
mov byte [rsp + 0xc0], 0
mov byte [rsp + 0xc1], 0
mov byte [rsp + 0xc2], 0
mov byte [rsp + 0xc3], 0
mov byte [rsp + 0xc4], 0
mov byte [rsp + 0xc5], 0
mov byte [rsp + 0xc6], 0
mov byte [rsp + 0xc7], 0
mov byte [rsp + 0xc8], 0
mov byte [rsp + 0xc9], 0
mov byte [rsp + 0xca], 0
mov byte [rsp + 0xcb], 0
mov byte [rsp + 0xcc], 0
mov byte [rsp + 0xcd], 0
mov byte [rsp + 0xce], 0
mov byte [rsp + 0xcf], 0
mov byte [rsp + 0xd0], 0
mov byte [rsp + 0xd1], 0
mov byte [rsp + 0xd2], 0
mov byte [rsp + 0xd3], 0
mov byte [rsp + 0xd4], 0
mov byte [rsp + 0xd5], 0
mov byte [rsp + 0xd6], 0
mov byte [rsp + 0xd7], 0
mov byte [rsp + 0xd8], 0
mov byte [rsp + 0xd9], 0
mov byte [rsp + 0xda], 0
mov byte [rsp + 0xdb], 0
mov byte [rsp + 0xdc], 0
mov byte [rsp + 0xdd], 0
mov byte [rsp + 0xde], 0
mov byte [rsp + 0xdf], 0
mov dword [rsp + 0xf70], 1
mov byte [rsp + 0xfc0], 0
lea rcx, [rsp + 0x480]
lea rdx, [rsp + 0xf40]
mov r8d, 0x84
call sub.msvcrt.dll_memcpy
cmp r13, r15
jbe 0x140017e46
mov byte [rsp + 0x4c0], 0
mov byte [rsp + 0x4c1], 0
mov byte [rsp + 0x4c2], 0
mov byte [rsp + 0x4c3], 0
mov byte [rsp + 0x4c4], 0
mov byte [rsp + 0x4c5], 0
mov byte [rsp + 0x4c6], 0
mov byte [rsp + 0x4c7], 0
mov byte [rsp + 0x4c8], 0
mov byte [rsp + 0x4c9], 0
mov byte [rsp + 0x4ca], 0
mov byte [rsp + 0x4cb], 0
mov byte [rsp + 0x4cc], 0
mov byte [rsp + 0x4cd], 0
mov byte [rsp + 0x4ce], 0
mov byte [rsp + 0x4cf], 0
mov byte [rsp + 0x4d0], 0
mov byte [rsp + 0x4d1], 0
mov byte [rsp + 0x4d2], 0
mov byte [rsp + 0x4d3], 0
mov byte [rsp + 0x4d4], 0
mov byte [rsp + 0x4d5], 0
mov byte [rsp + 0x4d6], 0
mov byte [rsp + 0x4d7], 0
mov byte [rsp + 0x4d8], 0
mov byte [rsp + 0x4d9], 0
mov byte [rsp + 0x4da], 0
mov byte [rsp + 0x4db], 0
mov byte [rsp + 0x4dc], 0
mov byte [rsp + 0x4dd], 0
mov byte [rsp + 0x4de], 0
mov byte [rsp + 0x4df], 0
mov byte [rsp + 0x4e0], 0
mov byte [rsp + 0x4e1], 0
mov byte [rsp + 0x4e2], 0
mov byte [rsp + 0x4e3], 0
mov byte [rsp + 0x4e4], 0
mov byte [rsp + 0x4e5], 0
mov byte [rsp + 0x4e6], 0
mov byte [rsp + 0x4e7], 0
mov byte [rsp + 0x4e8], 0
mov byte [rsp + 0x4e9], 0
mov byte [rsp + 0x4ea], 0
mov byte [rsp + 0x4eb], 0
mov byte [rsp + 0x4ec], 0
mov byte [rsp + 0x4ed], 0
mov byte [rsp + 0x4ee], 0
mov byte [rsp + 0x4ef], 0
mov byte [rsp + 0x4f0], 0
mov byte [rsp + 0x4f1], 0
mov byte [rsp + 0x4f2], 0
mov byte [rsp + 0x4f3], 0
mov byte [rsp + 0x4f4], 0
mov byte [rsp + 0x4f5], 0
mov byte [rsp + 0x4f6], 0
mov byte [rsp + 0x4f7], 0
mov byte [rsp + 0x4f8], 0
mov byte [rsp + 0x4f9], 0
mov byte [rsp + 0x4fa], 0
mov byte [rsp + 0x4fb], 0
mov byte [rsp + 0x4fc], 0
mov byte [rsp + 0x4fd], 0
mov byte [rsp + 0x4fe], 0
mov byte [rsp + 0x4ff], 0
mov byte [rsp + 0x500], 0
mov dword [rsp + 0x480], 0
mov dword [rsp + 0x484], 0
mov dword [rsp + 0x488], 0
mov dword [rsp + 0x48c], 0
mov dword [rsp + 0x490], 0
mov dword [rsp + 0x494], 0
mov dword [rsp + 0x498], 0
mov dword [rsp + 0x49c], 0
mov dword [rsp + 0x4a0], 0
mov dword [rsp + 0x4a4], 0
mov dword [rsp + 0x4a8], 0
mov dword [rsp + 0x4ac], 0
mov dword [rsp + 0x4b0], 0
mov dword [rsp + 0x4b4], 0
mov dword [rsp + 0x4b8], 0
mov dword [rsp + 0x4bc], 0
mov rsi, qword [rsp + 0x120]
mov rbx, qword [rsp + 0x170]
jmp 0x140018df1
movzx eax, byte [0x140058001]
mov rdi, r13
shr rdi, 4
mov rsi, qword [rsp + 0x120]
and esi, 0xf
movzx eax, byte [0x140058001]
cmp al, 1
mov qword [rsp + 0xb0], r13
jne 0x140017f5a
mov r14d, edi
and r14d, 3
cmp r13, 0x40
jb 0x140017f09
mov r15, qword [rsp + 0xb0]
shr r15, 6
shl r15, 6
lea r12, [rsp + 0x240]
mov r13, qword [rsp + 0xe8]
jmp 0x140017ec5
mov rcx, r12
mov rdx, r13
call fcn.14001b0f0
add r13, 0x40
add r15, 0xffffffffffffffc0
je 0x140017f09
cmp qword [rsp + 0x460], 0
je 0x140017eb0
mov rcx, r12
mov rdx, r13
call fcn.140019ea0
lea rdx, [r13 + 0x10]
mov rcx, r12
call fcn.140019ea0
lea rdx, [r13 + 0x20]
mov rcx, r12
call fcn.140019ea0
lea rdx, [r13 + 0x30]
mov rcx, r12
call fcn.140019ea0
add r13, 0x40
add r15, 0xffffffffffffffc0
jne 0x140017ec5
test r14, r14
mov r13, qword [rsp + 0xb0]
je 0x140017f95
movabs rax, 0x3fffffffc
and rdi, rax
shl rdi, 4
add rdi, qword [rsp + 0xe8]
shl r14d, 4
lea r12, [rsp + 0x240]
nop dword [rax + rax]
lea r15, [rdi + 0x10]
mov rcx, r12
mov rdx, rdi
call fcn.140019ea0
mov rdi, r15
add r14, 0xfffffffffffffff0
jne 0x140017f40
jmp 0x140017f95
cmp r13, 0x10
jb 0x140017f95
shl rdi, 4
lea r12, [rsp + 0x240]
mov rdx, qword [rsp + 0xe8]
nop word cs:[rax + rax]
lea r14, [rdx + 0x10]
mov rcx, r12
call fcn.14001b6b0
mov rdx, r14
add rdi, 0xfffffffffffffff0
jne 0x140017f80
test rsi, rsi
mov r14, qword [rsp + 0xe8]
je 0x140017ff8
movabs rax, 0x3fffffffbf
lea rdx, [rax + 0x31]
and rdx, r13
add rdx, r14
xorps xmm0, xmm0
movaps xmmword [rsp + 0x740], xmm0
lea rcx, [rsp + 0x740]
mov r8, rsi
call sub.msvcrt.dll_memcpy
movzx eax, byte [0x140058001]
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x740]
cmp al, 1
jne 0x140017ff3
call fcn.140019ea0
jmp 0x140017ff8
call fcn.14001b6b0
mov qword [rsp + 0x740], 0
mov qword [rsp + 0x748], r13
movzx eax, byte [0x140058001]
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x740]
cmp al, 1
jne 0x14001802e
call fcn.140019ea0
jmp 0x140018033
call fcn.14001b6b0
lea rcx, [rsp + 0x740]
lea r15, [rsp + 0x240]
mov r8d, 0x240
mov rdx, r15
call sub.msvcrt.dll_memcpy
movzx eax, byte [0x140058001]
cmp al, 1
jne 0x140018076
lea rcx, [rsp + 0xb40]
lea rdx, [rsp + 0x740]
call fcn.14001a4a0
jmp 0x1400181f0
mov r11d, dword [rsp + 0x768]
mov eax, r11d
shr eax, 0x1a
and r11d, 0x3ffffff
add eax, dword [rsp + 0x76c]
mov ecx, eax
shr ecx, 0x1a
and eax, 0x3ffffff
add ecx, dword [rsp + 0x770]
mov r8d, ecx
shr r8d, 0x1a
and ecx, 0x3ffffff
add r8d, dword [rsp + 0x774]
mov r9d, r8d
shr r9d, 0x1a
mov r14d, r8d
and r14d, 0x3ffffff
lea r10d, [r9 + r9*4]
add r10d, dword [rsp + 0x764]
mov r9d, r10d
shr r9d, 0x1a
add r9d, r11d
and r10d, 0x3ffffff
lea edi, [r10 + 5]
mov r11d, edi
shr r11d, 0x1a
add r11d, r9d
mov esi, r11d
shr esi, 0x1a
add esi, eax
mov r15d, esi
shr r15d, 0x1a
add r15d, ecx
mov r13d, r15d
shr r13d, 0x1a
lea edx, [r14 + r13]
add edx, 0xfc000000
add r13d, r14d
mov r12d, edx
sar r12d, 0x1f
shr edx, 0x1f
dec edx
mov r14d, edx
and r14d, 0x3ffffff
and edi, r14d
and r11d, r14d
and esi, r14d
and r14d, r15d
lea r15, [rsp + 0x240]
and edx, r13d
mov r13, qword [rsp + 0xb0]
and r10d, r12d
or r10d, edi
and r9d, r12d
or r9d, r11d
and eax, r12d
or eax, esi
and ecx, r12d
or ecx, r14d
mov r14, qword [rsp + 0xe8]
and r12d, r8d
or r12d, edx
mov r8d, r9d
shl r8d, 0x1a
or r8d, r10d
shr r9d, 6
mov edx, eax
shl edx, 0x14
or edx, r9d
shr eax, 0xc
mov r9d, ecx
shl r9d, 0xe
or r9d, eax
shr ecx, 0x12
shl r12d, 8
or r12d, ecx
add r8d, dword [rsp + 0x740]
mov eax, dword [rsp + 0x744]
mov ecx, dword [rsp + 0x748]
adc rax, rdx
add rcx, r9
mov dword [rsp + 0xb40], r8d
mov dword [rsp + 0xb44], eax
shr rax, 0x20
add rax, rcx
add r12d, dword [rsp + 0x74c]
mov dword [rsp + 0xb48], eax
shr rax, 0x20
add eax, r12d
mov dword [rsp + 0xb4c], eax
movzx eax, byte [rsp + 0xb40]
cmp al, byte [r14 + r13]
sete cl
call fcn.140015f60
mov edi, eax
movzx eax, byte [rsp + 0xb41]
cmp al, byte [r14 + r13 + 1]
sete cl
call fcn.140015f60
and dil, al
movzx eax, byte [rsp + 0xb42]
cmp al, byte [r14 + r13 + 2]
sete cl
call fcn.140015f60
mov esi, eax
movzx eax, byte [rsp + 0xb43]
cmp al, byte [r14 + r13 + 3]
sete cl
call fcn.140015f60
and sil, al
and sil, dil
movzx eax, byte [rsp + 0xb44]
cmp al, byte [r14 + r13 + 4]
sete cl
call fcn.140015f60
mov edi, eax
movzx eax, byte [rsp + 0xb45]
cmp al, byte [r14 + r13 + 5]
sete cl
call fcn.140015f60
and dil, al
movzx eax, byte [rsp + 0xb46]
cmp al, byte [r14 + r13 + 6]
sete cl
call fcn.140015f60
and dil, al
and dil, sil
movzx eax, byte [rsp + 0xb47]
cmp al, byte [r14 + r13 + 7]
sete cl
call fcn.140015f60
mov esi, eax
movzx eax, byte [rsp + 0xb48]
cmp al, byte [r14 + r13 + 8]
sete cl
call fcn.140015f60
and sil, al
movzx eax, byte [rsp + 0xb49]
cmp al, byte [r14 + r13 + 9]
sete cl
call fcn.140015f60
and sil, al
movzx eax, byte [rsp + 0xb4a]
cmp al, byte [r14 + r13 + 0xa]
sete cl
call fcn.140015f60
and sil, al
and sil, dil
movzx eax, byte [rsp + 0xb4b]
cmp al, byte [r14 + r13 + 0xb]
sete cl
call fcn.140015f60
mov edi, eax
movzx eax, byte [rsp + 0xb4c]
cmp al, byte [r14 + r13 + 0xc]
sete cl
call fcn.140015f60
and dil, al
movzx eax, byte [rsp + 0xb4d]
cmp al, byte [r14 + r13 + 0xd]
sete cl
call fcn.140015f60
and dil, al
movzx eax, byte [rsp + 0xb4e]
cmp al, byte [r14 + r13 + 0xe]
sete cl
call fcn.140015f60
and dil, al
movzx eax, byte [rsp + 0xb4f]
cmp al, byte [r14 + r13 + 0xf]
sete cl
call fcn.140015f60
and dil, al
and dil, sil
and dil, 1
mov ecx, edi
call fcn.140015f60
test al, al
je 0x140018b01
mov edx, dword [rsp + 0x4b0]
movzx ecx, byte [rsp + 0x500]
mov r8, r13
test rcx, rcx
je 0x1400183b9
mov r9d, 0x40
sub r9, rcx
mov r8, r13
sub r8, r9
jbe 0x1400183e2
mov r13, qword [rsp + 0xb0]
not edx
mov r9d, r8d
and r9d, 0x3f
shr r8, 6
cmp r9, 1
sbb r8, 0xffffffffffffffff
cmp r8, rdx
ja 0x140018421
mov rsi, r13
mov r13, r14
test rcx, rcx
je 0x14001847b
mov r8d, 0x40
sub r8, rcx
lea rdx, [rsp + rcx]
add rdx, 0x4c0
mov r13, qword [rsp + 0xb0]
mov rsi, r13
sub rsi, r8
jae 0x140018423
test r13, r13
je 0x140018af5
cmp r13, 8
jae 0x140018974
xor r8d, r8d
jmp 0x140018ae0
ud2
cmp cl, 0x38
jbe 0x14001842c
xor ecx, ecx
jmp 0x140018460
mov ecx, r8d
and ecx, 0x78
xor r9d, r9d
nop word cs:[rax + rax]
mov r10, qword [rdx + r9]
xor qword [r14 + r9], r10
add r9, 8
cmp rcx, r9
jne 0x140018440
cmp r8, rcx
je 0x140018475
nop word cs:[rax + rax]
movzx r9d, byte [rdx + rcx]
xor byte [r14 + rcx], r9b
lea r9, [rcx + 1]
mov rcx, r9
cmp r8, r9
jne 0x140018460
mov r13, r14
add r13, r8
mov rcx, rsi
shr rcx, 6
mov edi, esi
and edi, 0x3f
mov qword [rsp + 0x100], r13
mov qword [rsp + 0x108], r13
mov qword [rsp + 0x110], rcx
movzx edx, byte [section..data]
cmp dl, 1
jne 0x1400184d3
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x480]
mov r14d, eax
call fcn.1400152f0
mov eax, r14d
mov r14, qword [rsp + 0xe8]
jmp 0x140018773
movdqa xmm0, xmmword [rsp + 0x4b0]
cmp rsi, 0x40
jb 0x14001876a
movdqa xmm1, xmmword [rsp + 0x480]
movdqa xmm2, xmmword [rsp + 0x490]
movdqa xmm3, xmmword [rsp + 0x4a0]
xor edx, edx
pxor xmm4, xmm4
movdqa xmm5, xmmword [0x1400594a0]
nop
mov r8d, 0xa
movdqa xmm8, xmm1
movdqa xmm6, xmm2
movdqa xmm7, xmm0
movdqa xmm9, xmm3
nop dword [rax + rax]
paddd xmm8, xmm6
pxor xmm7, xmm8
movdqa xmm10, xmm7
psrld xmm10, 0x10
pslld xmm7, 0x10
por xmm7, xmm10
paddd xmm9, xmm7
pxor xmm6, xmm9
movdqa xmm10, xmm6
psrld xmm10, 0x14
pslld xmm6, 0xc
por xmm6, xmm10
paddd xmm8, xmm6
pxor xmm7, xmm8
movdqa xmm10, xmm7
psrld xmm10, 0x18
pslld xmm7, 8
por xmm7, xmm10
paddd xmm9, xmm7
pxor xmm6, xmm9
movdqa xmm10, xmm6
psrld xmm10, 0x19
pslld xmm6, 7
por xmm6, xmm10
pshufd xmm9, xmm9, 0x39
pshufd xmm7, xmm7, 0x4e
pshufd xmm8, xmm8, 0x93
paddd xmm8, xmm6
pxor xmm7, xmm8
movdqa xmm10, xmm7
psrld xmm10, 0x10
pslld xmm7, 0x10
por xmm7, xmm10
paddd xmm9, xmm7
pxor xmm6, xmm9
movdqa xmm10, xmm6
psrld xmm10, 0x14
pslld xmm6, 0xc
por xmm6, xmm10
paddd xmm8, xmm6
pxor xmm7, xmm8
movdqa xmm10, xmm7
psrld xmm10, 0x18
pslld xmm7, 8
por xmm7, xmm10
paddd xmm9, xmm7
pxor xmm6, xmm9
movdqa xmm10, xmm6
psrld xmm10, 0x19
pslld xmm6, 7
por xmm6, xmm10
pshufd xmm9, xmm9, 0x93
pshufd xmm7, xmm7, 0x4e
pshufd xmm8, xmm8, 0x39
dec r8
jne 0x140018530
mov r8, rdx
shl r8, 6
paddd xmm8, xmm1
paddd xmm6, xmm2
paddd xmm9, xmm3
paddd xmm7, xmm0
movdqa xmmword [rsp + 0xf40], xmm8
movdqa xmmword [rsp + 0xf50], xmm6
movdqa xmmword [rsp + 0xf60], xmm9
movdqa xmmword [rsp + 0xf70], xmm7
movups xmm6, xmmword [r13 + r8]
movdqu xmm7, xmmword [r13 + r8 + 0x10]
movdqu xmm8, xmmword [r13 + r8 + 0x20]
movups xmm9, xmmword [r13 + r8 + 0x30]
movaps xmmword [rsp + 0xb70], xmm9
movdqa xmmword [rsp + 0xb60], xmm8
movdqa xmmword [rsp + 0xb50], xmm7
movaps xmmword [rsp + 0xb40], xmm6
movdqa xmmword [rsp + 0x750], xmm4
movdqa xmmword [rsp + 0x760], xmm4
movdqa xmmword [rsp + 0x770], xmm4
xorps xmm6, xmmword [rsp + 0xf40]
pxor xmm7, xmmword [rsp + 0xf50]
movaps xmmword [rsp + 0x740], xmm6
movdqa xmmword [rsp + 0x750], xmm7
pxor xmm8, xmmword [rsp + 0xf60]
movdqa xmmword [rsp + 0x760], xmm8
movdqa xmm9, xmmword [rsp + 0xf70]
pxor xmm9, xmmword [rsp + 0xb70]
movdqa xmmword [rsp + 0x770], xmm9
inc rdx
paddd xmm0, xmm5
movdqu xmmword [r13 + r8 + 0x30], xmm9
movdqu xmmword [r13 + r8 + 0x20], xmm8
movdqu xmmword [r13 + r8 + 0x10], xmm7
movups xmmword [r13 + r8], xmm6
cmp rcx, rdx
jne 0x140018510
movd dword [rsp + 0x4b0], xmm0
test rdi, rdi
je 0x140018a29
mov r15, rsi
and r15, 0xffffffffffffffc0
movzx ecx, byte [section..data]
cmp cl, 1
jne 0x1400187cf
lea rdx, [rsp + 0x4c0]
lea rcx, [rsp + 0x480]
mov r14d, eax
call fcn.140015db0
mov eax, r14d
mov r14, qword [rsp + 0xe8]
lea rcx, [r15 + r13]
cmp edi, 8
jb 0x14001896d
cmp edi, 0x20
jae 0x140018986
xor edx, edx
jmp 0x1400189e2
movdqa xmm4, xmmword [rsp + 0x480]
movdqa xmm2, xmmword [rsp + 0x490]
movdqa xmm1, xmmword [rsp + 0x4a0]
movdqa xmm0, xmmword [rsp + 0x4b0]
mov ecx, 0xa
movdqa xmm6, xmm4
movdqa xmm3, xmm2
movdqa xmm5, xmm0
movdqa xmm7, xmm1
nop dword [rax + rax]
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x10
pslld xmm5, 0x10
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x14
pslld xmm3, 0xc
por xmm3, xmm8
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x18
pslld xmm5, 8
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x19
pslld xmm3, 7
por xmm3, xmm8
pshufd xmm7, xmm7, 0x39
pshufd xmm5, xmm5, 0x4e
pshufd xmm6, xmm6, 0x93
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x10
pslld xmm5, 0x10
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x14
pslld xmm3, 0xc
por xmm3, xmm8
paddd xmm6, xmm3
pxor xmm5, xmm6
movdqa xmm8, xmm5
psrld xmm8, 0x18
pslld xmm5, 8
por xmm5, xmm8
paddd xmm7, xmm5
pxor xmm3, xmm7
movdqa xmm8, xmm3
psrld xmm8, 0x19
pslld xmm3, 7
por xmm3, xmm8
pshufd xmm7, xmm7, 0x93
pshufd xmm5, xmm5, 0x4e
pshufd xmm6, xmm6, 0x39
dec rcx
jne 0x140018810
paddd xmm6, xmm4
paddd xmm3, xmm2
paddd xmm7, xmm1
paddd xmm5, xmm0
movdqa xmmword [rsp + 0x4c0], xmm6
movdqa xmmword [rsp + 0x4d0], xmm3
movdqa xmmword [rsp + 0x4e0], xmm7
movdqa xmmword [rsp + 0x4f0], xmm5
movd ecx, xmm0
inc ecx
mov dword [rsp + 0x4b0], ecx
lea rcx, [r15 + r13]
cmp edi, 8
jae 0x1400187bf
xor edx, edx
jmp 0x140018a10
cmp r13, 0x20
jae 0x140018a36
xor r8d, r8d
jmp 0x140018a9f
mov r8d, esi
and r8d, 0x1f
mov rdx, rdi
sub rdx, r8
lea r9, [r15 + r13]
add r9, 0x10
xor r10d, r10d
nop
movdqu xmm0, xmmword [r9 + r10 - 0x10]
movdqu xmm1, xmmword [r9 + r10]
pxor xmm0, xmmword [rsp + r10 + 0x4c0]
pxor xmm1, xmmword [rsp + r10 + 0x4d0]
movdqu xmmword [r9 + r10 - 0x10], xmm0
movdqu xmmword [r9 + r10], xmm1
add r10, 0x20
cmp rdx, r10
jne 0x1400189a0
test r8, r8
je 0x140018a29
cmp r8d, 8
jb 0x140018a10
mov r8, rdx
and esi, 7
mov rdx, rdi
sub rdx, rsi
nop
mov r9, qword [rsp + r8 + 0x4c0]
xor qword [rcx + r8], r9
add r8, 8
cmp rdx, r8
jne 0x1400189f0
test rsi, rsi
je 0x140018a29
nop word [rax + rax]
movzx r8d, byte [rsp + rdx + 0x4c0]
xor byte [rcx + rdx], r8b
lea r8, [rdx + 1]
mov rdx, r8
cmp rdi, r8
jne 0x140018a10
mov r13, qword [rsp + 0xb0]
jmp 0x140018af9
movabs r8, 0x3fffffffbf
add r8, 0x21
and r8, r13
lea r9, [rcx + r15]
add r9, 0x290
xor r10d, r10d
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r14 + r10]
movups xmm1, xmmword [r14 + r10 + 0x10]
movdqu xmm2, xmmword [r9 + r10 - 0x10]
pxor xmm2, xmm0
movups xmm0, xmmword [r9 + r10]
xorps xmm0, xmm1
movdqu xmmword [r14 + r10], xmm2
movups xmmword [r14 + r10 + 0x10], xmm0
add r10, 0x20
cmp r8, r10
jne 0x140018a60
cmp r13, r8
je 0x140018af5
test r13b, 0x18
je 0x140018ae0
mov r9, r8
movabs r8, 0x3fffffffbf
add r8, 0x39
and r8, r13
nop word cs:[rax + rax]
mov r10, qword [rdx + r9]
xor qword [r14 + r9], r10
add r9, 8
cmp r8, r9
jne 0x140018ac0
cmp r13, r8
je 0x140018af5
nop word cs:[rax + rax]
movzx r9d, byte [rdx + r8]
xor byte [r14 + r8], r9b
lea r9, [r8 + 1]
mov r8, r9
cmp r13, r9
jne 0x140018ae0
lea edi, [rcx + r13]
mov byte [rsp + 0x500], dil
mov byte [rsp + 0x4c0], 0
mov byte [rsp + 0x4c1], 0
mov byte [rsp + 0x4c2], 0
mov byte [rsp + 0x4c3], 0
mov byte [rsp + 0x4c4], 0
mov byte [rsp + 0x4c5], 0
mov byte [rsp + 0x4c6], 0
mov byte [rsp + 0x4c7], 0
mov byte [rsp + 0x4c8], 0
mov byte [rsp + 0x4c9], 0
mov byte [rsp + 0x4ca], 0
mov byte [rsp + 0x4cb], 0
mov byte [rsp + 0x4cc], 0
mov byte [rsp + 0x4cd], 0
mov byte [rsp + 0x4ce], 0
mov byte [rsp + 0x4cf], 0
mov byte [rsp + 0x4d0], 0
mov byte [rsp + 0x4d1], 0
mov byte [rsp + 0x4d2], 0
mov byte [rsp + 0x4d3], 0
mov byte [rsp + 0x4d4], 0
mov byte [rsp + 0x4d5], 0
mov byte [rsp + 0x4d6], 0
mov byte [rsp + 0x4d7], 0
mov byte [rsp + 0x4d8], 0
mov byte [rsp + 0x4d9], 0
mov byte [rsp + 0x4da], 0
mov byte [rsp + 0x4db], 0
mov byte [rsp + 0x4dc], 0
mov byte [rsp + 0x4dd], 0
mov byte [rsp + 0x4de], 0
mov byte [rsp + 0x4df], 0
mov byte [rsp + 0x4e0], 0
mov byte [rsp + 0x4e1], 0
mov byte [rsp + 0x4e2], 0
mov byte [rsp + 0x4e3], 0
mov byte [rsp + 0x4e4], 0
mov byte [rsp + 0x4e5], 0
mov byte [rsp + 0x4e6], 0
mov byte [rsp + 0x4e7], 0
mov byte [rsp + 0x4e8], 0
mov byte [rsp + 0x4e9], 0
mov byte [rsp + 0x4ea], 0
mov byte [rsp + 0x4eb], 0
mov byte [rsp + 0x4ec], 0
mov byte [rsp + 0x4ed], 0
mov byte [rsp + 0x4ee], 0
mov byte [rsp + 0x4ef], 0
mov byte [rsp + 0x4f0], 0
mov byte [rsp + 0x4f1], 0
mov byte [rsp + 0x4f2], 0
mov byte [rsp + 0x4f3], 0
mov byte [rsp + 0x4f4], 0
mov byte [rsp + 0x4f5], 0
mov byte [rsp + 0x4f6], 0
mov byte [rsp + 0x4f7], 0
mov byte [rsp + 0x4f8], 0
mov byte [rsp + 0x4f9], 0
mov byte [rsp + 0x4fa], 0
mov byte [rsp + 0x4fb], 0
mov byte [rsp + 0x4fc], 0
mov byte [rsp + 0x4fd], 0
mov byte [rsp + 0x4fe], 0
mov byte [rsp + 0x4ff], 0
mov byte [rsp + 0x500], 0
mov dword [rsp + 0x480], 0
mov dword [rsp + 0x484], 0
mov dword [rsp + 0x488], 0
mov dword [rsp + 0x48c], 0
mov dword [rsp + 0x490], 0
mov dword [rsp + 0x494], 0
mov dword [rsp + 0x498], 0
mov dword [rsp + 0x49c], 0
mov dword [rsp + 0x4a0], 0
mov dword [rsp + 0x4a4], 0
mov dword [rsp + 0x4a8], 0
mov dword [rsp + 0x4ac], 0
mov dword [rsp + 0x4b0], 0
mov dword [rsp + 0x4b4], 0
mov dword [rsp + 0x4b8], 0
mov dword [rsp + 0x4bc], 0
test al, al
mov rsi, qword [rsp + 0x120]
movabs rdi, 0x8000000000000000
mov rbx, qword [rsp + 0x170]
je 0x140018df1
cmp rsi, rdi
je 0x140018e07
mov rax, qword [rsp + 0x178]
mov qword [rax], rsi
mov qword [rax + 8], r14
mov qword [rax + 0x10], r13
jmp 0x140018e16
test rsi, rsi
je 0x140018e07
mov rcx, qword [0x1428220c8]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x178]
mov byte [rax + 8], 0x13
mov qword [rax], rdi
mov byte [rsp + 0x80], 0
mov byte [rsp + 0xa0], 0
mov byte [rsp + 0x90], 0
mov byte [rsp + 0x9f], 0
mov byte [rsp + 0x7c], 0
mov byte [rsp + 0x9e], 0
mov byte [rsp + 0x8e], 0
mov byte [rsp + 0x9d], 0
mov byte [rsp + 0x78], 0
mov byte [rsp + 0x9c], 0
mov byte [rsp + 0x8c], 0
mov byte [rsp + 0x9b], 0
mov byte [rsp + 0x74], 0
mov byte [rsp + 0x9a], 0
mov byte [rsp + 0x8a], 0
mov byte [rsp + 0x99], 0
mov byte [rsp + 0x70], 0
mov byte [rsp + 0x98], 0
mov byte [rsp + 0x88], 0
mov byte [rsp + 0x97], 0
mov byte [rsp + 0x6c], 0
mov byte [rsp + 0x96], 0
mov byte [rsp + 0x86], 0
mov byte [rsp + 0x95], 0
mov byte [rsp + 0x68], 0
mov byte [rsp + 0x94], 0
mov byte [rsp + 0x84], 0
mov byte [rsp + 0x93], 0
mov byte [rsp + 0x64], 0
mov byte [rsp + 0x92], 0
mov byte [rsp + 0x82], 0
mov byte [rsp + 0x91], 0
mov rcx, qword [0x1428220c8]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
movaps xmm6, xmmword [rbp + 0x16f0]
movaps xmm7, xmmword [rbp + 0x1700]
movaps xmm8, xmmword [rbp + 0x1710]
movaps xmm9, xmmword [rbp + 0x1720]
movaps xmm10, xmmword [rbp + 0x1730]
movaps xmm11, xmmword [rbp + 0x1740]
lea rsp, [rbp + 0x1758]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret