Function at 0x140021680
Capabilities:
Encrypt data using salsa20 or chacha
Enumerate pe sections

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb58
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xac0], xmm12
movaps xmmword [rbp + 0xab0], xmm11
movaps xmmword [rbp + 0xaa0], xmm10
movaps xmmword [rbp + 0xa90], xmm9
movaps xmmword [rbp + 0xa80], xmm8
movaps xmmword [rbp + 0xa70], xmm7
movaps xmmword [rbp + 0xa60], xmm6
and rsp, 0xffffffffffffffe0
mov r13, r8
mov r14, rdx
mov rdi, rcx
mov rax, qword [rbp + 0xb48]
movabs rbx, 0x8000000000000000
mov rcx, r9
shr rcx, 8
mov byte [rsp + 0x7e0], r9b
mov rdx, r9
shr rdx, 0x38
mov byte [rsp + 0x7e7], dl
shr r9, 0x28
mov word [rsp + 0x7e5], r9w
mov dword [rsp + 0x7e1], ecx
mov qword [rsp + 0x7e8], 0x20
mov qword [rsp + 0x7f0], rax
mov qword [rsp + 0x7f8], 0x20
mov qword [rsp + 0x800], 1
mov qword [rsp + 0x808], 0
mov qword [rsp + 0x810], 1
mov qword [rsp + 0x818], 0
movaps xmm0, xmmword [0x140058290]
movups xmmword [rsp + 0x820], xmm0
mov word [rsp + 0x830], 0x213
movabs rax, 0x4c0000004c00
mov qword [rsp + 0x838], rax
mov dword [rsp + 0x840], 0x1300
lea rcx, [rsp + 0x5a0]
lea rdx, [rsp + 0x7e0]
call fcn.140010d20
mov r9, qword [rsp + 0x5a0]
mov rax, r9
neg rax
movzx eax, byte [rsp + 0x5a8]
jno 0x1400217de
mov byte [rdi + 8], al
mov qword [rdi], rbx
jmp 0x140021e6a
movzx eax, al
movzx ecx, byte [rsp + 0x5af]
shl ecx, 0x10
movzx edx, word [rsp + 0x5ad]
or edx, ecx
mov r8d, dword [rsp + 0x5a9]
shl rdx, 0x28
shl r8, 8
or r8, rdx
or r8, rax
cmp qword [rsp + 0x5b0], 0x20
jne 0x140021e4f
mov qword [rsp + 0x2d8], r14
mov qword [rsp + 0x100], rdi
mov qword [rsp + 0x108], r9
movzx eax, byte [r8]
movzx ecx, byte [r8 + 1]
movzx r12d, byte [r8 + 2]
movzx edx, byte [r8 + 3]
mov byte [rsp + 0x97], dl
mov qword [rsp + 0xf0], r13
movzx edx, byte [r8 + 4]
mov byte [rsp + 0x80], dl
movzx edx, byte [r8 + 5]
mov byte [rsp + 0xe0], dl
movzx edx, byte [r8 + 6]
mov byte [rsp + 0xd8], dl
movzx ebx, byte [r8 + 7]
movzx r9d, byte [r8 + 8]
movzx r10d, byte [r8 + 9]
movzx r11d, byte [r8 + 0xa]
movzx edi, byte [r8 + 0xb]
movzx r14d, byte [r8 + 0xc]
movzx esi, byte [r8 + 0xd]
mov byte [rsp + 0x96], sil
movzx edx, byte [r8 + 0xe]
mov byte [rsp + 0xac], dl
movzx edx, byte [r8 + 0xf]
mov byte [rsp + 0xa8], dl
movzx esi, byte [r8 + 0x10]
movzx r15d, byte [r8 + 0x11]
mov byte [rsp + 0x95], r15b
movzx r15d, byte [r8 + 0x12]
movzx r13d, byte [r8 + 0x13]
mov byte [rsp + 0x94], r13b
movzx r13d, byte [r8 + 0x14]
movzx edx, byte [r8 + 0x15]
mov byte [rsp + 0x93], dl
movzx edx, byte [r8 + 0x16]
mov byte [rsp + 0xa4], dl
movzx edx, byte [r8 + 0x17]
mov byte [rsp + 0xa0], dl
movzx edx, byte [r8 + 0x18]
mov byte [rsp + 0x9c], dl
movzx edx, byte [r8 + 0x19]
mov byte [rsp + 0x98], dl
movzx edx, byte [r8 + 0x1a]
mov byte [rsp + 0x5f], dl
movzx edx, byte [r8 + 0x1b]
mov byte [rsp + 0x5e], dl
movzx edx, byte [r8 + 0x1c]
mov byte [rsp + 0x5d], dl
movzx edx, byte [r8 + 0x1d]
mov byte [rsp + 0x5c], dl
movzx edx, byte [r8 + 0x1e]
mov qword [rsp + 0xf8], r8
movzx r8d, byte [r8 + 0x1f]
mov byte [rsp + 0x85], al
mov byte [rsp + 0x7f], al
mov byte [rsp + 0x92], cl
mov byte [rsp + 0x7e], cl
mov byte [rsp + 0x8b], r12b
mov byte [rsp + 0x7d], r12b
movzx r12d, byte [rsp + 0x97]
mov byte [rsp + 0x7c], r12b
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x7b], al
movzx eax, byte [rsp + 0xe0]
mov byte [rsp + 0x7a], al
movzx eax, byte [rsp + 0xd8]
mov byte [rsp + 0x79], al
mov byte [rsp + 0x91], bl
mov byte [rsp + 0x78], bl
mov byte [rsp + 0x90], r9b
mov byte [rsp + 0x77], r9b
mov byte [rsp + 0x8f], r10b
mov byte [rsp + 0x76], r10b
mov byte [rsp + 0x8e], r11b
mov byte [rsp + 0x75], r11b
mov byte [rsp + 0x8d], dil
mov byte [rsp + 0x74], dil
mov byte [rsp + 0x8c], r14b
mov byte [rsp + 0x73], r14b
movzx r14d, byte [rsp + 0x96]
mov rbx, qword [rsp + 0xf0]
mov byte [rsp + 0x72], r14b
movzx eax, byte [rsp + 0xac]
mov byte [rsp + 0x71], al
movzx eax, byte [rsp + 0xa8]
mov byte [rsp + 0x70], al
mov byte [rsp + 0x8a], sil
mov byte [rsp + 0x6f], sil
movzx esi, byte [rsp + 0x95]
mov byte [rsp + 0x6e], sil
mov byte [rsp + 0x89], r15b
mov byte [rsp + 0x6d], r15b
movzx r15d, byte [rsp + 0x94]
mov byte [rsp + 0x6c], r15b
mov byte [rsp + 0x88], r13b
mov byte [rsp + 0x6b], r13b
movzx r13d, byte [rsp + 0x93]
mov byte [rsp + 0x6a], r13b
movzx eax, byte [rsp + 0xa4]
mov byte [rsp + 0x69], al
movzx eax, byte [rsp + 0xa0]
mov byte [rsp + 0x68], al
movzx eax, byte [rsp + 0x9c]
mov byte [rsp + 0x67], al
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x66], al
movzx eax, byte [rsp + 0x5f]
mov byte [rsp + 0x65], al
movzx eax, byte [rsp + 0x5e]
mov byte [rsp + 0x64], al
movzx eax, byte [rsp + 0x5d]
mov byte [rsp + 0x63], al
movzx eax, byte [rsp + 0x5c]
mov byte [rsp + 0x62], al
mov byte [rsp + 0x87], dl
mov byte [rsp + 0x61], dl
mov byte [rsp + 0x86], r8b
mov byte [rsp + 0x60], r8b
movzx eax, byte [0x141d0ba30]
xor ecx, ecx
mov rdx, rbx
call fcn.14003b500
test rax, rax
je 0x140023179
mov rdi, qword [rbp + 0xb40]
mov qword [rsp + 0xe8], rax
mov rcx, rax
mov rdx, qword [rsp + 0x2d8]
mov r8, rbx
call fcn.140051c00
mov eax, dword [rdi + 8]
mov dword [rsp + 0x5a8], eax
mov rax, qword [rdi]
mov qword [rsp + 0x5a0], rax
movzx eax, byte [section..data]
cmp al, 0xff
je 0x140021eb4
xorps xmm8, xmm8
movaps xmmword [rsp + 0x180], xmm8
movaps xmmword [rsp + 0x170], xmm8
movaps xmmword [rsp + 0x160], xmm8
movaps xmmword [rsp + 0x150], xmm8
movups xmm0, xmmword [0x141cfd9e8]
movaps xmmword [rsp + 0x110], xmm0
movzx eax, byte [rsp + 0x85]
mov byte [rsp + 0x120], al
movzx eax, byte [rsp + 0x92]
mov byte [rsp + 0x121], al
movzx eax, byte [rsp + 0x8b]
mov byte [rsp + 0x122], al
mov byte [rsp + 0x123], r12b
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x124], al
movzx eax, byte [rsp + 0xe0]
mov byte [rsp + 0x125], al
movzx eax, byte [rsp + 0xd8]
mov byte [rsp + 0x126], al
movzx eax, byte [rsp + 0x91]
mov byte [rsp + 0x127], al
movzx eax, byte [rsp + 0x90]
mov byte [rsp + 0x128], al
movzx eax, byte [rsp + 0x8f]
mov byte [rsp + 0x129], al
movzx eax, byte [rsp + 0x8e]
mov byte [rsp + 0x12a], al
movzx eax, byte [rsp + 0x8d]
mov byte [rsp + 0x12b], al
movzx eax, byte [rsp + 0x8c]
mov byte [rsp + 0x12c], al
mov byte [rsp + 0x12d], r14b
movzx eax, byte [rsp + 0xac]
mov byte [rsp + 0x12e], al
movzx eax, byte [rsp + 0xa8]
mov byte [rsp + 0x12f], al
movzx eax, byte [rsp + 0x8a]
mov byte [rsp + 0x130], al
mov byte [rsp + 0x131], sil
movzx eax, byte [rsp + 0x89]
mov byte [rsp + 0x132], al
mov byte [rsp + 0x133], r15b
movzx eax, byte [rsp + 0x88]
mov byte [rsp + 0x134], al
mov byte [rsp + 0x135], r13b
movzx eax, byte [rsp + 0xa4]
mov byte [rsp + 0x136], al
movzx eax, byte [rsp + 0xa0]
mov byte [rsp + 0x137], al
movzx eax, byte [rsp + 0x9c]
mov byte [rsp + 0x138], al
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x139], al
movzx eax, byte [rsp + 0x5f]
mov byte [rsp + 0x13a], al
movzx eax, byte [rsp + 0x5e]
mov byte [rsp + 0x13b], al
movzx eax, byte [rsp + 0x5d]
mov byte [rsp + 0x13c], al
movzx eax, byte [rsp + 0x5c]
mov byte [rsp + 0x13d], al
movzx eax, byte [rsp + 0x87]
mov byte [rsp + 0x13e], al
movzx eax, byte [rsp + 0x86]
mov byte [rsp + 0x13f], al
mov dword [rsp + 0x140], 0
mov eax, dword [rsp + 0x5a8]
mov dword [rsp + 0x14c], eax
mov rax, qword [rsp + 0x5a0]
mov qword [rsp + 0x144], rax
lea rax, [rbx - 0x10]
mov qword [rsp + 0xe0], rax
mov byte [rsp + 0x190], 0
movaps xmmword [rsp + 0xc0], xmm8
movaps xmmword [rsp + 0xb0], xmm8
lea rcx, [rsp + 0x110]
lea rdx, [rsp + 0xb0]
mov r8d, 0x20
call fcn.1400200d0
movzx eax, byte [0x141d0b001]
cmp al, 1
je 0x140021ecb
movzx eax, al
cmp eax, 0xff
je 0x140021ebe
xorps xmm0, xmm0
movaps xmmword [rsp + 0x220], xmm0
mov dword [rsp + 0x230], 0
mov ebx, 0x3ffffff
and ebx, dword [rsp + 0xb0]
mov r14d, dword [rsp + 0xb3]
mov r12d, dword [rsp + 0xb6]
shr r14d, 2
and r14d, 0x3ffff03
shr r12d, 4
and r12d, 0x3ffc0ff
mov edi, dword [rsp + 0xb9]
shr edi, 6
and edi, 0x3f03fff
mov r15d, dword [rsp + 0xbc]
shr r15d, 8
and r15d, 0xfffff
mov eax, dword [rsp + 0xc0]
movsd xmm8, qword [rsp + 0xc4]
mov ecx, dword [rsp + 0xcc]
mov dword [rsp + 0x80], ecx
mov qword [rsp + 0xd8], rax
mov r13d, eax
shr r13d, 8
jmp 0x14002262d
mov byte [rdi + 8], 0x14
mov qword [rdi], rbx
test r9, r9
je 0x140021e6a
mov rcx, qword [0x141d0ba00]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
movaps xmm6, xmmword [rbp + 0xa60]
movaps xmm7, xmmword [rbp + 0xa70]
movaps xmm8, xmmword [rbp + 0xa80]
movaps xmm9, xmmword [rbp + 0xa90]
movaps xmm10, xmmword [rbp + 0xaa0]
movaps xmm11, xmmword [rbp + 0xab0]
movaps xmm12, xmmword [rbp + 0xac0]
lea rsp, [rbp + 0xad8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.140053980
jmp 0x140021b42
call fcn.140054090
test al, al
je 0x140021db1
lea rcx, [rsp + 0x5a0]
lea rdx, [rsp + 0xb0]
call fcn.140025130
movaps xmm6, xmmword [rsp + 0x5a0]
movaps xmm7, xmmword [rsp + 0x5b0]
movaps xmm0, xmmword [rsp + 0x5c0]
movaps xmm1, xmmword [rsp + 0x5d0]
movaps xmmword [rsp + 0x4e0], xmm0
movaps xmmword [rsp + 0x4f0], xmm1
movaps xmm0, xmmword [rsp + 0x5e0]
movaps xmmword [rsp + 0x500], xmm0
movaps xmm0, xmmword [rsp + 0x5f0]
movaps xmmword [rsp + 0x510], xmm0
lea rcx, [rsp + 0x5a0]
lea rdx, [rsp + 0x4e0]
mov r8, rdx
call fcn.140023260
movaps xmm11, xmmword [rsp + 0x5a0]
movaps xmm12, xmmword [rsp + 0x5b0]
movaps xmm9, xmmword [rsp + 0x5c0]
movaps xmm10, xmmword [rsp + 0x5d0]
mov qword [rsp + 0x20], 0x3ffffff
lea r14, [rsp + 0x540]
mov r8d, 0x3ffffff
mov r9d, 0x3ffffff
mov rcx, r14
mov rdx, 0xffffffffffffffff
call fcn.1400238c0
movaps xmmword [rsp + 0x530], xmm12
movaps xmmword [rsp + 0x520], xmm11
lea rbx, [rsp + 0x220]
lea rdx, [rsp + 0x520]
mov rcx, rbx
mov r8, r14
call fcn.140023c10
mov qword [rsp + 0x20], 0x1a
lea r14, [rsp + 0x580]
mov edx, 0x40
mov r8d, 0x1a
mov r9d, 0x1a
mov rcx, r14
call fcn.1400238c0
movaps xmmword [rsp + 0x570], xmm12
movaps xmmword [rsp + 0x560], xmm11
lea r12, [rsp + 0x3a0]
lea rdx, [rsp + 0x560]
mov rcx, r12
mov r8, r14
call fcn.1400251b0
lea r14, [rsp + 0x200]
mov rcx, r14
mov rdx, r12
call fcn.140023c30
lea rcx, [rsp + 0x3c0]
mov rdx, rbx
mov r8, r14
call fcn.140023930
movaps xmm11, xmmword [rsp + 0x3c0]
movaps xmm12, xmmword [rsp + 0x3d0]
movaps xmmword [rsp + 0x290], xmm12
movaps xmmword [rsp + 0x280], xmm11
lea rbx, [rsp + 0x240]
lea rdx, [rsp + 0x280]
mov rcx, rbx
call fcn.1400251d0
lea r14, [rsp + 0x2e0]
mov rcx, r14
mov rdx, rbx
call fcn.140023c30
movaps xmmword [rsp + 0x370], xmm10
movaps xmmword [rsp + 0x360], xmm9
lea rcx, [rsp + 0x3c0]
lea rdx, [rsp + 0x360]
mov r8, r14
call fcn.140023930
movaps xmm9, xmmword [rsp + 0x3c0]
movaps xmm10, xmmword [rsp + 0x3d0]
mov qword [rsp + 0x20], 0xffffffffffffffff
lea r14, [rsp + 0x3c0]
mov edx, 0x3ffffff
mov rcx, r14
mov r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
call fcn.1400238c0
movaps xmmword [rsp + 0x1b0], xmm12
movaps xmmword [rsp + 0x1a0], xmm11
lea rbx, [rsp + 0x340]
lea rdx, [rsp + 0x1a0]
mov rcx, rbx
mov r8, r14
call fcn.140023c10
mov qword [rsp + 0x20], 0x1a
lea r14, [rsp + 0x200]
mov edx, 0x40
mov r8d, 0x40
mov r9d, 0x40
mov rcx, r14
call fcn.1400238c0
movaps xmmword [rsp + 0x230], xmm10
movaps xmmword [rsp + 0x220], xmm9
lea rcx, [rsp + 0x3c0]
lea rdx, [rsp + 0x220]
mov r8, r14
call fcn.1400251b0
movaps xmm11, xmmword [rsp + 0x3c0]
movaps xmm12, xmmword [rsp + 0x3d0]
movaps xmmword [rsp + 0x290], xmm12
movaps xmmword [rsp + 0x280], xmm11
lea r14, [rsp + 0x360]
lea r8, [rsp + 0x280]
mov rcx, r14
mov rdx, rbx
call fcn.140023930
movaps xmmword [rsp + 0x250], xmm12
movaps xmmword [rsp + 0x240], xmm11
lea rbx, [rsp + 0x2e0]
lea rdx, [rsp + 0x240]
mov rcx, rbx
call fcn.1400251f0
lea rcx, [rsp + 0x3c0]
mov rdx, r14
mov r8, rbx
call fcn.140023930
movaps xmm11, xmmword [rsp + 0x3c0]
movaps xmm12, xmmword [rsp + 0x3d0]
mov qword [rsp + 0x20], 0x3ffffff
mov qword [rsp + 0xd8], 0
lea rbx, [rsp + 0x3c0]
mov rcx, rbx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.1400238c0
movaps xmmword [rsp + 0x1b0], xmm10
movaps xmmword [rsp + 0x1a0], xmm9
lea r12, [rsp + 0x3a0]
lea rdx, [rsp + 0x1a0]
mov rcx, r12
mov r8, rbx
call fcn.140023c10
mov qword [rsp + 0x20], 0x3ffffff
lea r14, [rsp + 0x560]
mov r8d, 0x3ffffff
mov r9d, 0x3ffffff
mov rcx, r14
mov rdx, 0xffffffffffffffff
call fcn.1400238c0
movaps xmmword [rsp + 0x550], xmm12
movaps xmmword [rsp + 0x540], xmm11
lea rbx, [rsp + 0x340]
lea rdx, [rsp + 0x540]
mov rcx, rbx
mov r8, r14
call fcn.140023c10
mov qword [rsp + 0x20], 0x1a
lea r14, [rsp + 0x220]
mov edx, 0x40
mov r8d, 0x1a
mov r9d, 0x1a
mov rcx, r14
call fcn.1400238c0
movaps xmmword [rsp + 0x590], xmm12
movaps xmmword [rsp + 0x580], xmm11
lea r13, [rsp + 0x200]
lea rdx, [rsp + 0x580]
mov rcx, r13
mov r8, r14
call fcn.1400251b0
lea r14, [rsp + 0x280]
mov rcx, r14
mov rdx, r13
call fcn.140023c30
lea rcx, [rsp + 0x3c0]
mov rdx, rbx
mov r8, r14
call fcn.140023930
movaps xmm9, xmmword [rsp + 0x3c0]
movaps xmm10, xmmword [rsp + 0x3d0]
movaps xmmword [rsp + 0x250], xmm10
movaps xmmword [rsp + 0x240], xmm9
lea rbx, [rsp + 0x360]
lea rdx, [rsp + 0x240]
mov rcx, rbx
call fcn.1400251d0
lea r14, [rsp + 0x2e0]
mov rcx, r14
mov rdx, rbx
call fcn.140023c30
lea r13, [rsp + 0x520]
mov rcx, r13
mov rdx, r12
mov r8, r14
call fcn.140023930
mov qword [rsp + 0x20], 0xffffffffffffffff
lea rbx, [rsp + 0x3c0]
mov edx, 0x3ffffff
mov rcx, rbx
mov r8, 0xffffffffffffffff
mov r9, 0xffffffffffffffff
call fcn.1400238c0
movaps xmmword [rsp + 0x1b0], xmm10
movaps xmmword [rsp + 0x1a0], xmm9
lea r14, [rsp + 0xac0]
lea rdx, [rsp + 0x1a0]
mov rcx, r14
mov r8, rbx
call fcn.140023c10
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 2
mov dword [rsp + 0x30], 4
mov dword [rsp + 0x28], 6
mov dword [rsp + 0x20], 0
lea r12, [rsp + 0x240]
mov rcx, r12
xor edx, edx
mov r8d, 6
mov r9d, 4
call fcn.1400231d0
lea rbx, [rsp + 0x1a0]
mov rcx, rbx
mov rdx, r14
mov r8, r12
call fcn.140023210
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 2
mov dword [rsp + 0x30], 4
mov dword [rsp + 0x28], 6
mov dword [rsp + 0x20], 0
lea r14, [rsp + 0x360]
mov rcx, r14
xor edx, edx
mov r8d, 6
mov r9d, 4
call fcn.1400231d0
lea r12, [rsp + 0x3c0]
mov rcx, r12
mov rdx, r13
mov r8, r14
call fcn.140023210
lea rcx, [rsp + 0x2e0]
mov rdx, rbx
mov r8, r12
call fcn.140025210
movaps xmm9, xmmword [rsp + 0x2e0]
movaps xmm10, xmmword [rsp + 0x2f0]
movaps xmmword [rsp + 0x210], xmm10
movaps xmmword [rsp + 0x200], xmm9
lea rbx, [rsp + 0x280]
lea rdx, [rsp + 0x200]
mov rcx, rbx
call fcn.1400231b0
movaps xmmword [rsp + 0x350], xmm10
movaps xmmword [rsp + 0x340], xmm9
lea r14, [rsp + 0x240]
lea rdx, [rsp + 0x340]
mov rcx, r14
mov r8, rbx
call fcn.140023190
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 rbx, [rsp + 0x2e0]
mov rcx, rbx
mov edx, 4
mov r8d, 3
mov r9d, 2
call fcn.1400231d0
lea rcx, [rsp + 0x5a0]
mov rdx, r14
mov r8, rbx
call fcn.140023210
movaps xmm11, xmmword [rsp + 0x5a0]
movaps xmm12, xmmword [rsp + 0x5b0]
movaps xmmword [rsp + 0x1b0], xmm10
movaps xmmword [rsp + 0x1a0], xmm9
movaps xmmword [rsp + 0x3d0], xmm12
movaps xmmword [rsp + 0x3c0], xmm11
lea rcx, [rsp + 0x360]
lea rdx, [rsp + 0x1a0]
lea r8, [rsp + 0x3c0]
call fcn.140023230
movaps xmmword [rsp + 0x5b0], xmm12
movaps xmmword [rsp + 0x5a0], xmm11
lea rcx, [rsp + 0x380]
lea rdx, [rsp + 0x5a0]
call fcn.140023250
movaps xmmword [rsp + 0x1a0], xmm8
movaps xmmword [rsp + 0x1b0], xmm8
movaps xmmword [rsp + 0x1c0], xmm8
movaps xmmword [rsp + 0x1d0], xmm8
movups xmmword [rsp + 0x1d9], xmm8
mov eax, dword [rsp + 0x230]
mov dword [rsp + 0x3b0], eax
movaps xmm0, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0x3a0], xmm0
lea rsi, [rsp + 0x3c0]
lea rdx, [rsp + 0x5a0]
mov r8d, 0x108
mov rcx, rsi
call fcn.140051c00
movaps xmm0, xmmword [rsp + 0x4e0]
movaps xmm1, xmmword [rsp + 0x4f0]
movaps xmm2, xmmword [rsp + 0x500]
movaps xmm3, xmmword [rsp + 0x510]
movaps xmmword [rsp + 0x240], xmm0
movaps xmmword [rsp + 0x250], xmm1
movaps xmmword [rsp + 0x260], xmm2
movaps xmmword [rsp + 0x270], xmm3
movaps xmm0, xmmword [rsp + 0x360]
movaps xmm1, xmmword [rsp + 0x370]
movaps xmm2, xmmword [rsp + 0x380]
movaps xmm3, xmmword [rsp + 0x390]
movaps xmmword [rsp + 0x280], xmm0
movaps xmmword [rsp + 0x290], xmm1
movaps xmmword [rsp + 0x2a0], xmm2
movaps xmmword [rsp + 0x2b0], xmm3
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmm1, xmmword [rsp + 0x1b0]
movaps xmm2, xmmword [rsp + 0x1c0]
movaps xmm3, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0x2e0], xmm0
movaps xmmword [rsp + 0x2f0], xmm1
movaps xmmword [rsp + 0x300], xmm2
movaps xmmword [rsp + 0x310], xmm3
movups xmm0, xmmword [rsp + 0x1d9]
movups xmmword [rsp + 0x319], xmm0
mov rax, qword [rsp + 0x34f]
mov qword [rsp + 0x20f], rax
movups xmm0, xmmword [rsp + 0x340]
movaps xmmword [rsp + 0x200], xmm0
mov byte [rsp + 0xb0], 0
mov byte [rsp + 0xb1], 0
mov byte [rsp + 0xb2], 0
mov byte [rsp + 0xb3], 0
mov byte [rsp + 0xb4], 0
mov byte [rsp + 0xb5], 0
mov byte [rsp + 0xb6], 0
mov byte [rsp + 0xb7], 0
mov byte [rsp + 0xb8], 0
mov byte [rsp + 0xb9], 0
mov byte [rsp + 0xba], 0
mov byte [rsp + 0xbb], 0
mov byte [rsp + 0xbc], 0
mov byte [rsp + 0xbd], 0
mov byte [rsp + 0xbe], 0
mov byte [rsp + 0xbf], 0
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 dword [rsp + 0x140], 1
mov byte [rsp + 0x190], 0
lea rcx, [rsp + 0xa20]
lea rdx, [rsp + 0x110]
mov r8d, 0x84
call fcn.140051c00
mov rax, qword [rsp + 0xd8]
mov byte [rsp + 0x7e0], al
mov eax, r13d
shr eax, 0x10
mov byte [rsp + 0x7e3], al
mov word [rsp + 0x7e1], r13w
movlps qword [rsp + 0x7e4], xmm8
mov eax, dword [rsp + 0x80]
mov dword [rsp + 0x7ec], eax
mov dword [rsp + 0x7f0], ebx
mov dword [rsp + 0x7f4], r14d
mov dword [rsp + 0x7f8], r12d
mov dword [rsp + 0x7fc], edi
mov dword [rsp + 0x800], r15d
movaps xmm0, xmmword [rsp + 0x3a0]
movups xmmword [rsp + 0x804], xmm0
mov eax, dword [rsp + 0x3b0]
mov dword [rsp + 0x814], eax
lea rcx, [rsp + 0x818]
mov r8d, 0x108
mov rdx, rsi
call fcn.140051c00
movaps xmmword [rsp + 0x930], xmm7
movaps xmmword [rsp + 0x920], xmm6
movaps xmm0, xmmword [rsp + 0x240]
movaps xmm1, xmmword [rsp + 0x250]
movaps xmm2, xmmword [rsp + 0x260]
movaps xmm3, xmmword [rsp + 0x270]
movaps xmmword [rsp + 0x940], xmm0
movaps xmmword [rsp + 0x950], xmm1
movaps xmmword [rsp + 0x960], xmm2
movaps xmmword [rsp + 0x970], xmm3
movaps xmm0, xmmword [rsp + 0x280]
movaps xmm1, xmmword [rsp + 0x290]
movaps xmm2, xmmword [rsp + 0x2a0]
movaps xmm3, xmmword [rsp + 0x2b0]
movaps xmmword [rsp + 0x980], xmm0
movaps xmmword [rsp + 0x990], xmm1
movaps xmmword [rsp + 0x9a0], xmm2
movaps xmmword [rsp + 0x9b0], xmm3
movups xmm0, xmmword [rsp + 0x319]
movups xmmword [rsp + 0x9f9], xmm0
movaps xmm0, xmmword [rsp + 0x2e0]
movaps xmm1, xmmword [rsp + 0x2f0]
movaps xmm2, xmmword [rsp + 0x300]
movaps xmm3, xmmword [rsp + 0x310]
movaps xmmword [rsp + 0x9f0], xmm3
movaps xmmword [rsp + 0x9e0], xmm2
movaps xmmword [rsp + 0x9d0], xmm1
movaps xmmword [rsp + 0x9c0], xmm0
mov rax, qword [rsp + 0x20f]
mov qword [rsp + 0xa18], rax
movaps xmm0, xmmword [rsp + 0x200]
movups xmmword [rsp + 0xa09], xmm0
movzx eax, byte [0x141d0b001]
mov r15, qword [rsp + 0xe0]
mov rdi, r15
shr rdi, 4
mov r13, qword [rsp + 0xf0]
and r13d, 0xf
movzx eax, byte [0x141d0b001]
cmp al, 1
jne 0x140022b1b
mov r12, rdi
and r12, 0xfffffffffffffffc
shl r12, 4
mov r14, qword [rsp + 0xe8]
add r12, r14
and r15, 0xffffffffffffffc0
lea rbx, [rsp + 0x7e0]
jmp 0x140022a95
mov rcx, rbx
mov rdx, r14
call fcn.140024e50
add r14, 0x40
add r15, 0xffffffffffffffc0
je 0x140022ad9
cmp qword [rsp + 0xa00], 0
je 0x140022a80
mov rcx, rbx
mov rdx, r14
call fcn.140024820
lea rdx, [r14 + 0x10]
mov rcx, rbx
call fcn.140024820
lea rdx, [r14 + 0x20]
mov rcx, rbx
call fcn.140024820
lea rdx, [r14 + 0x30]
mov rcx, rbx
call fcn.140024820
add r14, 0x40
add r15, 0xffffffffffffffc0
jne 0x140022a95
and rdi, 3
mov r15, qword [rsp + 0xe0]
je 0x140022b45
shl edi, 4
lea rbx, [rsp + 0x7e0]
nop word cs:[rax + rax]
lea r14, [r12 + 0x10]
mov rcx, rbx
mov rdx, r12
call fcn.140024820
mov r12, r14
add rdi, 0xfffffffffffffff0
jne 0x140022b00
jmp 0x140022b45
shl rdi, 4
lea rbx, [rsp + 0x7e0]
mov rdx, qword [rsp + 0xe8]
nop
lea r14, [rdx + 0x10]
mov rcx, rbx
call fcn.140024f10
mov rdx, r14
add rdi, 0xfffffffffffffff0
jne 0x140022b30
test r13, r13
je 0x140022bb1
mov rax, r15
and rax, 0xfffffffffffffff0
mov rbx, qword [rsp + 0xe8]
add rbx, rax
mov r8d, 0x10
sub r8, r13
lea rcx, [rsp + r13]
add rcx, 0x5a0
xor edx, edx
call fcn.1400522a0
lea rcx, [rsp + 0x5a0]
mov rdx, rbx
mov r8, r13
call fcn.140051c00
movzx eax, byte [0x141d0b001]
lea rcx, [rsp + 0x7e0]
lea rdx, [rsp + 0x5a0]
cmp al, 1
jne 0x140022bac
call fcn.140024820
jmp 0x140022bb1
call fcn.140024f10
mov qword [rsp + 0x5a0], 0
mov qword [rsp + 0x5a8], r15
movzx eax, byte [0x141d0b001]
lea rcx, [rsp + 0x7e0]
lea rdx, [rsp + 0x5a0]
cmp al, 1
jne 0x140022be7
call fcn.140024820
jmp 0x140022bec
call fcn.140024f10
lea rcx, [rsp + 0x5a0]
lea rdx, [rsp + 0x7e0]
mov r8d, 0x240
call fcn.140051c00
movzx eax, byte [0x141d0b001]
cmp al, 1
jne 0x140022cd3
lea rcx, [rsp + 0x3c0]
lea rdx, [rsp + 0x5a0]
call fcn.140023c40
movzx eax, byte [rsp + 0x3c0]
movzx r14d, byte [rsp + 0x3c1]
movzx ecx, byte [rsp + 0x3c2]
mov dword [rsp + 0x98], ecx
movzx esi, byte [rsp + 0x3c3]
movzx edi, byte [rsp + 0x3c4]
movzx ecx, byte [rsp + 0x3c5]
mov dword [rsp + 0x9c], ecx
movzx ecx, byte [rsp + 0x3c6]
mov dword [rsp + 0xa0], ecx
movzx ecx, byte [rsp + 0x3c7]
mov dword [rsp + 0xa4], ecx
movzx r12d, byte [rsp + 0x3c8]
movzx ecx, byte [rsp + 0x3c9]
mov dword [rsp + 0xa8], ecx
movzx ecx, byte [rsp + 0x3ca]
mov dword [rsp + 0xac], ecx
movzx ecx, byte [rsp + 0x3cb]
mov dword [rsp + 0x80], ecx
movzx ecx, byte [rsp + 0x3cc]
mov qword [rsp + 0xd8], rcx
jmp 0x140022ea9
mov r11d, dword [rsp + 0x5c8]
mov ecx, r11d
shr ecx, 0x1a
and r11d, 0x3ffffff
add ecx, dword [rsp + 0x5cc]
mov edx, ecx
shr edx, 0x1a
and ecx, 0x3ffffff
add edx, dword [rsp + 0x5d0]
mov eax, edx
shr eax, 0x1a
add eax, dword [rsp + 0x5d4]
and edx, 0x3ffffff
mov r9d, eax
shr r9d, 0x1a
mov r8d, eax
and r8d, 0x3ffffff
lea r10d, [r9 + r9*4]
add r10d, dword [rsp + 0x5c4]
mov r9d, r10d
shr r9d, 0x1a
add r9d, r11d
and r10d, 0x3ffffff
lea ebx, [r10 + 5]
mov r11d, ebx
shr r11d, 0x1a
add r11d, r9d
mov edi, r11d
shr edi, 0x1a
add edi, ecx
mov r15d, edi
shr r15d, 0x1a
add r15d, edx
mov r12d, r15d
shr r12d, 0x1a
lea r14d, [r12 + r8]
add r14d, 0xfc000000
add r12d, r8d
mov r8d, r14d
sar r8d, 0x1f
shr r14d, 0x1f
dec r14d
mov r13d, r14d
and r13d, 0x3ffffff
and ebx, r13d
and r11d, r13d
and edi, r13d
and r13d, r15d
and r14d, r12d
and r10d, r8d
or r10d, ebx
and r9d, r8d
or r9d, r11d
and ecx, r8d
or ecx, edi
and edx, r8d
or edx, r13d
and r8d, eax
or r8d, r14d
mov eax, r9d
shl eax, 0x1a
or eax, r10d
shr r9d, 6
mov r10d, ecx
shl r10d, 0x14
or r10d, r9d
shr ecx, 0xc
mov r9d, edx
shl r9d, 0xe
or r9d, ecx
shr edx, 0x12
shl r8d, 8
or r8d, edx
add eax, dword [rsp + 0x5a0]
mov edi, dword [rsp + 0x5a4]
adc rdi, r10
mov ecx, dword [rsp + 0x5a8]
add rcx, r9
mov r12, rdi
shr r12, 0x20
add r12, rcx
mov ecx, dword [rsp + 0x5ac]
add rcx, r8
mov rdx, r12
shr rdx, 0x20
add rdx, rcx
mov dword [rsp + 0x3c0], eax
mov dword [rsp + 0x3c4], edi
mov dword [rsp + 0x3c8], r12d
mov qword [rsp + 0xd8], rdx
mov dword [rsp + 0x3cc], edx
mov r14d, eax
shr r14d, 8
mov ecx, eax
shr ecx, 0x10
mov dword [rsp + 0x98], ecx
mov esi, eax
shr esi, 0x18
mov ecx, edi
shr ecx, 8
mov dword [rsp + 0x9c], ecx
mov ecx, edi
shr ecx, 0x10
mov dword [rsp + 0xa0], ecx
mov ecx, edi
shr ecx, 0x18
mov dword [rsp + 0xa4], ecx
mov ecx, r12d
shr ecx, 8
mov dword [rsp + 0xa8], ecx
mov ecx, r12d
shr ecx, 0x10
mov dword [rsp + 0xac], ecx
mov ecx, r12d
shr ecx, 0x18
mov dword [rsp + 0x80], ecx
mov r13, qword [rsp + 0xe8]
mov r15, qword [rsp + 0xe0]
cmp al, byte [r13 + r15]
sete cl
call fcn.140023180
mov ebx, eax
cmp r14b, byte [r13 + r15 + 1]
sete cl
call fcn.140023180
and bl, al
mov eax, dword [rsp + 0x98]
cmp al, byte [r13 + r15 + 2]
sete cl
call fcn.140023180
mov r14d, eax
cmp sil, byte [r13 + r15 + 3]
sete cl
call fcn.140023180
and r14b, al
and r14b, bl
cmp dil, byte [r13 + r15 + 4]
sete cl
call fcn.140023180
mov ebx, eax
mov eax, dword [rsp + 0x9c]
cmp al, byte [r13 + r15 + 5]
sete cl
call fcn.140023180
and bl, al
and bl, r14b
mov eax, dword [rsp + 0xa0]
cmp al, byte [r13 + r15 + 6]
sete cl
call fcn.140023180
mov r14d, eax
mov eax, dword [rsp + 0xa4]
cmp al, byte [r13 + r15 + 7]
sete cl
call fcn.140023180
and r14b, al
cmp r12b, byte [r13 + r15 + 8]
sete cl
call fcn.140023180
and r14b, al
and r14b, bl
mov eax, dword [rsp + 0xa8]
cmp al, byte [r13 + r15 + 9]
sete cl
call fcn.140023180
mov r12d, eax
mov eax, dword [rsp + 0xac]
cmp al, byte [r13 + r15 + 0xa]
sete cl
call fcn.140023180
and r12b, al
and r12b, r14b
mov eax, dword [rsp + 0x80]
cmp al, byte [r13 + r15 + 0xb]
sete cl
call fcn.140023180
mov ebx, eax
mov rax, qword [rsp + 0xd8]
cmp al, byte [r13 + r15 + 0xc]
sete cl
call fcn.140023180
and bl, al
and bl, r12b
movzx eax, byte [rsp + 0x3cd]
cmp al, byte [r13 + r15 + 0xd]
sete cl
call fcn.140023180
mov r14d, eax
movzx eax, byte [rsp + 0x3ce]
cmp al, byte [r13 + r15 + 0xe]
sete cl
call fcn.140023180
and r14b, al
movzx eax, byte [rsp + 0x3cf]
cmp al, byte [r13 + r15 + 0xf]
sete cl
call fcn.140023180
and r14b, al
and r14b, bl
and r14b, 1
mov ecx, r14d
call fcn.140023180
test al, al
je 0x14002307a
lea rcx, [rsp + 0xa20]
mov rdx, r13
mov r8, r15
call fcn.1400200d0
lea rcx, [rsp + 0x7e0]
call fcn.140020820
movabs rbx, 0x8000000000000000
mov rax, qword [rsp + 0xf0]
cmp rax, rbx
mov rdi, qword [rsp + 0x100]
je 0x1400230b6
cmp rax, 0x10
cmovb r15, rax
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], r15
mov qword [rdi], rax
jmp 0x1400230bd
lea rcx, [rsp + 0x7e0]
call fcn.140020820
cmp qword [rsp + 0xf0], 0
mov rdi, qword [rsp + 0x100]
movabs rbx, 0x8000000000000000
je 0x1400230b6
mov rcx, qword [0x141d0ba00]
xor edx, edx
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [rdi + 8], 0x13
mov qword [rdi], rbx
mov byte [rsp + 0x7f], 0
mov byte [rsp + 0x7e], 0
mov byte [rsp + 0x7d], 0
mov byte [rsp + 0x7c], 0
mov byte [rsp + 0x7b], 0
mov byte [rsp + 0x7a], 0
mov byte [rsp + 0x79], 0
mov byte [rsp + 0x78], 0
mov byte [rsp + 0x77], 0
mov byte [rsp + 0x76], 0
mov byte [rsp + 0x75], 0
mov byte [rsp + 0x74], 0
mov byte [rsp + 0x73], 0
mov byte [rsp + 0x72], 0
mov byte [rsp + 0x71], 0
mov byte [rsp + 0x70], 0
mov byte [rsp + 0x6f], 0
mov byte [rsp + 0x6e], 0
mov byte [rsp + 0x6d], 0
mov byte [rsp + 0x6c], 0
mov byte [rsp + 0x6b], 0
mov byte [rsp + 0x6a], 0
mov byte [rsp + 0x69], 0
mov byte [rsp + 0x68], 0
mov byte [rsp + 0x67], 0
mov byte [rsp + 0x66], 0
mov byte [rsp + 0x65], 0
mov byte [rsp + 0x64], 0
mov byte [rsp + 0x63], 0
mov byte [rsp + 0x62], 0
mov byte [rsp + 0x61], 0
mov byte [rsp + 0x60], 0
cmp qword [rsp + 0x108], 0
mov r8, qword [rsp + 0xf8]
jne 0x140021e5b
jmp 0x140021e6a
ud2