Function at 0x14002ca50
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov rdi, rcx
cmp byte [rdx + 0x4d], 0
jne 0x14002cb55
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x14002cb55
movabs rax, 0x555555555555555
cmp r12, rax
ja 0x14002e114
mov r13, qword [rdx + 8]
lea rax, [r12*8]
lea r8, [rax + rax*2]
movzx eax, byte [0x141af8129]
xor ecx, ecx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x28], r8
mov rdx, r8
call fcn.140146820
mov rcx, qword [rsp + 0x50]
test rax, rax
je 0x14002e114
mov rsi, rax
mov qword [rsp + 0x30], rdi
xor ebp, ebp
mov qword [rsp + 0x20], r12
jmp 0x14002cb19
mov r15d, 1
xor edi, edi
dec r12
add r13, 0x18
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsi + rbp], rdi
mov qword [rsi + rbp + 8], r15
mov qword [rsi + rbp + 0x10], rbx
add rbp, 0x18
test r12, r12
mov rcx, qword [rsp + 0x50]
je 0x14002cb6b
cmp qword [rsp + 0x28], rbp
je 0x14002cb6b
mov r14, qword [r13 + 8]
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x14002cae0
js 0x14002e114
movzx eax, byte [0x141af8129]
xor ecx, ecx
mov rdx, rbx
call fcn.140146820
test rax, rax
je 0x14002e114
mov r15, rax
mov rdi, rbx
jmp 0x14002cae8
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rdi], rax
jmp 0x14002ddbc
mov rdi, qword [rcx + 0x20]
mov r14, qword [rcx + 0x28]
test r14, r14
je 0x14002cbac
mov rax, r14
shr rax, 0x3d
jne 0x14002e114
lea r15, [r14*4]
movzx eax, byte [0x141af8129]
xor ecx, ecx
mov rdx, r15
call fcn.140146820
test rax, rax
je 0x14002e114
mov rbx, r14
jmp 0x14002cbb6
mov eax, 4
xor r15d, r15d
xor ebx, ebx
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x38]
mov rdx, rdi
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x120], r14
mov rax, qword [rsp + 0x50]
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmmword [rsp + 0x128], xmm0
movzx eax, byte [rax + 0x48]
mov byte [rsp + 0x138], al
test al, al
mov rdi, r14
mov qword [rsp + 0x48], r14
je 0x14002cc6a
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x80], rax
cmp rdi, 0x15
jae 0x14002cc91
cmp rdi, 1
jbe 0x14002d9f2
lea r9, [rsp + 0x80]
mov r8d, 1
mov rdx, rdi
call fcn.1400268c0
jmp 0x14002d9f2
cmp rdi, 0x15
jae 0x14002d3a4
cmp rdi, 1
jbe 0x14002d9f2
mov r8d, 1
mov rdx, rdi
call fcn.140026830
jmp 0x14002d9f2
movabs rax, 0x7ffffffffffffff8
lea rdx, [rdi + rdi]
add rax, 4
and rdx, rax
movzx eax, byte [0x141af8129]
xor ecx, ecx
call fcn.140146820
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14002e114
movzx eax, byte [0x141af8129]
mov edx, 0x100
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov rsi, rax
mov rax, qword [rsp + 0x38]
lea rcx, [rax - 0x10]
mov qword [rsp + 0xc8], rcx
lea rcx, [rax + 0x10]
mov qword [rsp + 0xf0], rcx
lea rcx, [rax - 4]
mov qword [rsp + 0x70], rcx
mov ecx, 0x10
mov qword [rsp + 0x60], rcx
xor r14d, r14d
xor r12d, r12d
jmp 0x14002cd39
mov r12d, 1
mov r14, qword [rsp + 0x68]
cmp r14, rdi
mov rax, qword [rsp + 0x38]
jae 0x14002d380
mov rdx, rdi
sub rdx, r14
lea rcx, [rax + r14*4]
cmp rdx, 2
jae 0x14002d170
mov r8, rdx
mov r15, rsi
lea rax, [r8 + r14]
mov rsi, rax
sub rsi, r14
jb 0x14002e114
cmp rax, rdi
ja 0x14002e114
jae 0x14002cdb6
cmp r8, 0xa
jae 0x14002cdb6
cmp r14, 0xfffffffffffffff6
jae 0x14002e114
lea rdi, [r14 + 0xa]
mov rbx, qword [rsp + 0x48]
cmp rdi, rbx
cmovae rdi, rbx
cmp rax, r14
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, r14
mov rdx, rsi
lea r9, [rsp + 0x80]
call fcn.1400268c0
mov rax, rdi
mov rdi, rbx
mov qword [rsp + 0x68], rax
cmp r12, qword [rsp + 0x60]
jne 0x14002ce1a
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x141af8129]
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x60], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rbx, r15
mov rdx, r15
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov r15, rdi
mov rdi, qword [rsp + 0x48]
mov rax, r12
shl rax, 4
mov qword [r15 + rax], rsi
mov qword [r15 + rax + 8], r14
inc r12
mov rax, r12
cmp r12, 2
mov rsi, r15
mov qword [rsp + 0x78], r15
jae 0x14002cec4
jmp 0x14002cd26
mov rdi, rsi
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x78]
add r13, rsi
add r14, rsi
sub r8, rdx
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xd0]
add rax, qword [rsp + 0x20]
mov qword [r14], rax
mov rax, qword [rsp + 0xd8]
mov qword [r14 + 8], rax
lea rdx, [r13 + 0x10]
mov rax, qword [rsp + 0xe0]
not rax
mov r8, qword [rsp + 0x58]
add r8, rax
shl r8, 4
mov rcx, r13
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0xe8]
cmp rax, 1
mov rdi, qword [rsp + 0x48]
jbe 0x14002cd20
mov r12, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rsi + rcx]
mov rcx, qword [rsi + rcx + 8]
add rcx, rax
cmp rcx, rdi
je 0x14002cf30
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + rsi - 0x20]
cmp r8, rax
jbe 0x14002cf30
cmp r12, 2
je 0x14002d297
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rsi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14002cf46
cmp r12, 3
jbe 0x14002d375
add r8, rcx
cmp qword [rdx + rsi - 0x40], r8
jbe 0x14002cf46
jmp 0x14002cd26
cmp r12, 2
je 0x14002cf4b
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rsi + rcx]
cmp rcx, rax
jb 0x14002cf50
lea r11, [r12 - 2]
cmp r11, r12
jae 0x14002e114
lea r14, [r11 + 1]
mov qword [rsp + 0x58], r12
cmp r14, r12
mov rax, qword [rsp + 0x38]
jae 0x14002e114
mov r13, r11
shl r13, 4
mov rcx, qword [rsi + r13 + 8]
shl r14, 4
mov rdx, qword [rsi + r14]
mov rbx, qword [rsi + r14 + 8]
add rbx, rdx
mov r12, rbx
sub r12, rcx
jb 0x14002e114
cmp rbx, rdi
ja 0x14002e114
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xe0], r11
mov qword [rsp + 0xe8], r10
mov rdx, qword [rsi + r13]
mov qword [rsp + 0xd8], rcx
lea rdi, [rax + rcx*4]
lea rsi, [rdi + rdx*4]
mov r15, r12
sub r15, rdx
cmp r15, rdx
mov qword [rsp + 0x20], rdx
jae 0x14002d0b0
lea r8, [r15*4]
mov r12, qword [rsp + 0x28]
mov rcx, r12
mov rdx, rsi
call sub.msvcrt.dll_memcpy
lea r8, [r12 + r15*4]
cmp qword [rsp + 0x20], 0
jle 0x14002ce50
test r15, r15
jle 0x14002ce50
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
lea rcx, [rcx + rbx*4]
nop word cs:[rax + rax]
mov edx, dword [r8 - 4]
mov r10, qword [rax + 0x10]
cmp r10, rdx
jbe 0x14002e114
mov r9d, dword [rsi - 4]
cmp r10, r9
jbe 0x14002e114
mov r10, qword [rax + 8]
lea rdx, [rdx + rdx*2]
mov rdx, qword [r10 + rdx*8 + 0x10]
lea r9, [r9 + r9*2]
mov r9, qword [r10 + r9*8 + 0x10]
xor r10d, r10d
xor r11d, r11d
cmp rdx, r9
setbe r10b
seta r11b
shl r11d, 2
sub rsi, r11
shl r10d, 2
sub r8, r10
cmp rdx, r9
mov rdx, r8
cmova rdx, rsi
mov edx, dword [rdx]
mov dword [rcx], edx
cmp rsi, rdi
jbe 0x14002ce50
add rcx, 0xfffffffffffffffc
cmp r8, qword [rsp + 0x28]
ja 0x14002d030
jmp 0x14002ce50
lea r8, [rdx*4]
mov r15, qword [rsp + 0x28]
mov rcx, r15
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x20]
lea r8, [r15 + rax*4]
test rax, rax
jle 0x14002ce53
cmp r12, rax
jle 0x14002ce53
mov rax, qword [rsp + 0x38]
lea rax, [rax + rbx*4]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x28]
nop dword [rax]
mov r9d, dword [rsi]
mov r10, qword [rcx + 0x10]
cmp r10, r9
jbe 0x14002e114
mov r11d, dword [rdx]
cmp r10, r11
jbe 0x14002e114
mov rbx, qword [rcx + 8]
lea r10, [r9 + r9*2]
mov r15, qword [rbx + r10*8 + 0x10]
lea r12, [r11 + r11*2]
xor ebp, ebp
xor r10d, r10d
cmp r15, qword [rbx + r12*8 + 0x10]
setbe bpl
seta bl
cmovbe r9d, r11d
mov dword [rdi], r9d
add rdi, 4
lea rdx, [rdx + rbp*4]
cmp rdx, r8
jae 0x14002ce58
mov r10b, bl
lea rsi, [rsi + r10*4]
cmp rsi, rax
jb 0x14002d100
jmp 0x14002ce58
mov eax, dword [rcx + 4]
mov r8, qword [rsp + 0x80]
mov r9, qword [r8 + 0x10]
cmp r9, rax
jbe 0x14002e114
mov r11d, dword [rcx]
cmp r9, r11
jbe 0x14002e114
mov r10, qword [r8 + 8]
lea rax, [rax + rax*2]
mov rax, qword [r10 + rax*8 + 0x10]
lea r8, [r11 + r11*2]
cmp rax, qword [r10 + r8*8 + 0x10]
jbe 0x14002d230
mov eax, 2
cmp rdx, 2
je 0x14002d1fa
nop dword [rax + rax]
mov r8d, dword [rcx + rax*4]
cmp r9, r8
jbe 0x14002e114
mov r11d, dword [rcx + rax*4 - 4]
cmp r9, r11
jbe 0x14002e114
lea r8, [r8 + r8*2]
mov r8, qword [r10 + r8*8 + 0x10]
lea r11, [r11 + r11*2]
cmp r8, qword [r10 + r11*8 + 0x10]
jbe 0x14002d1fa
inc rax
cmp rdx, rax
jne 0x14002d1c0
mov rax, rdx
mov rdx, rax
add rdx, r14
jb 0x14002e114
cmp rdx, rdi
ja 0x14002e114
mov rbx, rdx
mov r8d, 1
cmp rax, 2
jae 0x14002d280
mov r15, rsi
mov rax, rbx
jmp 0x14002cd57
mov r8d, 2
cmp rdx, 2
je 0x14002cd50
mov eax, dword [rcx + r8*4]
cmp r9, rax
jbe 0x14002e114
mov r11d, dword [rcx + r8*4 - 4]
cmp r9, r11
jbe 0x14002e114
lea rax, [rax + rax*2]
mov rax, qword [r10 + rax*8 + 0x10]
lea r11, [r11 + r11*2]
cmp rax, qword [r10 + r11*8 + 0x10]
ja 0x14002cd50
inc r8
cmp rdx, r8
jne 0x14002d240
jmp 0x14002cd4d
mov rdx, rax
shr rdx, 1
mov r15, rsi
cmp rax, 0x10
jae 0x14002d2a2
xor r8d, r8d
jmp 0x14002d326
mov r12d, 2
jmp 0x14002cd26
mov r8, rdx
movabs r9, 0x7ffffffffffffff8
and r8, r9
mov r9, qword [rsp + 0xc8]
lea r9, [r9 + rbx*4]
mov r10, qword [rsp + 0xf0]
lea r10, [r10 + r14*4]
xor r11d, r11d
nop dword [rax]
movdqu xmm0, xmmword [r10 + r11*4 - 0x10]
movdqu xmm1, xmmword [r10 + r11*4]
movdqu xmm2, xmmword [r9 - 0x10]
movdqu xmm3, xmmword [r9]
pshufd xmm3, xmm3, 0x1b
pshufd xmm2, xmm2, 0x1b
movdqu xmmword [r10 + r11*4 - 0x10], xmm3
movdqu xmmword [r10 + r11*4], xmm2
pshufd xmm0, xmm0, 0x1b
movdqu xmmword [r9], xmm0
pshufd xmm0, xmm1, 0x1b
movdqu xmmword [r9 - 0x10], xmm0
add r11, 8
add r9, 0xffffffffffffffe0
cmp r8, r11
jne 0x14002d2d0
cmp rdx, r8
je 0x14002d36a
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + r14*4]
add r8, qword [rsp + 0x38]
mov r10, qword [rsp + 0x70]
lea r10, [r10 + rbx*4]
nop word cs:[rax + rax]
mov r11d, dword [r8]
mov esi, dword [r10 + r9*4]
mov dword [r8], esi
mov dword [r10 + r9*4], r11d
dec r9
add r8, 4
cmp rdx, r9
jne 0x14002d350
mov r8, rax
mov rax, rbx
jmp 0x14002cd57
mov r12d, 3
jmp 0x14002cd26
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, qword [rsp + 0x28]
jmp 0x14002d9ed
movabs rax, 0x7ffffffffffffff8
lea rdx, [rdi + rdi]
add rax, 4
and rdx, rax
movzx eax, byte [0x141af8129]
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov r15, rax
movzx eax, byte [0x141af8129]
mov edx, 0x100
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov rbp, rax
mov rax, qword [rsp + 0x38]
lea rcx, [rax - 0x10]
mov qword [rsp + 0x60], rcx
lea rcx, [rax + 0x10]
mov qword [rsp + 0xc8], rcx
lea rcx, [rax - 4]
mov qword [rsp + 0x78], rcx
mov ecx, 0x10
mov qword [rsp + 0x68], rcx
xor ebx, ebx
xor r12d, r12d
jmp 0x14002d449
mov r12d, 1
mov rbx, qword [rsp + 0x70]
cmp rbx, rdi
mov rax, qword [rsp + 0x38]
jae 0x14002d9d0
mov rdx, rdi
sub rdx, rbx
lea rcx, [rax + rbx*4]
cmp rdx, 2
jae 0x14002d830
mov r8, rdx
lea rax, [r8 + rbx]
mov rsi, rax
sub rsi, rbx
jb 0x14002e114
cmp rax, rdi
ja 0x14002e114
jae 0x14002d4bb
cmp r8, 0xa
jae 0x14002d4bb
cmp rbx, 0xfffffffffffffff6
jae 0x14002e114
mov rdx, rax
lea rdi, [rbx + 0xa]
mov rax, qword [rsp + 0x48]
cmp rdi, rax
cmovae rdi, rax
cmp rdx, rbx
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, rbx
mov rdx, rsi
call fcn.140026830
mov rax, rdi
mov qword [rsp + 0x70], rax
cmp r12, qword [rsp + 0x68]
jne 0x14002d517
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x141af8129]
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x68], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rbp
call sub.KERNEL32.dll_HeapFree
mov rbp, rdi
mov rdi, qword [rsp + 0x48]
mov rax, r12
shl rax, 4
mov qword [rbp + rax], rsi
mov qword [rbp + rax + 8], rbx
inc r12
mov rax, r12
cmp r12, 2
mov qword [rsp + 0xd0], rbp
jae 0x14002d5ce
jmp 0x14002d436
mov rdi, rbp
mov r15, rsi
mov rdx, rsi
mov r12, qword [rsp + 0x28]
mov r13, rcx
mov rbp, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
add rsi, rbp
add r14, rbp
sub r8, rdx
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xe0]
add rax, r13
mov qword [r14], rax
mov rax, qword [rsp + 0xe8]
mov qword [r14 + 8], rax
lea rdx, [rsi + 0x10]
mov rax, qword [rsp + 0x58]
not rax
add r12, rax
shl r12, 4
mov rcx, rsi
mov r8, r12
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x20]
cmp rax, 1
mov rdi, qword [rsp + 0x48]
jbe 0x14002d430
mov r12, rax
lea r10, [rax - 1]
mov rcx, r10
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, rdi
je 0x14002d640
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x14002d640
cmp r12, 2
je 0x14002d8e1
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x14002d657
cmp r12, 3
jbe 0x14002d9c5
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x14002d657
jmp 0x14002d436
cmp r12, 2
je 0x14002d65c
lea r11, [r12 - 3]
mov rcx, r11
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x14002d661
lea r11, [r12 - 2]
cmp r11, r12
jae 0x14002e114
lea r14, [r11 + 1]
cmp r14, r12
mov rax, qword [rsp + 0x38]
jae 0x14002e114
mov qword [rsp + 0x28], r12
mov r8, r11
shl r8, 4
mov rcx, qword [rbp + r8 + 8]
shl r14, 4
mov rdx, qword [rbp + r14]
mov rbx, qword [rbp + r14 + 8]
add rbx, rdx
mov r12, rbx
sub r12, rcx
jb 0x14002e114
cmp rbx, rdi
ja 0x14002e114
mov rsi, r15
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x20], r10
mov qword [rsp + 0xd8], r8
mov r13, qword [rbp + r8]
mov qword [rsp + 0xe8], rcx
lea rdi, [rax + rcx*4]
lea rbp, [rdi + r13*4]
mov r15, r12
sub r15, r13
cmp r15, r13
jae 0x14002d790
lea r8, [r15*4]
mov r12, rsi
mov rcx, rsi
mov rdx, rbp
call sub.msvcrt.dll_memcpy
lea r8, [rsi + r15*4]
mov rcx, r13
test r13, r13
jle 0x14002d550
test r15, r15
jle 0x14002d550
mov rax, qword [rsp + 0x78]
lea rax, [rax + rbx*4]
mov r15, rsi
mov r12, qword [rsp + 0x28]
mov r13, rcx
nop word [rax + rax]
mov ecx, dword [r8 - 4]
mov edx, dword [rbp - 4]
cmp ecx, edx
mov r9d, 0
sbb r9, r9
cmp ecx, edx
mov r10d, 0
adc r10, 0xffffffffffffffff
cmp ecx, edx
lea rbp, [rbp + r9*4]
lea r8, [r8 + r10*4]
mov rcx, r8
cmovb rcx, rbp
mov ecx, dword [rcx]
mov dword [rax], ecx
cmp rbp, rdi
jbe 0x14002d782
add rax, 0xfffffffffffffffc
cmp r8, r15
ja 0x14002d740
mov rdi, rbp
mov rdx, r15
jmp 0x14002d561
lea r8, [r13*4]
mov r15, rsi
mov rcx, rsi
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea r8, [rsi + r13*4]
test r13, r13
jle 0x14002d817
cmp r12, r13
mov r12, qword [rsp + 0x28]
jle 0x14002d80f
mov rax, qword [rsp + 0x38]
lea rax, [rax + rbx*4]
mov rdx, r15
nop word cs:[rax + rax]
mov r10d, dword [rbp]
mov r11d, dword [rdx]
xor ebx, ebx
xor ecx, ecx
cmp r10d, r11d
setae bl
setb r9b
cmovb r11d, r10d
mov dword [rdi], r11d
add rdi, 4
lea rdx, [rdx + rbx*4]
cmp rdx, r8
jae 0x14002d561
mov cl, r9b
lea rbp, [rbp + rcx*4]
cmp rbp, rax
jb 0x14002d7d0
jmp 0x14002d561
mov rdx, r15
jmp 0x14002d561
mov rdx, r15
mov r12, qword [rsp + 0x28]
jmp 0x14002d561
mov r9d, dword [rcx + 4]
cmp r9d, dword [rcx]
jae 0x14002d8a0
mov eax, 2
cmp rdx, 2
je 0x14002d867
nop word cs:[rax + rax]
mov r8d, r9d
mov r9d, dword [rcx + rax*4]
cmp r9d, r8d
jae 0x14002d867
inc rax
cmp rdx, rax
jne 0x14002d850
mov rax, rdx
mov rdx, rax
add rdx, rbx
jb 0x14002e114
cmp rdx, rdi
ja 0x14002e114
mov r14, rdx
mov r8d, 1
cmp rax, 2
jae 0x14002d8cd
mov rax, r14
jmp 0x14002d464
mov r8d, 2
cmp rdx, 2
je 0x14002d460
mov eax, r9d
mov r9d, dword [rcx + r8*4]
cmp r9d, eax
jb 0x14002d460
inc r8
cmp rdx, r8
jne 0x14002d8b0
jmp 0x14002d45d
mov rdx, rax
shr rdx, 1
cmp rax, 0x10
jae 0x14002d8ec
xor r8d, r8d
jmp 0x14002d976
mov r12d, 2
jmp 0x14002d436
mov r8, rdx
movabs r9, 0x7ffffffffffffff8
and r8, r9
mov r9, qword [rsp + 0x60]
lea r9, [r9 + r14*4]
mov r10, qword [rsp + 0xc8]
lea r10, [r10 + rbx*4]
xor r11d, r11d
nop word cs:[rax + rax]
movdqu xmm0, xmmword [r10 + r11*4 - 0x10]
movdqu xmm1, xmmword [r10 + r11*4]
movdqu xmm2, xmmword [r9 - 0x10]
movdqu xmm3, xmmword [r9]
pshufd xmm3, xmm3, 0x1b
pshufd xmm2, xmm2, 0x1b
movdqu xmmword [r10 + r11*4 - 0x10], xmm3
movdqu xmmword [r10 + r11*4], xmm2
pshufd xmm0, xmm0, 0x1b
movdqu xmmword [r9], xmm0
pshufd xmm0, xmm1, 0x1b
movdqu xmmword [r9 - 0x10], xmm0
add r11, 8
add r9, 0xffffffffffffffe0
cmp r8, r11
jne 0x14002d920
cmp rdx, r8
je 0x14002d9ba
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + rbx*4]
add r8, qword [rsp + 0x38]
mov r10, qword [rsp + 0x78]
lea r10, [r10 + r14*4]
nop word cs:[rax + rax]
mov r11d, dword [r8]
mov esi, dword [r10 + r9*4]
mov dword [r8], esi
mov dword [r10 + r9*4], r11d
dec r9
add r8, 4
cmp rdx, r9
jne 0x14002d9a0
mov r8, rax
mov rax, r14
jmp 0x14002d464
mov r12d, 3
jmp 0x14002d436
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, rbp
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0xc0], rax
movdqu xmm0, xmmword [rsp + 0xf8]
movdqu xmm1, xmmword [rsp + 0x108]
movdqu xmm2, xmmword [rsp + 0x118]
movdqu xmm3, xmmword [rsp + 0x128]
movdqa xmmword [rsp + 0xb0], xmm3
movdqa xmmword [rsp + 0xa0], xmm2
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
movzx eax, byte [0x141af8129]
mov edx, 0x58
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov rbx, rax
mov qword [rax], 1
mov qword [rax + 8], 1
movdqa xmm0, xmmword [rsp + 0x80]
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm2, xmmword [rsp + 0xa0]
movdqa xmm3, xmmword [rsp + 0xb0]
movdqu xmmword [rax + 0x10], xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmmword [rax + 0x30], xmm2
movdqu xmmword [rax + 0x40], xmm3
mov rax, qword [rsp + 0xc0]
mov qword [rbx + 0x50], rax
cmp qword [rbx + 0x20], 0
je 0x14002e114
mov r8, qword [rbx + 0x40]
mov rsi, r8
cmp r8, 1
je 0x14002db18
test r8, r8
je 0x14002e114
lea rcx, [r8 - 1]
lea rdx, [r8 - 2]
mov eax, ecx
and eax, 7
cmp rdx, 7
jae 0x14002daf7
mov esi, 1
jmp 0x14002db0a
and rcx, 0xfffffffffffffff8
mov esi, 1
shl rsi, 8
add rcx, 0xfffffffffffffff8
jne 0x14002db00
test rax, rax
je 0x14002db18
nop
add rsi, rsi
dec rax
jne 0x14002db10
mov qword [rsp + 0x20], r8
lock inc qword [rbx]
jle 0x14002e114
movzx eax, byte [0x141af8129]
mov edx, 0x600
xor ecx, ecx
call fcn.140146820
test rax, rax
je 0x14002e114
mov r14, rax
mov qword [rsp + 0x58], rsi
xor eax, eax
mov r10, qword [rsp + 0x50]
mov r11, qword [rsp + 0x20]
nop word [rax + rax]
mov qword [r14 + rax], 0
mov qword [r14 + rax + 8], 8
mov qword [r14 + rax + 0x10], 0
add rax, 0x18
cmp rax, 0x5e8
jne 0x14002db60
mov qword [r14 + rax], 0
mov qword [r14 + rax + 8], 8
mov qword [r14 + rax + 0x10], 0
lea rax, [r11 - 1]
mov qword [rsp + 0x28], rax
mov r13d, r11d
and r13d, 7
mov rax, r11
and rax, 0xfffffffffffffff8
mov qword [rsp + 0x38], rax
xor edi, edi
jmp 0x14002dbdd
inc rdi
mov rax, qword [rsi + 8]
mov rcx, r12
shl rcx, 4
mov qword [rax + rcx], r15
mov dword [rax + rcx + 8], ebp
inc r12
mov qword [rsi + 0x10], r12
mov rsi, qword [rbx + 0x20]
cmp rdi, rsi
jae 0x14002dce4
cmp rdi, qword [rbx + 0x38]
jae 0x14002e114
mov rax, qword [rbx + 0x30]
mov ebp, dword [rax + rdi*4]
cmp rsi, rbp
jbe 0x14002e114
mov rax, qword [rbx + 0x18]
lea rcx, [rbp*2]
add rcx, rbp
cmp r11, qword [rax + rcx*8 + 0x10]
ja 0x14002e114
mov rax, qword [rax + rcx*8 + 8]
cmp qword [rsp + 0x28], 7
jae 0x14002dc30
xor r15d, r15d
jmp 0x14002dc98
mov rcx, qword [rsp + 0x38]
xor r15d, r15d
nop dword [rax + rax]
movzx edx, byte [rax]
movzx r8d, byte [rax + 1]
add rdx, rdx
lea rdx, [rdx + r15*4]
add rdx, r8
movzx r8d, byte [rax + 2]
movzx r9d, byte [rax + 3]
add r8, r8
lea rdx, [r8 + rdx*4]
add rdx, r9
movzx r8d, byte [rax + 4]
movzx r9d, byte [rax + 5]
add r8, r8
lea rdx, [r8 + rdx*4]
add rdx, r9
movzx r8d, byte [rax + 6]
movzx r9d, byte [rax + 7]
add rax, 8
add r8, r8
lea r15, [r8 + rdx*4]
add r15, r9
add rcx, 0xfffffffffffffff8
jne 0x14002dc40
test r13, r13
je 0x14002dcb0
xor ecx, ecx
nop
movzx edx, byte [rax + rcx]
lea r15, [rdx + r15*2]
inc rcx
cmp r13, rcx
jne 0x14002dca0
mov eax, r15d
and eax, 0x3f
lea rax, [rax + rax*2]
lea rsi, [r14 + rax*8]
mov r12, qword [r14 + rax*8 + 0x10]
cmp r12, qword [r14 + rax*8]
jne 0x14002dbc0
mov rcx, rsi
call fcn.140069050
mov r11, qword [rsp + 0x20]
mov r10, qword [rsp + 0x50]
jmp 0x14002dbc0
test byte [r10 + 0x4a], 1
jne 0x14002dd73
lock inc qword [rbx]
jle 0x14002e114
movzx r15d, byte [r10 + 0x4c]
movzx ebp, byte [r10 + 0x49]
movzx edi, byte [r10 + 0x4b]
mov qword [rsp + 0x40], rbx
test bpl, bpl
je 0x14002ddd0
cmp rsi, 0x40
jbe 0x14002ddd0
mov qword [rsp + 0x80], 0
lock dec qword [rbx]
mov rsi, qword [rsp + 0x30]
jne 0x14002dd46
mov rcx, qword [rsp + 0x40]
call fcn.14008c770
mov r11, qword [rsp + 0x20]
mov rax, qword [rsp + 0x80]
test rax, rax
je 0x14002de2e
movdqu xmm0, xmmword [rsp + 0x88]
movdqa xmmword [rsp + 0x140], xmm0
mov rcx, qword [rsp + 0x98]
jmp 0x14002dd7c
xor eax, eax
xor ecx, ecx
mov rsi, qword [rsp + 0x30]
mov qword [rsi], 0x40
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], 0x40
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], r11
mov rdx, qword [rsp + 0x58]
mov qword [rsi + 0x28], rdx
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rax
movaps xmm0, xmmword [rsp + 0x140]
movups xmmword [rsi + 0x40], xmm0
mov qword [rsi + 0x50], rcx
mov qword [rsi + 0x58], rcx
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, qword [rbx + 0x40]
cmp r8, 4
mov r12d, 4
cmovb r12, r8
mov r13, qword [0x141af8118]
test r13, r13
je 0x14002dec0
test r13w, r13w
jns 0x14002dedd
test r15d, r15d
je 0x14002deb1
cmp r15d, 2
je 0x14002df03
xor ecx, ecx
cmp rsi, 0x21
setae cl
xor eax, eax
test dil, dil
setne al
cmp dil, 2
cmove eax, ecx
mov cl, 1
jmp 0x14002df6b
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rsi], rax
lock dec qword [rbx]
jne 0x14002de4d
mov rcx, rbx
call fcn.14008c770
mov esi, 8
jmp 0x14002de6d
add rsi, 0x18
cmp rsi, 0x608
je 0x14002de89
cmp qword [r14 + rsi - 8], 0
je 0x14002de60
mov r8, qword [r14 + rsi]
mov rcx, qword [0x141af8068]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x14002de60
mov rcx, qword [0x141af8068]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
lock dec qword [rbx]
jne 0x14002ddbc
mov rcx, rbx
call fcn.14008c770
jmp 0x14002ddbc
test dil, 1
jne 0x14002dd20
jmp 0x14002df67
mov r13, r8
call fcn.1401587a0
mov r8, r13
mov r11, qword [rsp + 0x20]
mov r13, rax
test r13w, r13w
js 0x14002ddfc
mov rax, qword [0x141af8118]
test rax, rax
je 0x14002df39
test r15d, r15d
je 0x14002df52
cmp r15d, 2
jne 0x14002dd20
test eax, 0x200
je 0x14002dd20
movzx ecx, r13w
shr ecx, 0xf
cmp dil, 2
jne 0x14002df22
test r13w, r13w
sets dl
cmp rsi, 0x21
setae al
and al, dl
jmp 0x14002df6b
test dil, dil
setne al
test r13w, r13w
js 0x14002df6b
test dil, dil
jne 0x14002dd20
jmp 0x14002df6b
mov qword [rsp + 0x28], r8
call fcn.1401587a0
mov r8, qword [rsp + 0x28]
mov r11, qword [rsp + 0x20]
test r15d, r15d
jne 0x14002deee
test eax, 0x200
je 0x14002dd20
and dil, 1
jne 0x14002dd20
xor eax, eax
xor ecx, ecx
test bpl, bpl
je 0x14002df83
cmp r8, 1
jne 0x14002df83
cmp qword [rbx + 0x20], 0x11
jae 0x14002dd20
jmp case.0x14002df9e.1
dec r12
cmp r12, 3
ja case.default.0x14002df9e
lea rdx, [0x140213d90]
movsxd r8, dword [rdx + r12*4]
add r8, rdx
jmp r8
test cl, cl
je 0x14002dfe2
test al, al
je 0x14002e09c
mov rax, qword [0x141af8118]
test rax, rax
je 0x14002e14f
test ax, ax
mov rsi, qword [rsp + 0x30]
jns 0x14002e0ba
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
call fcn.140017ea0
jmp 0x14002e196
mov rax, qword [0x141af8118]
test rax, rax
je 0x14002e130
test eax, 0x200
mov rsi, qword [rsp + 0x30]
je 0x14002e0ba
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
call fcn.1400090f0
jmp 0x14002e196
test cl, cl
je 0x14002e0cb
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
test al, al
je 0x14002e116
call fcn.14001a080
jmp 0x14002e129
test cl, cl
je 0x14002e0df
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
test al, al
je 0x14002e11d
call fcn.14001b310
jmp 0x14002e129
test cl, cl
je 0x14002e0f3
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
test al, al
je 0x14002e124
call fcn.140018f30
jmp 0x14002e129
mov qword [rsp + 0x80], 0
jmp 0x14002e10a
mov rax, qword [0x141af8118]
test rax, rax
je 0x14002e16c
test ax, ax
mov rsi, qword [rsp + 0x30]
js 0x14002e184
mov qword [rsp + 0x80], 0
jmp 0x14002e19b
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
call fcn.14000af10
jmp 0x14002e105
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
call fcn.14000c260
jmp 0x14002e105
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
call fcn.140009ee0
mov r11, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x30]
jmp 0x14002e19b
ud2
call fcn.140012050
jmp 0x14002e129
call fcn.140014c50
jmp 0x14002e129
call fcn.14000f9c0
mov rsi, qword [rsp + 0x30]
jmp 0x14002e196
call fcn.1401587a0
mov r11, qword [rsp + 0x20]
test eax, 0x200
mov rsi, qword [rsp + 0x30]
je 0x14002e0ba
jmp 0x14002e002
call fcn.1401587a0
mov r11, qword [rsp + 0x20]
test ax, ax
mov rsi, qword [rsp + 0x30]
jns 0x14002e0ba
jmp 0x14002dfcb
call fcn.1401587a0
mov r11, qword [rsp + 0x20]
test ax, ax
mov rsi, qword [rsp + 0x30]
jns 0x14002e0ba
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x40]
call fcn.14000d8e0
mov r11, qword [rsp + 0x20]
lock dec qword [rbx]
je 0x14002dd37
jmp 0x14002dd46