Function at 0x140034720
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
mov rdi, rcx
cmp byte [rdx + 0x4d], 0
jne 0x140034820
mov rbx, rdx
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x140034820
movabs rax, 0x555555555555555
cmp r12, rax
ja 0x140035ab7
mov r13, qword [rbx + 8]
lea rax, [r12*8]
lea rdx, [rax + rax*2]
movzx eax, byte [0x141936118]
xor ecx, ecx
mov qword [rsp + 0x28], rdx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
mov rsi, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x38], rdi
xor ebp, ebp
mov qword [rsp + 0x30], r12
jmp 0x1400347e4
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
je 0x140034836
cmp qword [rsp + 0x28], rbp
je 0x140034836
mov r14, qword [r13 + 8]
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x1400347b0
js 0x140035ab7
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, rbx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
mov r15, rax
mov rdi, rbx
jmp 0x1400347b8
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rdi], rax
jmp 0x140035aa3
mov rax, qword [rsp + 0x70]
mov rdi, qword [rax + 0x20]
mov r14, qword [rax + 0x28]
test r14, r14
mov qword [rsp + 0x40], r14
je 0x140034889
mov rax, r14
shr rax, 0x3d
jne 0x140035ab7
lea r15, [r14*4]
movzx eax, byte [0x141936118]
xor ecx, ecx
mov rdx, r15
call fcn.1400dee70
mov r14, qword [rsp + 0x40]
test rax, rax
je 0x140035ab7
mov r12, rax
mov rbx, r14
jmp 0x140034894
mov r12d, 4
xor r15d, r15d
xor ebx, ebx
mov rcx, r12
mov rdx, rdi
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rsi
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x128], r12
mov qword [rsp + 0x130], r14
mov rax, qword [rsp + 0x70]
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, r14
mov rdi, r12
mov qword [rsp + 0x50], r12
je 0x14003493f
lea rax, [rsp + 0x108]
mov qword [rsp + 0x90], rax
cmp rdx, 0x15
jae 0x140034966
cmp rdx, 1
jbe 0x1400356c8
lea r9, [rsp + 0x90]
mov r8d, 1
mov rcx, rdi
call fcn.14002a7d0
jmp 0x1400356c8
cmp rdx, 0x15
jae 0x140035055
cmp rdx, 1
jbe 0x1400356c8
mov r8d, 1
mov rcx, rdi
call fcn.14002a740
jmp 0x1400356c8
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x141936118]
xor ecx, ecx
call fcn.1400dee70
mov qword [rsp + 0x28], rax
test rax, rax
je 0x140035ab7
movzx eax, byte [0x141936118]
mov edx, 0x100
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
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 + 0x80], rax
mov eax, 0x10
mov qword [rsp + 0x68], rax
xor r14d, r14d
xor r15d, r15d
mov r10, qword [rsp + 0x40]
jmp 0x140034a04
mov r15d, 1
mov r14, qword [rsp + 0x78]
cmp r14, r10
jae 0x1400356a4
mov rdx, r10
sub rdx, r14
lea rcx, [rdi + r14*4]
cmp rdx, 2
jae 0x140034e40
mov r8, rdx
mov rbx, rsi
lea rax, [r8 + r14]
mov r10, qword [rsp + 0x40]
mov rsi, rax
sub rsi, r14
jb 0x140035ab7
cmp rax, r10
ja 0x140035ab7
jae 0x140034a88
cmp r8, 0xa
jae 0x140034a88
cmp r14, 0xfffffffffffffff6
jae 0x140035ab7
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.14002a7d0
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x78], rax
cmp r15, qword [rsp + 0x68]
jne 0x140034aee
mov rdx, r15
shl rdx, 5
movzx eax, byte [0x141936118]
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
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 [0x141936088]
xor edx, edx
mov r8, rbx
call fcn.140102ef8
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 0x140034b96
jmp 0x1400349f6
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 + 0x30]
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 0x1400349f0
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 0x140034c10
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rsi - 0x20]
cmp r8, rax
jbe 0x140034c10
cmp r15, 2
je 0x140034f67
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140034c25
cmp r15, 3
jbe 0x14003504a
add r8, rcx
cmp qword [rdx + rsi - 0x40], r8
jbe 0x140034c25
jmp 0x1400349f6
cmp r15, 2
je 0x140034c2a
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
cmp rcx, rax
jb 0x140034c2e
lea r13, [r15 - 2]
cmp r13, r15
jae 0x140035ab7
lea r14, [r13 + 1]
mov qword [rsp + 0x60], r15
cmp r14, r15
jae 0x140035ab7
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 0x140035ab7
cmp rbx, r10
ja 0x140035ab7
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 + 0x30], rcx
jae 0x140034d80
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 + 0x30], 0
jle 0x140034b20
test r15, r15
jle 0x140034b20
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x80]
lea rcx, [rcx + rbx*4]
nop dword [rax]
mov edx, dword [r8 - 4]
mov r10, qword [rax + 0x10]
cmp r10, rdx
jbe 0x140035ab7
mov r9d, dword [rsi - 4]
cmp r10, r9
jbe 0x140035ab7
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 0x140034b20
add rcx, 0xfffffffffffffffc
cmp r8, qword [rsp + 0x28]
ja 0x140034d00
jmp 0x140034b20
lea r8, [rcx*4]
mov r15, qword [rsp + 0x28]
mov rcx, r15
mov rdx, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x30]
lea r8, [r15 + rax*4]
test rax, rax
jle 0x140034b23
cmp r12, rax
jle 0x140034b23
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 0x140035ab7
mov r11d, dword [rdx]
cmp r10, r11
jbe 0x140035ab7
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 0x140034b28
mov r10b, bl
lea rsi, [rsi + r10*4]
cmp rsi, rax
jb 0x140034dd0
jmp 0x140034b28
mov eax, dword [rcx + 4]
mov r8, qword [rsp + 0x90]
mov r9, qword [r8 + 0x10]
cmp r9, rax
jbe 0x140035ab7
mov r11d, dword [rcx]
cmp r9, r11
jbe 0x140035ab7
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 0x140034f00
mov eax, 2
cmp rdx, 2
je 0x140034eca
nop dword [rax + rax]
mov r8d, dword [rcx + rax*4]
cmp r9, r8
jbe 0x140035ab7
mov r11d, dword [rcx + rax*4 - 4]
cmp r9, r11
jbe 0x140035ab7
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 0x140034eca
inc rax
cmp rdx, rax
jne 0x140034e90
mov rax, rdx
mov rdx, rax
add rdx, r14
jb 0x140035ab7
mov r10, qword [rsp + 0x40]
cmp rdx, r10
ja 0x140035ab7
mov r12, rdx
mov r8d, 1
cmp rax, 2
jae 0x140034f50
mov rbx, rsi
mov rax, r12
jmp 0x140034a27
mov r8d, 2
cmp rdx, 2
je 0x140034a1b
mov eax, dword [rcx + r8*4]
cmp r9, rax
jbe 0x140035ab7
mov r11d, dword [rcx + r8*4 - 4]
cmp r9, r11
jbe 0x140035ab7
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 0x140034a1b
inc r8
cmp rdx, r8
jne 0x140034f10
jmp 0x140034a18
mov rdx, rax
shr rdx, 1
mov rbx, rsi
cmp rax, 0x10
jae 0x140034f72
xor r8d, r8d
jmp 0x140034ff6
mov r15d, 2
jmp 0x1400349f6
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 0x140034fa0
cmp rdx, r8
je 0x14003503a
neg rdx
mov r9, r8
neg r9
shl r8, 2
lea r8, [r8 + r14*4]
add r8, rdi
mov r10, qword [rsp + 0x80]
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 0x140035020
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r12
jmp 0x140034a27
mov r15d, 3
jmp 0x1400349f6
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x141936118]
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
mov r15, rax
movzx eax, byte [0x141936118]
mov edx, 0x100
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
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 + 0x78], rax
xor ebx, ebx
xor r12d, r12d
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x58], r15
jmp 0x1400350f7
mov r12d, 1
mov rbx, qword [rsp + 0x80]
cmp rbx, r10
jae 0x140035685
mov rdx, r10
sub rdx, rbx
lea rcx, [rdi + rbx*4]
cmp rdx, 2
jae 0x1400354e0
mov r8, rdx
lea rax, [r8 + rbx]
mov rsi, rax
sub rsi, rbx
jb 0x140035ab7
cmp rax, r10
ja 0x140035ab7
jae 0x14003516b
cmp r8, 0xa
jae 0x14003516b
cmp rbx, 0xfffffffffffffff6
jae 0x140035ab7
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.14002a740
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
cmp r12, qword [rsp + 0x78]
jne 0x1400351d4
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x141936118]
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
mov rdi, rax
lea rax, [r12 + r12]
mov qword [rsp + 0x78], rax
mov r8, r12
shl r8, 4
mov rcx, rdi
mov rdx, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, rbp
call fcn.140102ef8
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 0x140035268
jmp 0x1400350e6
mov rdx, r15
mov rbx, qword [rsp + 0x30]
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 0x1400350e0
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 0x1400352e0
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x1400352e0
cmp r12, 2
je 0x140035591
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x1400352f7
cmp r12, 3
jbe 0x14003567a
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x1400352f7
jmp 0x1400350e6
cmp r12, 2
je 0x1400352fc
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x140035301
lea rsi, [r12 - 2]
cmp rsi, r12
jae 0x140035ab7
lea r14, [rsi + 1]
cmp r14, r12
jae 0x140035ab7
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], 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 0x140035ab7
cmp rbx, r10
ja 0x140035ab7
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 0x140035430
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 0x1400354b0
test r15, r15
jle 0x1400354b0
mov rax, qword [rsp + 0x88]
lea rax, [rax + rbx*4]
mov r15, qword [rsp + 0x58]
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
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 0x140035422
add rax, 0xfffffffffffffffc
cmp r8, r15
ja 0x1400353e0
mov rdi, rbp
mov rdx, r15
jmp 0x140035206
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 0x1400354cd
cmp r12, r13
mov r12, qword [rsp + 0x28]
jle 0x1400351fe
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 0x140035201
mov cl, r9b
lea rbp, [rbp + rcx*4]
cmp rbp, rax
jb 0x140035470
jmp 0x140035201
mov rdi, rbp
mov r15, qword [rsp + 0x58]
mov rdx, r15
mov r12, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov r13, rcx
jmp 0x140035206
mov rdx, r15
mov r12, qword [rsp + 0x28]
jmp 0x140035201
mov r9d, dword [rcx + 4]
cmp r9d, dword [rcx]
jae 0x140035550
mov eax, 2
cmp rdx, 2
je 0x140035517
nop word cs:[rax + rax]
mov r8d, r9d
mov r9d, dword [rcx + rax*4]
cmp r9d, r8d
jae 0x140035517
inc rax
cmp rdx, rax
jne 0x140035500
mov rax, rdx
mov rdx, rax
add rdx, rbx
jb 0x140035ab7
cmp rdx, r10
ja 0x140035ab7
mov r14, rdx
mov r8d, 1
cmp rax, 2
jae 0x14003557d
mov rax, r14
jmp 0x140035112
mov r8d, 2
cmp rdx, 2
je 0x14003510e
mov eax, r9d
mov r9d, dword [rcx + r8*4]
cmp r9d, eax
jb 0x14003510e
inc r8
cmp rdx, r8
jne 0x140035560
jmp 0x14003510b
mov rdx, rax
shr rdx, 1
cmp rax, 0x10
jae 0x14003559c
xor r8d, r8d
jmp 0x140035626
mov r12d, 2
jmp 0x1400350e6
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 0x1400355d0
cmp rdx, r8
je 0x14003566a
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 0x140035650
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r14
jmp 0x140035112
mov r12d, 3
jmp 0x1400350e6
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, rbp
call fcn.140102ef8
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, r15
jmp 0x1400356c3
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, rsi
call fcn.140102ef8
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, qword [rsp + 0x28]
call fcn.140102ef8
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 [0x141936118]
mov edx, 0x58
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
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 0x140035ab7
mov r8, qword [rbx + 0x40]
mov rsi, r8
cmp r8, 1
je 0x1400357f8
test r8, r8
je 0x140035ab7
lea rcx, [r8 - 1]
lea rdx, [r8 - 2]
mov eax, ecx
and eax, 7
cmp rdx, 7
jae 0x1400357cd
mov esi, 1
jmp 0x1400357ea
and rcx, 0xfffffffffffffff8
mov esi, 1
nop word cs:[rax + rax]
shl rsi, 8
add rcx, 0xfffffffffffffff8
jne 0x1400357e0
test rax, rax
je 0x1400357f8
nop
add rsi, rsi
dec rax
jne 0x1400357f0
mov qword [rsp + 0x28], r8
lock inc qword [rbx]
jle 0x140035ab7
movzx eax, byte [0x141936118]
mov edx, 0x600
xor ecx, ecx
call fcn.1400dee70
test rax, rax
je 0x140035ab7
mov r14, rax
mov qword [rsp + 0x60], rsi
xor eax, eax
mov r10, qword [rsp + 0x28]
nop word cs:[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 0x140035840
mov qword [r14 + rax], 0
mov qword [r14 + rax + 8], 8
mov qword [r14 + rax + 0x10], 0
lea r12, [r10 - 1]
mov r13d, r10d
and r13d, 7
mov rax, r10
and rax, 0xfffffffffffffff8
mov qword [rsp + 0x30], rax
xor edi, edi
jmp 0x1400358b7
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 0x1400359c3
cmp rdi, qword [rbx + 0x38]
jae 0x140035ab7
mov rax, qword [rbx + 0x30]
mov ebp, dword [rax + rdi*4]
cmp rsi, rbp
jbe 0x140035ab7
mov rax, qword [rbx + 0x18]
lea rcx, [rbp*2]
add rcx, rbp
cmp r10, qword [rax + rcx*8 + 0x10]
ja 0x140035ab7
mov rax, qword [rax + rcx*8 + 8]
cmp r12, 7
jae 0x140035910
xor r15d, r15d
jmp 0x140035978
mov rcx, qword [rsp + 0x30]
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 0x140035920
test r13, r13
je 0x140035990
xor ecx, ecx
nop
movzx edx, byte [rax + rcx]
lea r15, [rdx + r15*2]
inc rcx
cmp r13, rcx
jne 0x140035980
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 0x1400358a0
mov rcx, rsi
call fcn.140050430
mov r10, qword [rsp + 0x28]
mov rdx, qword [rsi + 0x10]
jmp 0x1400358a0
mov rax, qword [rsp + 0x70]
test byte [rax + 0x4a], 1
jne 0x140035a5a
lock inc qword [rbx]
jle 0x140035ab7
mov rax, qword [rsp + 0x70]
movzx r15d, byte [rax + 0x4c]
movzx ebp, byte [rax + 0x49]
movzx r12d, byte [rax + 0x4b]
mov qword [rsp + 0x48], rbx
test bpl, bpl
je 0x140035ab9
cmp rsi, 0x40
jbe 0x140035ab9
mov qword [rsp + 0x90], 0
lock dec qword [rbx]
mov rsi, qword [rsp + 0x38]
jne 0x140035a2d
mov rcx, qword [rsp + 0x48]
call fcn.14002dc80
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140035b16
movdqu xmm0, xmmword [rsp + 0x98]
movdqa xmmword [rsp + 0x150], xmm0
mov rcx, qword [rsp + 0xa8]
jmp 0x140035a63
xor eax, eax
xor ecx, ecx
mov rsi, qword [rsp + 0x38]
mov qword [rsi], 0x40
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], 0x40
mov qword [rsi + 0x18], rbx
mov qword [rsi + 0x20], r10
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
ud2
mov r8, qword [rbx + 0x40]
cmp r8, 4
mov edi, 4
cmovb rdi, r8
mov r13, qword [0x141936110]
test r13, r13
je 0x140035ba0
test r13w, r13w
jns 0x140035bbd
test r15d, r15d
je 0x140035b91
cmp r15d, 2
je 0x140035be3
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 0x140035c4b
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rsi], rax
lock dec qword [rbx]
jne 0x140035b35
mov rcx, rbx
call fcn.14002dc80
mov esi, 8
jmp 0x140035b4d
add rsi, 0x18
cmp rsi, 0x608
je 0x140035b69
cmp qword [r14 + rsi - 8], 0
je 0x140035b40
mov r8, qword [r14 + rsi]
mov rcx, qword [0x141936088]
xor edx, edx
call fcn.140102ef8
jmp 0x140035b40
mov rcx, qword [0x141936088]
xor edx, edx
mov r8, r14
call fcn.140102ef8
lock dec qword [rbx]
jne 0x140035aa3
mov rcx, rbx
call fcn.14002dc80
jmp 0x140035aa3
test r12b, 1
jne 0x140035a07
jmp 0x140035c47
mov r13, r8
call fcn.1400ee7b0
mov r8, r13
mov r10, qword [rsp + 0x28]
mov r13, rax
test r13w, r13w
js 0x140035ae4
mov rax, qword [0x141936110]
test rax, rax
je 0x140035c19
test r15d, r15d
je 0x140035c32
cmp r15d, 2
jne 0x140035a07
test eax, 0x200
je 0x140035a07
movzx ecx, r13w
shr ecx, 0xf
cmp r12b, 2
jne 0x140035c02
test r13w, r13w
sets dl
cmp rsi, 0x21
setae al
and al, dl
jmp 0x140035c4b
test r12b, r12b
setne al
test r13w, r13w
js 0x140035c4b
test r12b, r12b
jne 0x140035a07
jmp 0x140035c4b
mov qword [rsp + 0x30], r8
call fcn.1400ee7b0
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x28]
test r15d, r15d
jne 0x140035bce
test eax, 0x200
je 0x140035a07
and r12b, 1
jne 0x140035a07
xor eax, eax
xor ecx, ecx
test bpl, bpl
je 0x140035c63
cmp r8, 1
jne 0x140035c63
cmp qword [rbx + 0x20], 0x11
jae 0x140035a07
jmp case.0x140035c7e.1
dec rdi
cmp rdi, 3
ja case.default.0x140035c7e
lea rdx, [0x14010fc30]
movsxd r8, dword [rdx + rdi*4]
add r8, rdx
jmp r8
test cl, cl
je 0x140035cc2
test al, al
je 0x140035d7c
mov rax, qword [0x141936110]
test rax, rax
je 0x140035e2d
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x140035d9a
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.140019dc0
jmp 0x140035e74
mov rax, qword [0x141936110]
test rax, rax
je 0x140035e0e
test eax, 0x200
mov rsi, qword [rsp + 0x38]
je 0x140035d9a
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000b5f0
jmp 0x140035e74
test cl, cl
je 0x140035dab
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140035df4
call fcn.14001be90
jmp 0x140035e07
test cl, cl
je 0x140035dbf
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140035dfb
call fcn.14001d040
jmp 0x140035e07
test cl, cl
je 0x140035dd3
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140035e02
call fcn.14001ae20
jmp 0x140035e07
mov qword [rsp + 0x90], 0
jmp 0x140035dea
mov rax, qword [0x141936110]
test rax, rax
je 0x140035e4a
test ax, ax
mov rsi, qword [rsp + 0x38]
js 0x140035e62
mov qword [rsp + 0x90], 0
jmp 0x140035e79
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000d350
jmp 0x140035de5
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000e5d0
jmp 0x140035de5
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000c390
mov r10, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
jmp 0x140035e79
call fcn.1400141d0
jmp 0x140035e07
call fcn.140016c60
jmp 0x140035e07
call fcn.140011c70
mov rsi, qword [rsp + 0x38]
jmp 0x140035e74
call fcn.1400ee7b0
mov r10, qword [rsp + 0x28]
test eax, 0x200
mov rsi, qword [rsp + 0x38]
je 0x140035d9a
jmp 0x140035ce2
call fcn.1400ee7b0
mov r10, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x140035d9a
jmp 0x140035cab
call fcn.1400ee7b0
mov r10, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x140035d9a
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000fbb0
mov r10, qword [rsp + 0x28]
lock dec qword [rbx]
je 0x140035a1e
jmp 0x140035a2d