Function at 0x140034830
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 0x140034930
mov rbx, rdx
mov r12, qword [rdx + 0x10]
test r12, r12
je 0x140034930
movabs rax, 0x555555555555555
cmp r12, rax
ja 0x140035bc7
mov r13, qword [rbx + 8]
lea rax, [r12*8]
lea rdx, [rax + rax*2]
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov qword [rsp + 0x28], rdx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
mov rsi, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x38], rdi
xor ebp, ebp
mov qword [rsp + 0x30], r12
jmp 0x1400348f4
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 0x140034946
cmp qword [rsp + 0x28], rbp
je 0x140034946
mov r14, qword [r13 + 8]
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x1400348c0
js 0x140035bc7
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, rbx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
mov r15, rax
mov rdi, rbx
jmp 0x1400348c8
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rdi], rax
jmp 0x140035bb3
mov rax, qword [rsp + 0x70]
mov rdi, qword [rax + 0x20]
mov r14, qword [rax + 0x28]
test r14, r14
mov qword [rsp + 0x40], r14
je 0x140034999
mov rax, r14
shr rax, 0x3d
jne 0x140035bc7
lea r15, [r14*4]
movzx eax, byte [0x141ada129]
xor ecx, ecx
mov rdx, r15
call fcn.14014fee0
mov r14, qword [rsp + 0x40]
test rax, rax
je 0x140035bc7
mov r12, rax
mov rbx, r14
jmp 0x1400349a4
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 0x140034a4f
lea rax, [rsp + 0x108]
mov qword [rsp + 0x90], rax
cmp rdx, 0x15
jae 0x140034a76
cmp rdx, 1
jbe 0x1400357d8
lea r9, [rsp + 0x90]
mov r8d, 1
mov rcx, rdi
call fcn.1400285a0
jmp 0x1400357d8
cmp rdx, 0x15
jae 0x140035165
cmp rdx, 1
jbe 0x1400357d8
mov r8d, 1
mov rcx, rdi
call fcn.140028510
jmp 0x1400357d8
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
mov qword [rsp + 0x28], rax
test rax, rax
je 0x140035bc7
movzx eax, byte [0x141ada129]
mov edx, 0x100
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
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 0x140034b14
mov r15d, 1
mov r14, qword [rsp + 0x78]
cmp r14, r10
jae 0x1400357b4
mov rdx, r10
sub rdx, r14
lea rcx, [rdi + r14*4]
cmp rdx, 2
jae 0x140034f50
mov r8, rdx
mov rbx, rsi
lea rax, [r8 + r14]
mov r10, qword [rsp + 0x40]
mov rsi, rax
sub rsi, r14
jb 0x140035bc7
cmp rax, r10
ja 0x140035bc7
jae 0x140034b98
cmp r8, 0xa
jae 0x140034b98
cmp r14, 0xfffffffffffffff6
jae 0x140035bc7
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.1400285a0
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x78], rax
cmp r15, qword [rsp + 0x68]
jne 0x140034bfe
mov rdx, r15
shl rdx, 5
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
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 [0x141ada118]
xor edx, edx
mov r8, rbx
call fcn.1401cdfe4
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 0x140034ca6
jmp 0x140034b06
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 0x140034b00
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 0x140034d20
mov rdx, r15
shl rdx, 4
mov r8, qword [rdx + rsi - 0x20]
cmp r8, rax
jbe 0x140034d20
cmp r15, 2
je 0x140035077
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140034d35
cmp r15, 3
jbe 0x14003515a
add r8, rcx
cmp qword [rdx + rsi - 0x40], r8
jbe 0x140034d35
jmp 0x140034b06
cmp r15, 2
je 0x140034d3a
lea r13, [r15 - 3]
mov rcx, r13
shl rcx, 4
mov rcx, qword [rsi + rcx]
cmp rcx, rax
jb 0x140034d3e
lea r13, [r15 - 2]
cmp r13, r15
jae 0x140035bc7
lea r14, [r13 + 1]
mov qword [rsp + 0x60], r15
cmp r14, r15
jae 0x140035bc7
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 0x140035bc7
cmp rbx, r10
ja 0x140035bc7
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 0x140034e90
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 0x140034c30
test r15, r15
jle 0x140034c30
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 0x140035bc7
mov r9d, dword [rsi - 4]
cmp r10, r9
jbe 0x140035bc7
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 0x140034c30
add rcx, 0xfffffffffffffffc
cmp r8, qword [rsp + 0x28]
ja 0x140034e10
jmp 0x140034c30
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 0x140034c33
cmp r12, rax
jle 0x140034c33
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 0x140035bc7
mov r11d, dword [rdx]
cmp r10, r11
jbe 0x140035bc7
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 0x140034c38
mov r10b, bl
lea rsi, [rsi + r10*4]
cmp rsi, rax
jb 0x140034ee0
jmp 0x140034c38
mov eax, dword [rcx + 4]
mov r8, qword [rsp + 0x90]
mov r9, qword [r8 + 0x10]
cmp r9, rax
jbe 0x140035bc7
mov r11d, dword [rcx]
cmp r9, r11
jbe 0x140035bc7
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 0x140035010
mov eax, 2
cmp rdx, 2
je 0x140034fda
nop dword [rax + rax]
mov r8d, dword [rcx + rax*4]
cmp r9, r8
jbe 0x140035bc7
mov r11d, dword [rcx + rax*4 - 4]
cmp r9, r11
jbe 0x140035bc7
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 0x140034fda
inc rax
cmp rdx, rax
jne 0x140034fa0
mov rax, rdx
mov rdx, rax
add rdx, r14
jb 0x140035bc7
mov r10, qword [rsp + 0x40]
cmp rdx, r10
ja 0x140035bc7
mov r12, rdx
mov r8d, 1
cmp rax, 2
jae 0x140035060
mov rbx, rsi
mov rax, r12
jmp 0x140034b37
mov r8d, 2
cmp rdx, 2
je 0x140034b2b
mov eax, dword [rcx + r8*4]
cmp r9, rax
jbe 0x140035bc7
mov r11d, dword [rcx + r8*4 - 4]
cmp r9, r11
jbe 0x140035bc7
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 0x140034b2b
inc r8
cmp rdx, r8
jne 0x140035020
jmp 0x140034b28
mov rdx, rax
shr rdx, 1
mov rbx, rsi
cmp rax, 0x10
jae 0x140035082
xor r8d, r8d
jmp 0x140035106
mov r15d, 2
jmp 0x140034b06
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 0x1400350b0
cmp rdx, r8
je 0x14003514a
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 0x140035130
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r12
jmp 0x140034b37
mov r15d, 3
jmp 0x140034b06
movabs rax, 0x7ffffffffffffff8
add rdx, rdx
add rax, 4
and rdx, rax
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
mov r15, rax
movzx eax, byte [0x141ada129]
mov edx, 0x100
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
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 0x140035207
mov r12d, 1
mov rbx, qword [rsp + 0x80]
cmp rbx, r10
jae 0x140035795
mov rdx, r10
sub rdx, rbx
lea rcx, [rdi + rbx*4]
cmp rdx, 2
jae 0x1400355f0
mov r8, rdx
lea rax, [r8 + rbx]
mov rsi, rax
sub rsi, rbx
jb 0x140035bc7
cmp rax, r10
ja 0x140035bc7
jae 0x14003527b
cmp r8, 0xa
jae 0x14003527b
cmp rbx, 0xfffffffffffffff6
jae 0x140035bc7
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.140028510
mov r10, qword [rsp + 0x40]
mov rax, rdi
mov rdi, qword [rsp + 0x50]
mov qword [rsp + 0x80], rax
cmp r12, qword [rsp + 0x78]
jne 0x1400352e4
mov rdx, r12
shl rdx, 5
movzx eax, byte [0x141ada129]
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
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 [0x141ada118]
xor edx, edx
mov r8, rbp
call fcn.1401cdfe4
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 0x140035378
jmp 0x1400351f6
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 0x1400351f0
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 0x1400353f0
mov rdx, r12
shl rdx, 4
mov r8, qword [rdx + rbp - 0x20]
cmp r8, rax
jbe 0x1400353f0
cmp r12, 2
je 0x1400356a1
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
lea r9, [r8 + rax]
cmp rcx, r9
jbe 0x140035407
cmp r12, 3
jbe 0x14003578a
add r8, rcx
cmp qword [rdx + rbp - 0x40], r8
jbe 0x140035407
jmp 0x1400351f6
cmp r12, 2
je 0x14003540c
lea rsi, [r12 - 3]
mov rcx, rsi
shl rcx, 4
mov rcx, qword [rbp + rcx]
cmp rcx, rax
jb 0x140035411
lea rsi, [r12 - 2]
cmp rsi, r12
jae 0x140035bc7
lea r14, [rsi + 1]
cmp r14, r12
jae 0x140035bc7
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 0x140035bc7
cmp rbx, r10
ja 0x140035bc7
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 0x140035540
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 0x1400355c0
test r15, r15
jle 0x1400355c0
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 0x140035532
add rax, 0xfffffffffffffffc
cmp r8, r15
ja 0x1400354f0
mov rdi, rbp
mov rdx, r15
jmp 0x140035316
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 0x1400355dd
cmp r12, r13
mov r12, qword [rsp + 0x28]
jle 0x14003530e
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 0x140035311
mov cl, r9b
lea rbp, [rbp + rcx*4]
cmp rbp, rax
jb 0x140035580
jmp 0x140035311
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 0x140035316
mov rdx, r15
mov r12, qword [rsp + 0x28]
jmp 0x140035311
mov r9d, dword [rcx + 4]
cmp r9d, dword [rcx]
jae 0x140035660
mov eax, 2
cmp rdx, 2
je 0x140035627
nop word cs:[rax + rax]
mov r8d, r9d
mov r9d, dword [rcx + rax*4]
cmp r9d, r8d
jae 0x140035627
inc rax
cmp rdx, rax
jne 0x140035610
mov rax, rdx
mov rdx, rax
add rdx, rbx
jb 0x140035bc7
cmp rdx, r10
ja 0x140035bc7
mov r14, rdx
mov r8d, 1
cmp rax, 2
jae 0x14003568d
mov rax, r14
jmp 0x140035222
mov r8d, 2
cmp rdx, 2
je 0x14003521e
mov eax, r9d
mov r9d, dword [rcx + r8*4]
cmp r9d, eax
jb 0x14003521e
inc r8
cmp rdx, r8
jne 0x140035670
jmp 0x14003521b
mov rdx, rax
shr rdx, 1
cmp rax, 0x10
jae 0x1400356ac
xor r8d, r8d
jmp 0x140035736
mov r12d, 2
jmp 0x1400351f6
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 0x1400356e0
cmp rdx, r8
je 0x14003577a
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 0x140035760
mov r8, rax
mov r10, qword [rsp + 0x40]
mov rax, r14
jmp 0x140035222
mov r12d, 3
jmp 0x1400351f6
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rbp
call fcn.1401cdfe4
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r15
jmp 0x1400357d3
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, rsi
call fcn.1401cdfe4
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, qword [rsp + 0x28]
call fcn.1401cdfe4
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 [0x141ada129]
mov edx, 0x58
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
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 0x140035bc7
mov r8, qword [rbx + 0x40]
mov rsi, r8
cmp r8, 1
je 0x140035908
test r8, r8
je 0x140035bc7
lea rcx, [r8 - 1]
lea rdx, [r8 - 2]
mov eax, ecx
and eax, 7
cmp rdx, 7
jae 0x1400358dd
mov esi, 1
jmp 0x1400358fa
and rcx, 0xfffffffffffffff8
mov esi, 1
nop word cs:[rax + rax]
shl rsi, 8
add rcx, 0xfffffffffffffff8
jne 0x1400358f0
test rax, rax
je 0x140035908
nop
add rsi, rsi
dec rax
jne 0x140035900
mov qword [rsp + 0x28], r8
lock inc qword [rbx]
jle 0x140035bc7
movzx eax, byte [0x141ada129]
mov edx, 0x600
xor ecx, ecx
call fcn.14014fee0
test rax, rax
je 0x140035bc7
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 0x140035950
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 0x1400359c7
inc rdi
mov rcx, qword [rsi + 8]
shl rax, 4
mov qword [rcx + rax], r15
mov dword [rcx + rax + 8], ebp
inc qword [rsi + 0x10]
mov rsi, qword [rbx + 0x20]
cmp rdi, rsi
jae 0x140035ad3
cmp rdi, qword [rbx + 0x38]
jae 0x140035bc7
mov rax, qword [rbx + 0x30]
mov ebp, dword [rax + rdi*4]
cmp rsi, rbp
jbe 0x140035bc7
mov rax, qword [rbx + 0x18]
lea rcx, [rbp*2]
add rcx, rbp
cmp r10, qword [rax + rcx*8 + 0x10]
ja 0x140035bc7
mov rax, qword [rax + rcx*8 + 8]
cmp r12, 7
jae 0x140035a20
xor r15d, r15d
jmp 0x140035a88
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 0x140035a30
test r13, r13
je 0x140035aa0
xor ecx, ecx
nop
movzx edx, byte [rax + rcx]
lea r15, [rdx + r15*2]
inc rcx
cmp r13, rcx
jne 0x140035a90
mov eax, r15d
and eax, 0x3f
lea rcx, [rax + rax*2]
lea rsi, [r14 + rcx*8]
mov rax, qword [r14 + rcx*8 + 0x10]
cmp rax, qword [r14 + rcx*8]
jne 0x1400359b0
mov rcx, rsi
call fcn.14006ba70
mov r10, qword [rsp + 0x28]
mov rax, qword [rsi + 0x10]
jmp 0x1400359b0
mov rax, qword [rsp + 0x70]
test byte [rax + 0x4a], 1
jne 0x140035b6a
lock inc qword [rbx]
jle 0x140035bc7
mov rax, qword [rsp + 0x70]
movzx r15d, byte [rax + 0x4c]
movzx edi, byte [rax + 0x49]
movzx r13d, byte [rax + 0x4b]
mov qword [rsp + 0x48], rbx
test dil, dil
je 0x140035bc9
cmp rsi, 0x40
jbe 0x140035bc9
mov qword [rsp + 0x90], 0
lock dec qword [rbx]
mov rsi, qword [rsp + 0x38]
jne 0x140035b3d
mov rcx, qword [rsp + 0x48]
call fcn.140032400
mov r10, qword [rsp + 0x28]
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x140035c26
movdqu xmm0, xmmword [rsp + 0x98]
movdqa xmmword [rsp + 0x150], xmm0
mov rcx, qword [rsp + 0xa8]
jmp 0x140035b73
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 r12d, 4
cmovb r12, r8
mov rbp, qword [0x141ada120]
test rbp, rbp
je 0x140035cb0
test bp, bp
jns 0x140035ccc
test r15d, r15d
je 0x140035ca1
cmp r15d, 2
je 0x140035cf2
xor ecx, ecx
cmp rsi, 0x21
setae cl
xor eax, eax
test r13b, r13b
setne al
cmp r13b, 2
cmove eax, ecx
mov cl, 1
jmp 0x140035d57
movabs rax, 0x7ffffffffffffff8
add rax, 8
mov qword [rsi], rax
lock dec qword [rbx]
jne 0x140035c45
mov rcx, rbx
call fcn.140032400
mov esi, 8
jmp 0x140035c5d
add rsi, 0x18
cmp rsi, 0x608
je 0x140035c79
cmp qword [r14 + rsi - 8], 0
je 0x140035c50
mov r8, qword [r14 + rsi]
mov rcx, qword [0x141ada118]
xor edx, edx
call fcn.1401cdfe4
jmp 0x140035c50
mov rcx, qword [0x141ada118]
xor edx, edx
mov r8, r14
call fcn.1401cdfe4
lock dec qword [rbx]
jne 0x140035bb3
mov rcx, rbx
call fcn.140032400
jmp 0x140035bb3
test r13b, 1
jne 0x140035b17
jmp 0x140035d53
mov rbp, r8
call fcn.1401628c0
mov r8, rbp
mov r10, qword [rsp + 0x28]
mov rbp, rax
test bp, bp
js 0x140035bf4
mov rax, qword [0x141ada120]
test rax, rax
je 0x140035d25
test r15d, r15d
je 0x140035d3e
cmp r15d, 2
jne 0x140035b17
test eax, 0x200
je 0x140035b17
movzx ecx, bp
shr ecx, 0xf
cmp r13b, 2
jne 0x140035d0f
test bp, bp
sets dl
cmp rsi, 0x21
setae al
and al, dl
jmp 0x140035d57
test r13b, r13b
setne al
test bp, bp
js 0x140035d57
test r13b, r13b
jne 0x140035b17
jmp 0x140035d57
mov qword [rsp + 0x30], r8
call fcn.1401628c0
mov r8, qword [rsp + 0x30]
mov r10, qword [rsp + 0x28]
test r15d, r15d
jne 0x140035cdd
test eax, 0x200
je 0x140035b17
and r13b, 1
jne 0x140035b17
xor eax, eax
xor ecx, ecx
test dil, dil
je 0x140035d6f
cmp r8, 1
jne 0x140035d6f
cmp qword [rbx + 0x20], 0x11
jae 0x140035b17
jmp case.0x140035d8a.1
dec r12
cmp r12, 3
ja case.default.0x140035d8a
lea rdx, [0x140217d6c]
movsxd r8, dword [rdx + r12*4]
add r8, rdx
jmp r8
test cl, cl
je 0x140035dce
test al, al
je 0x140035e88
mov rax, qword [0x141ada120]
test rax, rax
je 0x140035f39
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x140035ea6
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14001a080
jmp 0x140035f80
mov rax, qword [0x141ada120]
test rax, rax
je 0x140035f1a
test eax, 0x200
mov rsi, qword [rsp + 0x38]
je 0x140035ea6
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000b8b0
jmp 0x140035f80
test cl, cl
je 0x140035eb7
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140035f00
call fcn.14001c150
jmp 0x140035f13
test cl, cl
je 0x140035ecb
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140035f07
call fcn.14001d300
jmp 0x140035f13
test cl, cl
je 0x140035edf
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
test al, al
je 0x140035f0e
call fcn.14001b0e0
jmp 0x140035f13
mov qword [rsp + 0x90], 0
jmp 0x140035ef6
mov rax, qword [0x141ada120]
test rax, rax
je 0x140035f56
test ax, ax
mov rsi, qword [rsp + 0x38]
js 0x140035f6e
mov qword [rsp + 0x90], 0
jmp 0x140035f85
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000d610
jmp 0x140035ef1
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000e890
jmp 0x140035ef1
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000c650
mov r10, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x38]
jmp 0x140035f85
call fcn.140014490
jmp 0x140035f13
call fcn.140016f20
jmp 0x140035f13
call fcn.140011f30
mov rsi, qword [rsp + 0x38]
jmp 0x140035f80
call fcn.1401628c0
mov r10, qword [rsp + 0x28]
test eax, 0x200
mov rsi, qword [rsp + 0x38]
je 0x140035ea6
jmp 0x140035dee
call fcn.1401628c0
mov r10, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x140035ea6
jmp 0x140035db7
call fcn.1401628c0
mov r10, qword [rsp + 0x28]
test ax, ax
mov rsi, qword [rsp + 0x38]
jns 0x140035ea6
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0x48]
call fcn.14000fe70
mov r10, qword [rsp + 0x28]
lock dec qword [rbx]
je 0x140035b2e
jmp 0x140035b3d