Function at 0x1400ad980
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
mov eax, 0x2358
call fcn.14003aaf0
sub rsp, rax
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x22d0], 0xfffffffffffffffe
mov rbx, r9
cmp r8d, 2
jne 0x1400adb2b
mov rsi, qword [rbx + 0x10]
mov r13d, 0x7f7f
cmp rsi, 4
jb 0x1400adbae
mov rdi, rcx
cmp qword [rbx + 0x18], 0x10
mov rdx, rbx
jb 0x1400ad9dd
mov rdx, qword [rbx]
movzx eax, word [rdx]
lea ecx, [rax - 0x61]
mov r14d, 0x7f
mov r15d, 0x7f
cmp cl, 7
ja 0x1400ada14
movzx eax, ax
mov ecx, eax
shr ecx, 8
lea r8d, [rcx - 0x31]
cmp r8b, 7
ja 0x1400ada14
movzx eax, al
movzx ecx, cx
lea r15d, [rax + rcx*8 - 0x1e9]
xorps xmm0, xmm0
lea r12, [rbp - 0x60]
movaps xmmword [r12], xmm0
lea rax, [rsi - 2]
cmp rax, 2
mov r13d, 2
cmovb r13, rax
add rdx, 2
mov qword [r12 + 0x18], 0xf
mov rcx, r12
mov r8, r13
call fcn.14006dc20
or r13, r12
mov byte [r13], 0
mov rcx, qword [r12]
mov rax, qword [r12 + 0x18]
cmp rax, 0x10
mov rdx, r12
cmovae rdx, rcx
movzx edx, byte [rdx]
lea r8d, [rdx - 0x61]
cmp r8b, 7
ja 0x1400ada93
cmp rax, 0x10
cmovae r12, rcx
movzx r8d, byte [r12 + 1]
lea r9d, [r8 - 0x31]
cmp r9b, 7
ja 0x1400ada93
lea r14d, [rdx + r8*8 - 0x1e9]
cmp rax, 0x10
mov r13d, 0x7f7f
jb 0x1400adad4
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400adacb
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1400ae723
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14003a894
mov rsi, qword [rbx + 0x10]
xor r9d, r9d
cmp rsi, 5
jb 0x1400adba3
cmp qword [rbx + 0x18], 0x10
jb 0x1400adaeb
mov rbx, qword [rbx]
movsx eax, byte [rbx + 4]
cmp eax, 0x70
jg 0x1400adb11
cmp eax, 0x62
je 0x1400adb95
cmp eax, 0x6e
jne 0x1400adba3
mov r9d, 2
jmp 0x1400adba3
cmp eax, 0x71
je 0x1400adb9d
cmp eax, 0x72
jne 0x1400adba3
mov r9d, 4
jmp 0x1400adba3
mov r15d, r8d
mov r14d, edx
mov qword [rbp + 0x22b0], rcx
lea rcx, [rbp + 0x2170]
mov rdx, rbx
mov r8d, 3
call fcn.140071560
mov r12, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x1400adb5b
mov rbx, qword [rbx]
mov r13d, 0x7f7f
test r12, r12
je 0x1400adb87
xor esi, esi
movsx r13d, byte [rbx + rsi]
mov ecx, r13d
call fcn.140039390
test eax, eax
je 0x1400adbe6
inc rsi
cmp r12, rsi
jne 0x1400adb68
mov r13d, 0x7f7f
lea rcx, [rbp + 0x2170]
call fcn.14000a9d0
jmp 0x1400adbae
mov r9d, 3
jmp 0x1400adba3
mov r9d, 5
mov eax, r14d
or eax, r15d
cmp eax, 0x3f
jbe 0x1400adbc5
mov rax, r13
add rsp, 0x2358
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, rdi
mov edx, r15d
mov r8d, r14d
add rsp, 0x2358
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp fcn.1400a8680
mov ecx, r13d
call fcn.140039520
test eax, eax
mov r13d, 0x7f7f
je 0x1400adb87
mov eax, esi
xorps xmm0, xmm0
movaps xmmword [rbp + 0x2280], xmm0
movaps xmmword [rbp + 0x2270], xmm0
cmp r12, rax
jb 0x1400ae728
sub r12, rax
js 0x1400ae72d
add rbx, rax
cmp r12, 0xf
ja 0x1400adc4e
lea rcx, [rbp + 0x2270]
mov qword [rcx + 0x10], r12
mov qword [rcx + 0x18], 0xf
mov rdx, rbx
mov r8, r12
call fcn.14006dc20
lea rdi, [rbp + r12 + 0x2270]
jmp 0x1400adcb7
mov rax, r12
or rax, 0xf
cmp rax, 0x17
mov esi, 0x16
cmovae rsi, rax
cmp rsi, 0xfff
jb 0x1400adc85
lea rcx, [rsi + 0x28]
call fcn.14003a89c
mov rdi, rax
add rdi, 0x27
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1400adc91
lea rcx, [rsi + 1]
call fcn.14003a89c
mov rdi, rax
mov qword [rbp + 0x2270], rdi
mov qword [rbp + 0x2280], r12
mov qword [rbp + 0x2288], rsi
mov rcx, rdi
mov rdx, rbx
mov r8, r12
call fcn.14006dc20
add rdi, r12
mov byte [rdi], 0
lea rbx, [rbp + 0x2270]
mov r13, qword [rbx]
mov r12, qword [rbx + 0x18]
cmp r12, 0x10
mov rcx, rbx
cmovae rcx, r13
movzx esi, byte [rcx]
cmp esi, 0x4f
je 0x1400adce0
cmp esi, 0x30
jne 0x1400add3f
lea rdx, [rbp + 0x2270]
mov ecx, r14d
call fcn.1400ae800
mov rdi, rax
mov rax, qword [rbp + 0x2288]
cmp rax, 0x10
jb 0x1400add37
mov rcx, qword [rbp + 0x2270]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400add32
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1400ae723
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14003a894
mov r13, rdi
jmp 0x1400adb87
cmp r15d, 1
jne 0x1400adec0
mov rax, qword [rbp + 0x2280]
mov edi, 0x7f7f
cmp rax, 4
jb 0x1400adcf2
movzx ecx, word [rcx]
lea edx, [rcx - 0x61]
cmp dl, 7
ja 0x1400adcf2
movzx ecx, cx
mov edx, ecx
shr edx, 8
lea r8d, [rdx - 0x31]
cmp r8b, 7
ja 0x1400adcf2
movzx ecx, cl
movzx edx, dx
lea esi, [rcx + rdx*8 - 0x1e9]
cmp esi, 0x3f
ja 0x1400adcf2
add rax, 0xfffffffffffffffe
cmp rax, 2
mov r14d, 2
cmovb r14, rax
cmp r12, 0x10
xorps xmm0, xmm0
lea r15, [rbp - 0x60]
movaps xmmword [r15], xmm0
cmovb r13, rbx
add r13, 2
mov qword [r15 + 0x18], 0xf
mov rcx, r15
mov rdx, r13
mov r8, r14
call fcn.14006dc20
or r14, r15
mov byte [r14], 0
mov rcx, qword [r15]
mov rax, qword [r15 + 0x18]
cmp rax, 0x10
mov rdx, r15
cmovae rdx, rcx
movzx edx, byte [rdx]
lea r8d, [rdx - 0x61]
mov r14d, 0x7f
cmp r8b, 7
ja 0x1400ade1c
cmp rax, 0x10
cmovae r15, rcx
movzx r8d, byte [r15 + 1]
lea r9d, [r8 - 0x31]
cmp r9b, 7
ja 0x1400ade1c
lea r14d, [rdx + r8*8 - 0x1e9]
cmp rax, 0x10
jb 0x1400ade53
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x1400ade4e
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x1400ae723
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.14003a894
cmp r14d, 0x3f
ja 0x1400adcf2
xor r9d, r9d
cmp qword [rbp + 0x2280], 5
jb 0x1400adeaa
cmp qword [rbp + 0x2288], 0x10
jb 0x1400ade7b
mov rbx, qword [rbp + 0x2270]
movsx ecx, byte [rbx + 4]
call fcn.1400394ec
movsx edx, al
lea rdi, str._PNBRQK_
mov r8d, 9
mov rcx, rdi
call fcn.14006db40
mov ecx, eax
sub ecx, edi
xor r9d, r9d
test rax, rax
cmovne r9d, ecx
mov rcx, qword [rbp + 0x22b0]
mov edx, esi
mov r8d, r14d
call fcn.1400a8680
jmp 0x1400adcef
mov qword [rbp + 0x22c8], rcx
movsx r15d, sil
mov ecx, r15d
call fcn.140050600
test eax, eax
je 0x1400adfbd
mov dword [rbp + 0x22a0], eax
lea rdi, str._PNBRQK_
mov r8d, 9
mov rcx, rdi
mov edx, r15d
call fcn.14006db40
cmp r12, 0x10
cmovae rbx, r13
test rax, rax
je 0x1400ae10a
mov r9, rax
sub r9d, edi
inc rbx
xor r10d, r10d
mov r8d, 0x7f
xor eax, eax
mov edi, 0x7f7f
test r9d, r9d
mov r11, qword [rbp + 0x22c8]
je 0x1400adcf2
cmp r9d, 1
sete dl
xor r13d, r13d
mov rcx, qword [rbp + 0x2280]
cmp dword [rbp + 0x22a0], 0
mov qword [rbp + 0x22a8], rax
je 0x1400ae1f2
cmp r9d, 1
je 0x1400ae1f2
mov r12, rcx
add rcx, r11
cmp rbx, rcx
je 0x1400ae17b
mov al, byte [rbx]
lea r15, [rbx + 1]
cmp r15, rcx
je 0x1400ae1fa
mov dl, byte [r15]
lea ecx, [rax - 0x69]
cmp cl, 0xf8
jae 0x1400ae190
movsx ecx, al
add ecx, 0xffffffd0
cmp ecx, 0xa
jae 0x1400ae241
mov esi, ecx
add al, 0xc7
xor edx, edx
mov r13d, 0
mov r10d, 0
cmp al, 0xf8
mov rcx, r12
jb 0x1400adcf2
jmp 0x1400ae00e
mov qword [rbp + 0x22a8], r15
cmp r12, 0x10
mov r15, rbx
cmovae r15, r13
mov rcx, qword [rbp + 0x2280]
mov r8d, 0x7f
xor r10d, r10d
mov dl, 1
cmp rcx, 1
jne 0x1400ae114
mov r9d, 1
mov ecx, 1
xor r13d, r13d
mov r11, qword [rbp + 0x22c8]
mov r15, r11
xor eax, eax
mov qword [rbp + 0x22a8], rax
xor esi, esi
add r11, rcx
cmp r15, r11
je 0x1400ae02b
xor eax, eax
cmp byte [r15], 0x78
sete al
mov ecx, 1
cmove r13d, ecx
add r15, rax
mov edi, 0x7f7f
cmp r15, r11
je 0x1400adcf2
lea rax, [r15 + 1]
cmp rax, r11
je 0x1400adcf2
movzx eax, byte [r15]
lea ecx, [rax - 0x69]
cmp cl, 0xf8
jb 0x1400adcf2
mov r12d, edx
movzx ecx, byte [r15 + 1]
lea edx, [rcx - 0x39]
cmp dl, 0xf8
jb 0x1400adcf2
lea eax, [rax + rcx*8 - 0x1e9]
mov qword [rbp + 0x22c8], rax
cmp eax, 0x7f
je 0x1400adcf2
mov dword [rbp + 0x229c], r10d
mov qword [rbp + 0x22a0], r9
mov qword [rbp + 0x22c0], r8
lea rax, [r15 + 2]
cmp rax, r11
je 0x1400ae27f
movsx ebx, byte [rax]
cmp ebx, 0x3d
jne 0x1400ae2ca
mov rcx, r11
add r15, 3
cmp r15, r11
je 0x1400adcf2
movsx edx, byte [r15]
lea r15, str._PNBRQK_
mov r8d, 9
mov rcx, r15
call fcn.14006db40
mov ecx, eax
sub ecx, r15d
xor edx, edx
test rax, rax
cmovne edx, ecx
mov dword [rbp + 0x22bc], edx
cmp dword [rbp + 0x22a0], 1
jne 0x1400adcf2
cmp dword [rbp + 0x22bc], 0
jne 0x1400ae342
jmp 0x1400adcf2
mov edi, 0x7f7f
jmp 0x1400adcf2
lea edx, [rsi - 0x69]
mov edi, 0x7f7f
cmp dl, 0xf8
mov r11, qword [rbp + 0x22c8]
jb 0x1400adcf2
mov dword [rbp + 0x22a0], eax
mov qword [rbp + 0x22c0], rcx
inc r15
mov rax, qword [rbp + 0x22a8]
add eax, 0xffffffa0
mov qword [rbp + 0x22a8], rax
mov cl, byte [r15]
movzx eax, cl
mov r9d, 1
lea edx, [rax - 0x61]
cmp edx, 8
jae 0x1400ae253
mov r13d, 1
xor esi, esi
mov dl, 1
mov rcx, qword [rbp + 0x22c0]
jmp 0x1400ae00e
xor edx, edx
xor r13d, r13d
mov r15, rbx
xor r10d, r10d
xor esi, esi
mov rcx, r12
jmp 0x1400ae00e
mov qword [rbp + 0x22a0], r9
mov qword [rbp + 0x22c0], r8
movzx esi, al
movsx ecx, dl
cmp r12, 5
jb 0x1400ae201
lea eax, [rcx - 0x30]
cmp eax, 9
ja 0x1400ae201
lea eax, [rdx - 0x39]
cmp al, 0xf8
jb 0x1400adcf2
movzx eax, dl
lea r8d, [rsi + rax*8 - 0x1e9]
cmp r8d, 0x7f
mov r9, qword [rbp + 0x22a0]
mov r11, qword [rbp + 0x22c8]
je 0x1400adcf2
mov rcx, r12
add rbx, 2
mov r10d, 1
xor edx, edx
xor r13d, r13d
mov r15, rbx
jmp 0x1400ae00c
xor edx, edx
jmp 0x1400adf83
call fcn.140039520
add esi, 0xffffffa0
test eax, eax
cmove r15, rbx
cmove esi, dword [rbp + 0x22a8]
xor edx, edx
xor r13d, r13d
xor r10d, r10d
mov qword [rbp + 0x22a8], rsi
xor esi, esi
mov r8, qword [rbp + 0x22c0]
mov r9, qword [rbp + 0x22a0]
mov r11, qword [rbp + 0x22c8]
jmp 0x1400ae188
xor r13d, r13d
mov r15, rbx
xor r10d, r10d
xor esi, esi
xor edx, edx
jmp 0x1400ae188
cmp eax, 0x78
jne 0x1400ae3e3
mov r13d, 1
xor esi, esi
mov r8d, 0x7f
mov r9d, 1
xor r10d, r10d
mov r11, qword [rbp + 0x22c8]
jmp 0x1400ae16d
mov dword [rbp + 0x22bc], 0
test r12b, r12b
je 0x1400ae342
mov rcx, qword [rbp + 0x22c8]
lea eax, [rcx + 7]
test ecx, ecx
cmovns eax, ecx
sar eax, 3
cdqe
movsxd rcx, r14d
lea rdx, [0x1400e8d80]
lea rax, [rdx + rax*8]
mov dword [rbp + 0x22bc], 0
cmp dword [rax + rcx*4], 8
je 0x1400adcf2
jmp 0x1400ae342
mov dword [rbp + 0x22bc], 0
test r12b, r12b
je 0x1400ae342
mov ecx, ebx
call fcn.140050600
test eax, eax
je 0x1400ae292
lea r15, str._PNBRQK_
mov r8d, 9
mov rcx, r15
mov edx, ebx
call fcn.14006db40
mov ecx, eax
sub ecx, r15d
xor edx, edx
test rax, rax
cmovne edx, ecx
mov dword [rbp + 0x22bc], edx
test edx, edx
je 0x1400adcf2
mov rcx, qword [rbp + 0x22c8]
lea eax, [rcx + 7]
test ecx, ecx
cmovns eax, ecx
sar eax, 3
cdqe
movsxd rcx, r14d
lea rdx, [0x1400e8d80]
lea rax, [rdx + rax*8]
cmp dword [rax + rcx*4], 8
jne 0x1400adcf2
movsxd rax, dword [rbp + 0x22c8]
mov rcx, qword [rbp + 0x22b0]
mov eax, dword [rcx + rax*4]
or r13d, eax
test eax, eax
je 0x1400ae37a
test r13d, r13d
je 0x1400ae37a
xor ecx, ecx
cmp eax, 9
setge cl
mov rdx, qword [rbp + 0x22b0]
cmp dword [rdx + 0x120], ecx
je 0x1400adcf2
xor ebx, ebx
cmp dword [rbp + 0x229c], 0
je 0x1400ae47d
cmp dword [rbp + 0x229c], 0
sete al
cmp ebx, 1
setne cl
test al, cl
jne 0x1400adcf2
cmp dword [rbp + 0x22c0], 0x7f
je 0x1400adcf2
mov rdx, qword [rbp + 0x22c0]
movsxd rax, edx
mov rcx, qword [rbp + 0x22b0]
cmp dword [rcx + rax*4], 0
je 0x1400adcf2
mov rcx, qword [rbp + 0x22b0]
mov r8, qword [rbp + 0x22c8]
mov r9d, dword [rbp + 0x22bc]
jmp 0x1400adeb6
cmp qword [rbp + 0x22c0], 3
jb 0x1400ae503
movsx edx, cl
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400ae503
cmp r12, 0x10
mov rdx, rbx
cmovae rdx, r13
movzx edx, byte [rdx + 2]
cmp edx, 0x78
je 0x1400ae41d
cmp edx, 0x2d
jne 0x1400ae503
cmp qword [rbp + 0x22c0], 5
jb 0x1400ae503
add cl, 0xc7
cmp cl, 0xf8
jb 0x1400adcf2
movzx ecx, sil
lea r8d, [rcx + rax*8 - 0x1e9]
cmp r8d, 0x7f
je 0x1400adcf2
cmp r12, 0x10
cmovae rbx, r13
add rbx, 3
movsxd rax, r8d
mov rcx, qword [rbp + 0x22b0]
mov r9d, dword [rcx + rax*4]
and r9d, 7
mov r10d, 1
mov rax, qword [rbp + 0x22a8]
jmp 0x1400adf1e
test eax, eax
sete al
and r12b, al
mov eax, r12d
cmp r12b, 1
jne 0x1400ae526
test r13d, r13d
je 0x1400ae526
mov rcx, qword [rbp + 0x22c8]
lea eax, [rcx + 7]
test ecx, ecx
cmovns eax, ecx
mov rcx, qword [rbp + 0x22b0]
movsxd rcx, dword [rcx + 0x120]
sar eax, 3
movsxd rdx, eax
lea r8, [0x1400e8d80]
lea r9, [r8 + rdx*8]
mov eax, 8
cmp dword [r9 + rcx*4], 8
je 0x1400ae55e
test ecx, ecx
mov eax, 0x1fffffff
mov ebx, 1
cmovne eax, ebx
add eax, dword [r8 + rdx*8]
mov rcx, qword [rbp + 0x22a8]
lea eax, [rcx + rax*8 - 9]
mov qword [rbp + 0x22c0], rax
jmp 0x1400ae389
xor r13d, r13d
mov r11, qword [rbp + 0x22c8]
mov r15, r11
xor esi, esi
mov r8d, 0x7f
mov r9d, 1
xor r10d, r10d
jmp 0x1400ae16d
test al, al
je 0x1400ae5ba
mov rax, qword [rbp + 0x22b0]
movsxd rcx, dword [rax + 0x120]
mov rdx, qword [rbp + 0x22c8]
lea eax, [rdx + 7]
test edx, edx
cmovns eax, edx
sar eax, 3
cdqe
lea rdx, [0x1400e8d80]
lea rax, [rdx + rax*8]
mov eax, dword [rax + rcx*4]
lea edx, [rax - 1]
test ecx, ecx
je 0x1400ae70e
shl edx, 3
mov rcx, qword [rbp + 0x22a8]
sub ecx, edx
add ecx, 0x3f
mov edx, 0x2f
xor eax, 4
movsxd r9, ecx
mov r8, qword [rbp + 0x22a8]
add r8d, edx
mov rcx, qword [rbp + 0x22b0]
or eax, dword [rcx + r9*4]
cmove r9d, r8d
mov qword [rbp + 0x22c0], r9
movsxd rax, r9d
mov ebx, 1
cmp dword [rcx + rax*4], 0
jne 0x1400ae389
jmp 0x1400adcf2
lea r15, [rbp + 0x2268]
mov rcx, qword [rbp + 0x22b0]
mov rdx, r15
mov r8, qword [rbp + 0x22c8]
mov r9d, r14d
call fcn.1400a7850
xor ebx, ebx
mov r12, qword [r15]
movabs r13, 0x7edd5e59a4e28c2
lea r14, [0x140236d80]
mov rax, qword [rbp + 0x22b0]
mov eax, dword [rax + 0x120]
test r12, r12
mov r8, qword [rbp + 0x22a0]
je 0x1400ae389
mov rcx, r12
neg rcx
and rcx, r12
imul rcx, r13
shr rcx, 0x38
and ecx, 0xfffffffc
movsxd r15, dword [rcx + r14]
btr r12, r15
mov rcx, qword [rbp + 0x22b0]
mov ecx, dword [rcx + r15*4]
mov edx, ecx
and edx, 7
cmp edx, r8d
jne 0x1400ae5fd
xor edx, edx
cmp ecx, 9
setge dl
cmp eax, edx
jne 0x1400ae5fd
cmp dword [rbp + 0x22a8], 0
je 0x1400ae670
lea ecx, [r15 + 7]
test r15d, r15d
cmovns ecx, r15d
and ecx, 0xfffffff8
neg ecx
lea ecx, [r15 + rcx + 1]
cmp ecx, dword [rbp + 0x22a8]
jne 0x1400ae5fd
test esi, esi
je 0x1400ae695
lea ecx, [r15 + 7]
test r15d, r15d
cmovns ecx, r15d
sar ecx, 3
movsxd rcx, ecx
lea rdx, [0x1400e8d80]
cmp dword [rdx + rcx*8], esi
jne 0x1400ae5fd
lea rcx, [rbp - 0x60]
mov rdx, qword [rbp + 0x22b0]
call fcn.140073a20
mov rcx, qword [rbp + 0x22b0]
mov edx, r15d
mov r8, qword [rbp + 0x22c8]
mov r9d, dword [rbp + 0x22bc]
call fcn.1400a8680
lea rcx, [rbp - 0x60]
mov rdx, rax
xor r8d, r8d
call fcn.14002fc60
movsxd r8, dword [rbp + 0xc0]
mov eax, 1
sub rax, r8
mov edx, dword [rbp + rax*4 + 0xa0]
lea rcx, [rbp - 0x60]
call fcn.14007cbe0
test eax, eax
mov rcx, qword [rbp + 0x22c0]
cmove ecx, r15d
mov qword [rbp + 0x22c0], rcx
xor eax, 1
add ebx, eax
jmp 0x1400ae5f0
mov rcx, qword [rbp + 0x22a8]
lea ecx, [rcx + rdx*8 - 9]
mov edx, 7
jmp 0x1400ae57d
call fcn.14004d508
call fcn.140086cd0
call fcn.140080a80
int3