Function at 0x1400318b0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
cmp byte [rdx + 0x4d], 0
jne 0x140031991
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x140031991
movabs rax, 0x555555555555555
cmp r12, rax
ja 0x14003198f
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x80], rdx
mov r13, qword [rdx + 8]
lea rax, [r12*8]
lea rdi, [rax + rax*2]
movzx eax, byte [0x141934140]
xor ecx, ecx
mov rdx, rdi
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov rsi, rax
xor ebp, ebp
mov qword [rsp + 0x28], r12
jmp 0x140031962
mov r15d, 1
dec r12
add r13, 0x18
mov rcx, r15
mov rdx, r14
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov qword [rsi + rbp], rbx
mov qword [rsi + rbp + 8], r15
mov qword [rsi + rbp + 0x10], rbx
add rbp, 0x18
test r12, r12
je 0x1400319a7
cmp rdi, rbp
je 0x1400319a7
mov r14, qword [r13 + 8]
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x140031930
js 0x14003198f
movzx eax, byte [0x141934140]
xor ecx, ecx
mov rdx, rbx
call fcn.1400e65f0
mov r15, rax
test rax, rax
jne 0x140031936
ud2
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rcx], rax
jmp 0x140032c03
mov rax, qword [rsp + 0x80]
mov rdi, qword [rax + 0x20]
mov rbx, qword [rax + 0x28]
test rbx, rbx
je 0x1400319e8
mov rax, rbx
shr rax, 0x3d
jne 0x14003198f
lea r15, [rbx*4]
movzx eax, byte [0x141934140]
xor ecx, ecx
mov rdx, r15
call fcn.1400e65f0
mov r14, rax
test rax, rax
jne 0x1400319f1
jmp 0x14003198f
mov r14d, 4
xor r15d, r15d
mov rcx, r14
mov rdx, rdi
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x128], r14
mov qword [rsp + 0x130], rbx
mov rax, qword [rsp + 0x80]
movdqu xmm0, xmmword [rax + 0x30]
movdqu xmmword [rsp + 0x138], xmm0
movzx eax, byte [rax + 0x48]
mov byte [rsp + 0x148], al
test al, al
mov rdx, rbx
mov qword [rsp + 0x40], rbx
mov rdi, r14
mov qword [rsp + 0x50], r14
je 0x140031aa4
lea rax, [rsp + 0x108]
mov qword [rsp + 0x90], rax
cmp rdx, 0x15
jae 0x140031acb
cmp rdx, 1
jbe 0x140032828
lea r9, [rsp + 0x90]
mov r8d, 1
mov rcx, rdi
call fcn.14002dfb0
jmp 0x140032828
cmp rdx, 0x15
jae 0x1400321c5
cmp rdx, 1
jbe 0x140032828
mov r8d, 1
mov rcx, rdi
call fcn.14002e080
jmp 0x140032828
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x141934140]
xor ecx, ecx
call fcn.1400e65f0
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14003198f
movzx eax, byte [0x141934140]
mov edx, 0x100
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov rsi, rax
lea rax, [rdi - 0x10]
mov qword [rsp + 0xe0], rax
lea rax, [rdi + 0x10]
mov qword [rsp + 0x100], rax
lea rax, [rdi - 4]
mov qword [rsp + 0x78], rax
mov eax, 0x10
mov qword [rsp + 0x68], rax
xor r14d, r14d
xor r15d, r15d
mov r10, qword [rsp + 0x40]
jmp 0x140031b74
mov r15d, 1
mov r14, qword [rsp + 0x70]
cmp r14, r10
jae 0x140032804
mov rdx, r10
sub rdx, r14
lea rcx, [rdi + r14*4]
cmp rdx, 2
jae 0x140031fb0
mov r8, rdx
mov rbx, rsi
lea rax, [r8 + r14]
mov r10, qword [rsp + 0x40]
mov rsi, rax
sub rsi, r14
jb 0x14003198f
cmp rax, r10
ja 0x14003198f
jae 0x140031bf8
cmp r8, 0xa
jae 0x140031bf8
cmp r14, 0xfffffffffffffff6
jae 0x14003198f
lea rdi, [r14 + 0xa]
cmp rdi, r10
cmovae rdi, r10
cmp rax, r14
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, r14
mov rdx, rsi
lea r9, [rsp + 0x90]
call fcn.14002dfb0
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x70], rax
cmp r15, qword [rsp + 0x68]
jne 0x140031c5e
mov rdx, r15
shl rdx, 5
movzx eax, byte [0x141934140]
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov rdi, rax
lea rax, [r15 + r15]
mov qword [rsp + 0x68], rax
mov r8, r15
shl r8, 4
mov rcx, rdi
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, rbx
call fcn.1401034d0
mov rbx, rdi
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
mov rax, r15
shl rax, 4
mov qword [rbx + rax], rsi
mov qword [rbx + rax + 8], r14
inc r15
mov rax, r15
cmp r15, 2
mov rsi, rbx
mov qword [rsp + 0x88], rbx
jae 0x140031d06
jmp 0x140031b66
mov rdi, rsi
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x88]
add r14, rsi
sub r8, rdx
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xe8]
add rax, qword [rsp + 0x38]
mov qword [r14], rax
mov rax, qword [rsp + 0x58]
mov qword [r14 + 8], rax
lea rdx, [r13 + 0x10]
mov rax, qword [rsp + 0xf8]
not rax
mov r8, qword [rsp + 0x60]
add r8, rax
shl r8, 4
mov rcx, r13
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0xf0]
cmp rax, 1
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
jbe 0x140031b60
mov r15, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rsi + rcx]
mov rcx, qword [rsi + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x140031d80
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rsi - 0x20]
cmp r8, rax
jbe 0x140031d80
cmp r15, 2
je 0x1400320d7
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140031d95
cmp r15, 3
jbe 0x1400321ba
add r8, rcx
cmp qword [rdx + rsi - 0x40], r8
jbe 0x140031d95
jmp 0x140031b66
cmp r15, 2
je 0x140031d9a
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
cmp rcx, rax
jb 0x140031d9e
lea r13, [r15 - 2]
cmp r13, r15
jae 0x14003198f
lea r14, [r13 + 1]
mov qword [rsp + 0x60], r15
cmp r14, r15
jae 0x14003198f
mov qword [rsp + 0xf8], r13
shl r13, 4
mov rax, qword [rsi + r13 + 8]
shl r14, 4
mov rcx, qword [rsi + r14]
mov rbx, qword [rsi + r14 + 8]
add rbx, rcx
mov r12, rbx
sub r12, rax
jb 0x14003198f
cmp rbx, r10
ja 0x14003198f
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xf0], r11
add r13, rsi
mov rcx, qword [r13]
mov qword [rsp + 0x58], rax
lea rdi, [rdi + rax*4]
lea rsi, [rdi + rcx*4]
mov r15, r12
sub r15, rcx
cmp r15, rcx
mov qword [rsp + 0x38], rcx
jae 0x140031ef0
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 + 0x38], 0
jle 0x140031c90
test r15, r15
jle 0x140031c90
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x78]
lea rcx, [rcx + rbx*4]
nop dword [rax]
mov edx, dword [r8 - 4]
mov r10, qword [rax + 0x10]
cmp r10, rdx
jbe 0x14003198f
mov r9d, dword [rsi - 4]
cmp r10, r9
jbe 0x14003198f
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 0x140031c90
add rcx, 0xfffffffffffffffc
cmp r8, qword [rsp + 0x28]
ja 0x140031e70
jmp 0x140031c90
lea r8, [rcx*4]
mov r15, qword [rsp + 0x28]
mov rcx, r15
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x38]
lea r8, [r15 + rax*4]
test rax, rax
jle 0x140031c93
cmp r12, rax
jle 0x140031c93
mov rax, qword [rsp + 0x50]
lea rax, [rax + rbx*4]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x28]
nop dword [rax]
mov r9d, dword [rsi]
mov r10, qword [rcx + 0x10]
cmp r10, r9
jbe 0x14003198f
mov r11d, dword [rdx]
cmp r10, r11
jbe 0x14003198f
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 0x140031c98
mov r10b, bl
lea rsi, [rsi + r10*4]
cmp rsi, rax
jb 0x140031f40
jmp 0x140031c98
mov eax, dword [rcx + 4]
mov r8, qword [rsp + 0x90]
mov r9, qword [r8 + 0x10]
cmp r9, rax
jbe 0x14003198f
mov r11d, dword [rcx]
cmp r9, r11
jbe 0x14003198f
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 0x140032070
mov eax, 2
cmp rdx, 2
je 0x14003203a
nop dword [rax + rax]
mov r8d, dword [rcx + rax*4]
cmp r9, r8
jbe 0x14003198f
mov r11d, dword [rcx + rax*4 - 4]
cmp r9, r11
jbe 0x14003198f
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 0x14003203a
inc rax
cmp rdx, rax
jne 0x140032000
mov rax, rdx
mov rdx, rax
add rdx, r14
jb 0x14003198f
mov r10, qword [rsp + 0x40]
cmp rdx, r10
ja 0x14003198f
mov r12, rdx
mov r8d, 1
cmp rax, 2
jae 0x1400320c0
mov rbx, rsi
mov rax, r12
jmp 0x140031b97
mov r8d, 2
cmp rdx, 2
je 0x140031b8b
mov eax, dword [rcx + r8*4]
cmp r9, rax
jbe 0x14003198f
mov r11d, dword [rcx + r8*4 - 4]
cmp r9, r11
jbe 0x14003198f
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 0x140031b8b
inc r8
cmp rdx, r8
jne 0x140032080
jmp 0x140031b88
mov rdx, rax
shr rdx, 1
mov rbx, rsi
cmp rax, 0x10
jae 0x1400320e2
xor r8d, r8d
jmp 0x140032166
mov r15d, 2
jmp 0x140031b66
mov r8, rdx
movabs r9, 0x7ffffffffffffff8
and r8, r9
mov r9, qword [rsp + 0xe0]
lea r9, [r9 + r12*4]
mov r10, qword [rsp + 0x100]
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 0x140032110
cmp rdx, r8
je 0x1400321aa
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + r14*4]
add r8, rdi
mov r10, qword [rsp + 0x78]
lea r10, [r10 + r12*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 0x140032190
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r12
jmp 0x140031b97
mov r15d, 3
jmp 0x140031b66
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x141934140]
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov r15, rax
movzx eax, byte [0x141934140]
mov edx, 0x100
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov rbp, rax
lea rax, [rdi - 0x10]
mov qword [rsp + 0x68], rax
lea rax, [rdi + 0x10]
mov qword [rsp + 0xe0], rax
lea rax, [rdi - 4]
mov qword [rsp + 0x88], rax
mov eax, 0x10
mov qword [rsp + 0x70], rax
xor ebx, ebx
xor r12d, r12d
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x58], r15
jmp 0x140032264
mov r12d, 1
mov rbx, qword [rsp + 0x78]
cmp rbx, r10
jae 0x1400327e5
mov rdx, r10
sub rdx, rbx
lea rcx, [rdi + rbx*4]
cmp rdx, 2
jae 0x140032640
mov r8, rdx
lea rax, [r8 + rbx]
mov rsi, rax
sub rsi, rbx
jb 0x14003198f
cmp rax, r10
ja 0x14003198f
jae 0x1400322d8
cmp r8, 0xa
jae 0x1400322d8
cmp rbx, 0xfffffffffffffff6
jae 0x14003198f
lea rdi, [rbx + 0xa]
cmp rdi, r10
cmovae rdi, r10
cmp rax, rbx
mov eax, 1
cmove r8, rax
mov rsi, rdi
sub rsi, rbx
mov rdx, rsi
call fcn.14002e080
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x78], rax
cmp r12, qword [rsp + 0x70]
jne 0x14003233e
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x141934140]
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x70], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, rbp
call fcn.1401034d0
mov rbp, rdi
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
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 + 0xe8], rbp
jae 0x1400323d2
jmp 0x140032256
mov rdx, r15
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0xe8]
add r14, rbp
sub r8, rdx
mov rcx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xf0]
add rax, r13
mov qword [r14], rax
mov rax, qword [rsp + 0xf8]
mov qword [r14 + 8], rax
lea rdx, [rsi + 0x10]
not rbx
add r12, rbx
shl r12, 4
mov rcx, rsi
mov r8, r12
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x60]
cmp rax, 1
mov r10, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x50]
jbe 0x140032250
mov r12, rax
lea r11, [rax - 1]
mov rcx, r11
shl rcx, 4
mov rax, qword [rbp + rcx]
mov rcx, qword [rbp + rcx + 8]
add rcx, rax
cmp rcx, r10
je 0x140032440
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x140032440
cmp r12, 2
je 0x1400326f1
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140032457
cmp r12, 3
jbe 0x1400327da
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x140032457
jmp 0x140032256
cmp r12, 2
je 0x14003245c
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x140032461
lea rsi, [r12 - 2]
cmp rsi, r12
jae 0x14003198f
lea r14, [rsi + 1]
cmp r14, r12
jae 0x14003198f
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x38], rsi
shl rsi, 4
mov rax, qword [rbp + rsi + 8]
shl r14, 4
mov rcx, qword [rbp + r14]
mov rbx, qword [rbp + r14 + 8]
add rbx, rcx
mov r12, rbx
sub r12, rax
jb 0x14003198f
cmp rbx, r10
ja 0x14003198f
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0x60], r11
add rsi, rbp
mov r13, qword [rsi]
mov qword [rsp + 0xf8], rax
lea rdi, [rdi + rax*4]
lea rbp, [rdi + r13*4]
mov r15, r12
sub r15, r13
cmp r15, r13
jae 0x140032590
lea r8, [r15*4]
mov r12, qword [rsp + 0x58]
mov rcx, r12
mov rdx, rbp
call sub.msvcrt.dll_memcpy
lea r8, [r12 + r15*4]
mov rcx, r13
test r13, r13
jle 0x140032610
test r15, r15
jle 0x140032610
mov rax, qword [rsp + 0x88]
lea rax, [rax + rbx*4]
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov r13, rcx
nop word cs:[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 0x140032582
add rax, 0xfffffffffffffffc
cmp r8, r15
ja 0x140032540
mov rdi, rbp
mov rdx, r15
jmp 0x140032370
lea r8, [r13*4]
mov r15, qword [rsp + 0x58]
mov rcx, r15
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea r8, [r15 + r13*4]
test r13, r13
jle 0x14003262d
cmp r12, r13
mov r12, qword [rsp + 0x28]
jle 0x140032368
mov rax, qword [rsp + 0x50]
lea rax, [rax + rbx*4]
mov rdx, r15
nop dword [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 0x14003236b
mov cl, r9b
lea rbp, [rbp + rcx*4]
cmp rbp, rax
jb 0x1400325d0
jmp 0x14003236b
mov rdi, rbp
mov r15, qword [rsp + 0x58]
mov rdx, r15
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x38]
mov r13, rcx
jmp 0x140032370
mov rdx, r15
mov r12, qword [rsp + 0x28]
jmp 0x14003236b
mov r9d, dword [rcx + 4]
cmp r9d, dword [rcx]
jae 0x1400326b0
mov eax, 2
cmp rdx, 2
je 0x140032677
nop word cs:[rax + rax]
mov r8d, r9d
mov r9d, dword [rcx + rax*4]
cmp r9d, r8d
jae 0x140032677
inc rax
cmp rdx, rax
jne 0x140032660
mov rax, rdx
mov rdx, rax
add rdx, rbx
jb 0x14003198f
cmp rdx, r10
ja 0x14003198f
mov r14, rdx
mov r8d, 1
cmp rax, 2
jae 0x1400326dd
mov rax, r14
jmp 0x14003227f
mov r8d, 2
cmp rdx, 2
je 0x14003227b
mov eax, r9d
mov r9d, dword [rcx + r8*4]
cmp r9d, eax
jb 0x14003227b
inc r8
cmp rdx, r8
jne 0x1400326c0
jmp 0x140032278
mov rdx, rax
shr rdx, 1
cmp rax, 0x10
jae 0x1400326fc
xor r8d, r8d
jmp 0x140032786
mov r12d, 2
jmp 0x140032256
mov r8, rdx
movabs r9, 0x7ffffffffffffff8
and r8, r9
mov r9, qword [rsp + 0x68]
lea r9, [r9 + r14*4]
mov r10, qword [rsp + 0xe0]
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 0x140032730
cmp rdx, r8
je 0x1400327ca
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + rbx*4]
add r8, rdi
mov r10, qword [rsp + 0x88]
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 0x1400327b0
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r14
jmp 0x14003227f
mov r12d, 3
jmp 0x140032256
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, rbp
call fcn.1401034d0
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, r15
jmp 0x140032823
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, rsi
call fcn.1401034d0
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, qword [rsp + 0x28]
call fcn.1401034d0
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0xd0], rax
movdqu xmm0, xmmword [rsp + 0x108]
movdqu xmm1, xmmword [rsp + 0x118]
movdqu xmm2, xmmword [rsp + 0x128]
movdqu xmm3, xmmword [rsp + 0x138]
movdqa xmmword [rsp + 0xc0], xmm3
movdqa xmmword [rsp + 0xb0], xmm2
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
movzx eax, byte [0x141934140]
mov edx, 0x58
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov rbx, rax
mov qword [rax], 1
mov qword [rax + 8], 1
movdqa xmm0, xmmword [rsp + 0x90]
movdqa xmm1, xmmword [rsp + 0xa0]
movdqa xmm2, xmmword [rsp + 0xb0]
movdqa xmm3, xmmword [rsp + 0xc0]
movdqu xmmword [rax + 0x10], xmm0
movdqu xmmword [rax + 0x20], xmm1
movdqu xmmword [rax + 0x30], xmm2
movdqu xmmword [rax + 0x40], xmm3
mov rax, qword [rsp + 0xd0]
mov qword [rbx + 0x50], rax
cmp qword [rbx + 0x20], 0
je 0x14003198f
mov r8, qword [rbx + 0x40]
mov rsi, r8
cmp r8, 1
je 0x140032958
test r8, r8
je 0x14003198f
lea rcx, [r8 - 1]
lea rdx, [r8 - 2]
mov eax, ecx
and eax, 7
cmp rdx, 7
jae 0x14003292d
mov esi, 1
jmp 0x14003294a
and rcx, 0xfffffffffffffff8
mov esi, 1
nop word cs:[rax + rax]
shl rsi, 8
add rcx, 0xfffffffffffffff8
jne 0x140032940
test rax, rax
je 0x140032958
nop
add rsi, rsi
dec rax
jne 0x140032950
mov qword [rsp + 0x28], r8
lock inc qword [rbx]
jle 0x14003198f
movzx eax, byte [0x141934140]
mov edx, 0x600
xor ecx, ecx
call fcn.1400e65f0
test rax, rax
je 0x14003198f
mov r14, rax
mov qword [rsp + 0x60], rsi
xor eax, eax
mov r10, qword [rsp + 0x80]
mov r11, qword [rsp + 0x28]
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 0x1400329a0
mov qword [r14 + rax], 0
mov qword [r14 + rax + 8], 8
mov qword [r14 + rax + 0x10], 0
lea r12, [r11 - 1]
mov r13d, r11d
and r13d, 7
mov rax, r11
and rax, 0xfffffffffffffff8
mov qword [rsp + 0x38], rax
xor edi, edi
jmp 0x140032a17
inc rdi
mov rax, qword [rsi + 8]
shl rdx, 4
mov qword [rax + rdx], r15
mov dword [rax + rdx + 8], ebp
inc qword [rsi + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rdi, rsi
jae 0x140032b2b
cmp rdi, qword [rbx + 0x38]
jae 0x14003198f
mov rax, qword [rbx + 0x30]
mov ebp, dword [rax + rdi*4]
cmp rsi, rbp
jbe 0x14003198f
mov rax, qword [rbx + 0x18]
lea rcx, [rbp*2]
add rcx, rbp
cmp r11, qword [rax + rcx*8 + 0x10]
ja 0x14003198f
mov rax, qword [rax + rcx*8 + 8]
cmp r12, 7
jae 0x140032a70
xor r15d, r15d
jmp 0x140032ad8
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 0x140032a80
test r13, r13
je 0x140032af0
xor ecx, ecx
nop
movzx edx, byte [rax + rcx]
lea r15, [rdx + r15*2]
inc rcx
cmp r13, rcx
jne 0x140032ae0
mov eax, r15d
and eax, 0x3f
lea rax, [rax + rax*2]
lea rsi, [r14 + rax*8]
mov rdx, qword [r14 + rax*8 + 0x10]
cmp rdx, qword [r14 + rax*8]
jne 0x140032a00
mov rcx, rsi
call fcn.140050cd0
mov r11, qword [rsp + 0x28]
mov r10, qword [rsp + 0x80]
mov rdx, qword [rsi + 0x10]
jmp 0x140032a00
test byte [r10 + 0x4a], 1
jne 0x140032bba
lock inc qword [rbx]
jle 0x14003198f
movzx r15d, byte [r10 + 0x4c]
movzx ebp, byte [r10 + 0x49]
movzx r12d, byte [r10 + 0x4b]
mov qword [rsp + 0x48], rbx
test bpl, bpl
je 0x140032c17
cmp rsi, 0x40
jbe 0x140032c17
mov qword [rsp + 0x90], 0
lock dec qword [rbx]
mov rsi, qword [rsp + 0x30]
jne 0x140032b8d
mov rcx, qword [rsp + 0x48]
call fcn.140078430
mov r11, qword [rsp + 0x28]
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140032c74
movdqu xmm0, xmmword [rsp + 0x98]
movdqa xmmword [rsp + 0x150], xmm0
mov rcx, qword [rsp + 0xa8]
jmp 0x140032bc3
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 + 0x60]
mov qword [rsi + 0x28], rdx
mov qword [rsi + 0x30], rbx
mov qword [rsi + 0x38], rax
movaps xmm0, xmmword [rsp + 0x150]
movups xmmword [rsi + 0x40], xmm0
mov qword [rsi + 0x50], rcx
mov qword [rsi + 0x58], rcx
add rsp, 0x168
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 edi, 4
cmovb rdi, r8
mov r13, qword [0x141934138]
test r13, r13
je 0x140032d00
test r13w, r13w
jns 0x140032d1d
test r15d, r15d
je 0x140032cf1
cmp r15d, 2
je 0x140032d43
xor ecx, ecx
cmp rsi, 0x21
setae cl
xor eax, eax
test r12b, r12b
setne al
cmp r12b, 2
cmove eax, ecx
mov cl, 1
jmp 0x140032dab
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rsi], rax
lock dec qword [rbx]
jne 0x140032c93
mov rcx, rbx
call fcn.140078430
mov esi, 8
jmp 0x140032cad
add rsi, 0x18
cmp rsi, 0x608
je 0x140032cc9
cmp qword [r14 + rsi - 8], 0
je 0x140032ca0
mov r8, qword [r14 + rsi]
mov rcx, qword [0x1419340f0]
xor edx, edx
call fcn.1401034d0
jmp 0x140032ca0
mov rcx, qword [0x1419340f0]
xor edx, edx
mov r8, r14
call fcn.1401034d0
lock dec qword [rbx]
jne 0x140032c03
mov rcx, rbx
call fcn.140078430
jmp 0x140032c03
test r12b, 1
jne 0x140032b67
jmp 0x140032da7
mov r13, r8
call fcn.1400ee490
mov r8, r13
mov r11, qword [rsp + 0x28]
mov r13, rax
test r13w, r13w
js 0x140032c42
mov rax, qword [0x141934138]
test rax, rax
je 0x140032d79
shr eax, 9
test r15d, r15d
je 0x140032d95
cmp r15d, 2
jne 0x140032b67
test al, 1
je 0x140032b67
movzx ecx, r13w
shr ecx, 0xf
cmp r12b, 2
jne 0x140032d62
test r13w, r13w
sets dl
cmp rsi, 0x21
setae al
and al, dl
jmp 0x140032dab
test r12b, r12b
setne al
test r13w, r13w
js 0x140032dab
test r12b, r12b
jne 0x140032b67
jmp 0x140032dab
mov qword [rsp + 0x38], r8
call fcn.1400ee490
mov r8, qword [rsp + 0x38]
mov r11, qword [rsp + 0x28]
shr eax, 9
test r15d, r15d
jne 0x140032d31
test al, 1
je 0x140032b67
and r12b, 1
jne 0x140032b67
xor eax, eax
xor ecx, ecx
test bpl, bpl
je 0x140032dc3
cmp r8, 1
jne 0x140032dc3
cmp qword [rbx + 0x20], 0x11
jae 0x140032b67
jmp case.0x140032dde.1
dec rdi
cmp rdi, 3
ja case.default.0x140032dde
lea rdx, [0x14010ecac]
movsxd r8, dword [rdx + rdi*4]
add r8, rdx
jmp r8
test cl, cl
je 0x140032e22
test al, al
je 0x140032edc
mov rax, qword [0x141934138]
test rax, rax
je 0x140032f8d
test ax, ax
mov rsi, qword [rsp + 0x30]
jns 0x140032efa
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.140019860
jmp 0x140032fd4
mov rax, qword [0x141934138]
test rax, rax
je 0x140032f6e
test eax, 0x200
mov rsi, qword [rsp + 0x30]
je 0x140032efa
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000b090
jmp 0x140032fd4
test cl, cl
je 0x140032f0b
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140032f54
call fcn.14001b930
jmp 0x140032f67
test cl, cl
je 0x140032f1f
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140032f5b
call fcn.14001cae0
jmp 0x140032f67
test cl, cl
je 0x140032f33
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140032f62
call fcn.14001a8c0
jmp 0x140032f67
mov qword [rsp + 0x90], 0
jmp 0x140032f4a
mov rax, qword [0x141934138]
test rax, rax
je 0x140032faa
test ax, ax
mov rsi, qword [rsp + 0x30]
js 0x140032fc2
mov qword [rsp + 0x90], 0
jmp 0x140032fd9
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000cdf0
jmp 0x140032f45
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000e070
jmp 0x140032f45
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000be30
mov r11, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
jmp 0x140032fd9
call fcn.140013c70
jmp 0x140032f67
call fcn.140016700
jmp 0x140032f67
call fcn.140011710
mov rsi, qword [rsp + 0x30]
jmp 0x140032fd4
call fcn.1400ee490
mov r11, qword [rsp + 0x28]
test eax, 0x200
mov rsi, qword [rsp + 0x30]
je 0x140032efa
jmp 0x140032e42
call fcn.1400ee490
mov r11, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x30]
jns 0x140032efa
jmp 0x140032e0b
call fcn.1400ee490
mov r11, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x30]
jns 0x140032efa
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000f650
mov r11, qword [rsp + 0x28]
lock dec qword [rbx]
je 0x140032b7e
jmp 0x140032b8d