Function at 0x14000d94c
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
mov r12, rcx
test rcx, rcx
je 0x14000eb80
mov rcx, qword [rcx]
test rcx, rcx
je 0x14000eb7d
call fcn.14000d8ca
mov r13, rax
test rax, rax
jns 0x14000d998
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.1400052fa
mov rdx, r13
xor ecx, ecx
lea rbx, [rsp + 0xa0]
movabs rdi, 0x2000000100002400
call fcn.140004e74
lea rbp, [rsp + 0xa8]
mov r13, rax
mov rax, qword [r12]
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x38]
mov r8, rbx
mov edx, 1
call fcn.14000d81b
test al, al
je 0x14000d9e3
call fcn.1400040d2
mov rcx, qword [rsp + 0xa0]
mov rdx, qword [r12]
test rcx, rcx
js 0x14000d9f9
cmp rcx, rdx
jl 0x14000da01
dec rdx
call fcn.14000543e
mov rax, qword [rsp + 0xa0]
mov cl, byte [r12 + rax + 0x10]
cmp cl, 0x3d
ja 0x14000da1d
mov rax, rdi
shr rax, cl
test al, 1
jne 0x14000da3c
mov rcx, qword [rsp + 0x38]
lea r8, [rsp + 0x70]
mov edx, 4
call fcn.14000d81b
test al, al
je 0x14000da69
call fcn.1400040d2
jmp 0x14000da69
mov rcx, qword [rsp + 0x38]
mov r8, rbp
mov edx, 1
call fcn.14000d81b
test al, al
je 0x14000da57
call fcn.1400040d2
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x38], rax
jmp 0x14000d9c8
mov rax, qword [rsp + 0x70]
xor r14d, r14d
xor r15d, r15d
lea rdi, [0x14001c3a0]
mov qword [rsp + 0x60], rax
cmp r15, qword [rsp + 0x60]
jg 0x14000da91
lea rbx, [rsp + 0xa8]
jmp 0x14000daf8
mov rdx, qword [rsp + 0x38]
lea r8, [rsp + 0x80]
mov rcx, r15
call fcn.14000d81b
test al, al
je 0x14000e254
call fcn.1400040d2
jmp 0x14000e254
cmp r15, rdx
jge 0x14000db01
mov cl, byte [r12 + r15 + 0x10]
cmp cl, 0x20
ja 0x14000db0e
mov eax, 0x400009
shl rax, 0xa
shr rax, cl
test al, 1
je 0x14000db0e
mov r8, rbx
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000daf0
call fcn.1400040d2
mov r15, qword [rsp + 0xa8]
mov rdx, qword [r12]
test r15, r15
jns 0x14000dab8
dec rdx
mov rcx, r15
call fcn.14000543e
jmp 0x14000dabd
mov rdx, qword [r12]
test r15, r15
js 0x14000db1c
cmp r15, rdx
jl 0x14000db27
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
mov al, byte [rdi + rax]
mov byte [rsp + 0x40], al
inc al
jne 0x14000dc70
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rbx, rax
mov rax, qword [0x14007dcb0]
mov qword [rbx], rax
lea rax, [0x14001c260]
mov qword [rbx + 0x10], rax
test r15, r15
js 0x14000db70
cmp r15, qword [r12]
jl 0x14000db9b
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000db8b
cmp r15, qword [r12]
jl 0x14000db9b
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rsi, rax
call fcn.140001af4
xor edx, edx
mov rbp, rax
test rsi, rsi
je 0x14000dbbe
mov rdx, qword [rsi]
xor eax, eax
test rbp, rbp
je 0x14000dbc9
mov rax, qword [rbp]
lea rcx, [rdx + rax + 0x38]
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rsi
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbp
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rbx + 0x18]
call fcn.14000d84b
lea rcx, [rbx + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rbx
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x78]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000dc8b
call fcn.1400040d2
mov r15, qword [rsp + 0x78]
mov rdx, qword [r12]
test r15, r15
js 0x14000dc9e
cmp r15, rdx
jl 0x14000dca9
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
movzx eax, byte [rdi + rax]
mov byte [rsp + 0x4e], al
mov qword [rsp + 0x50], rax
cmp rax, 0xff
jne 0x14000ddfc
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rbx, rax
mov rax, qword [0x14007dcb0]
mov qword [rbx], rax
lea rax, [0x14001c260]
mov qword [rbx + 0x10], rax
test r15, r15
js 0x14000dcfc
cmp r15, qword [r12]
jl 0x14000dd27
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000dd17
cmp r15, qword [r12]
jl 0x14000dd27
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rsi, rax
call fcn.140001af4
xor edx, edx
mov rbp, rax
test rsi, rsi
je 0x14000dd4a
mov rdx, qword [rsi]
xor eax, eax
test rbp, rbp
je 0x14000dd55
mov rax, qword [rbp]
lea rcx, [rdx + rax + 0x38]
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rsi
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbp
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rbx + 0x18]
call fcn.14000d84b
lea rcx, [rbx + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rbx
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x80]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000de1a
call fcn.1400040d2
mov r15, qword [rsp + 0x80]
mov rdx, qword [r12]
test r15, r15
js 0x14000de30
cmp r15, rdx
jl 0x14000de3b
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
movzx eax, byte [rdi + rax]
mov byte [rsp + 0x4f], al
mov qword [rsp + 0x58], rax
cmp rax, 0xff
jne 0x14000df8e
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rbx, rax
mov rax, qword [0x14007dcb0]
mov qword [rbx], rax
lea rax, [0x14001c260]
mov qword [rbx + 0x10], rax
test r15, r15
js 0x14000de8e
cmp r15, qword [r12]
jl 0x14000deb9
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000dea9
cmp r15, qword [r12]
jl 0x14000deb9
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rsi, rax
call fcn.140001af4
xor edx, edx
mov rbp, rax
test rsi, rsi
je 0x14000dedc
mov rdx, qword [rsi]
xor eax, eax
test rbp, rbp
je 0x14000dee7
mov rax, qword [rbp]
lea rcx, [rdx + rax + 0x38]
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rsi
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbp
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rbx + 0x18]
call fcn.14000d84b
lea rcx, [rbx + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rbx
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x88]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000dfac
call fcn.1400040d2
mov r15, qword [rsp + 0x88]
mov rdx, qword [r12]
test r15, r15
js 0x14000dfc2
cmp r15, rdx
jl 0x14000dfcd
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
mov bpl, byte [rdi + rax]
cmp bpl, 0xff
jne 0x14000e11e
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rbx, rax
mov rax, qword [0x14007dcb0]
mov qword [rbx], rax
lea rax, [0x14001c260]
mov qword [rbx + 0x10], rax
test r15, r15
js 0x14000e015
cmp r15, qword [r12]
jl 0x14000e040
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000e030
cmp r15, qword [r12]
jl 0x14000e040
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rsi, rax
call fcn.140001af4
xor edx, edx
mov r8, rax
test rsi, rsi
je 0x14000e063
mov rdx, qword [rsi]
xor eax, eax
test r8, r8
je 0x14000e06d
mov rax, qword [r8]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x68], r8
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rsi
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov r8, qword [rsp + 0x68]
mov rcx, r9
mov rdx, r8
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rbx + 0x18]
call fcn.14000d84b
lea rcx, [rbx + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rbx
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x90]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000e13c
call fcn.1400040d2
mov r15, qword [rsp + 0x90]
test r14, r14
js 0x14000e156
test r13, r13
je 0x14000e156
cmp r14, qword [r13]
jl 0x14000e16f
jmp 0x14000e15f
or rdx, 0xffffffffffffffff
test r13, r13
je 0x14000e167
mov rax, qword [r13]
lea rdx, [rax - 1]
mov rcx, r14
call fcn.14000543e
mov al, byte [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
lea r8, [rsp + 0x98]
mov rcx, r14
sar rdx, 4
shl eax, 2
or eax, edx
mov edx, 1
mov byte [r13 + r14 + 0x10], al
call fcn.14000d800
test al, al
je 0x14000e1a4
call fcn.1400040d2
mov r14, qword [rsp + 0x98]
mov rdx, qword [r13]
test r14, r14
js 0x14000e1ba
cmp r14, rdx
jl 0x14000e1c5
dec rdx
mov rcx, r14
call fcn.14000543e
mov al, byte [rsp + 0x4e]
mov rdx, qword [rsp + 0x58]
lea r8, [rsp + 0xa0]
mov rcx, r14
sar rdx, 2
shl eax, 4
or eax, edx
mov edx, 1
mov byte [r13 + r14 + 0x10], al
call fcn.14000d800
test al, al
je 0x14000e1fa
call fcn.1400040d2
mov r14, qword [rsp + 0xa0]
mov rdx, qword [r13]
test r14, r14
js 0x14000e210
cmp r14, rdx
jl 0x14000e21b
dec rdx
mov rcx, r14
call fcn.14000543e
mov al, byte [rsp + 0x4f]
lea r8, [rsp + 0xa8]
mov edx, 1
mov rcx, r14
shl eax, 6
or ebp, eax
mov byte [r13 + r14 + 0x10], bpl
call fcn.14000d800
test al, al
je 0x14000e247
call fcn.1400040d2
mov r14, qword [rsp + 0xa8]
jmp 0x14000da80
mov rax, qword [rsp + 0x80]
mov ecx, 4
cqo
idiv rcx
mov rax, rdx
sar rax, 0x3f
xor rdx, rax
sub rdx, rax
cmp rdx, 2
je 0x14000e288
cmp rdx, 3
jne 0x14000eb54
jmp 0x14000e5eb
mov rdx, qword [r12]
test r15, r15
js 0x14000e296
cmp r15, rdx
jl 0x14000e2a1
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
lea rsi, [0x14001c3a0]
mov al, byte [rsi + rax]
mov byte [rsp + 0x38], al
inc al
jne 0x14000e3f1
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rdi, rax
mov rax, qword [0x14007dcb0]
mov qword [rdi], rax
lea rax, [0x14001c260]
mov qword [rdi + 0x10], rax
test r15, r15
js 0x14000e2f1
cmp r15, qword [r12]
jl 0x14000e31c
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000e30c
cmp r15, qword [r12]
jl 0x14000e31c
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rbx, rax
call fcn.140001af4
xor edx, edx
mov rbp, rax
test rbx, rbx
je 0x14000e33f
mov rdx, qword [rbx]
xor eax, eax
test rbp, rbp
je 0x14000e34a
mov rax, qword [rbp]
lea rcx, [rdx + rax + 0x38]
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbx
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbp
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rdi + 0x18]
call fcn.14000d84b
lea rcx, [rdi + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rdi
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x98]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000e40f
call fcn.1400040d2
mov r15, qword [rsp + 0x98]
mov rdx, qword [r12]
test r15, r15
js 0x14000e425
cmp r15, rdx
jl 0x14000e430
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
movzx edi, byte [rsi + rax]
cmp rdi, 0xff
jne 0x14000e57b
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rsi, rax
mov rax, qword [0x14007dcb0]
mov qword [rsi], rax
lea rax, [0x14001c260]
mov qword [rsi + 0x10], rax
test r15, r15
js 0x14000e47b
cmp r15, qword [r12]
jl 0x14000e4a6
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000e496
cmp r15, qword [r12]
jl 0x14000e4a6
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rbx, rax
call fcn.140001af4
mov rbp, rax
xor eax, eax
test rbx, rbx
je 0x14000e4c9
mov rax, qword [rbx]
xor edx, edx
test rbp, rbp
je 0x14000e4d4
mov rdx, qword [rbp]
lea rcx, [rdx + rax + 0x38]
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbx
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbp
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rsi + 0x18]
call fcn.14000d84b
lea rcx, [rsi + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rsi
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0xa0]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000e599
call fcn.1400040d2
test r13, r13
je 0x14000e5ab
test r14, r14
js 0x14000e5ab
cmp r14, qword [r13]
jl 0x14000e5c4
jmp 0x14000e5b4
or rdx, 0xffffffffffffffff
test r13, r13
je 0x14000e5bc
mov rax, qword [r13]
lea rdx, [rax - 1]
mov rcx, r14
call fcn.14000543e
mov bl, byte [rsp + 0x38]
sar rdi, 4
mov edx, 1
mov rcx, r14
lea r8, [rsp + 0xa8]
shl ebx, 2
or ebx, edi
mov byte [r13 + r14 + 0x10], bl
jmp 0x14000eb3e
mov rdx, qword [r12]
test r15, r15
js 0x14000e5f9
cmp r15, rdx
jl 0x14000e604
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
lea rsi, [0x14001c3a0]
mov al, byte [rsi + rax]
mov byte [rsp + 0x38], al
inc al
jne 0x14000e754
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rdi, rax
mov rax, qword [0x14007dcb0]
mov qword [rdi], rax
lea rax, [0x14001c260]
mov qword [rdi + 0x10], rax
test r15, r15
js 0x14000e654
cmp r15, qword [r12]
jl 0x14000e67f
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000e66f
cmp r15, qword [r12]
jl 0x14000e67f
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rbx, rax
call fcn.140001af4
xor edx, edx
mov rbp, rax
test rbx, rbx
je 0x14000e6a2
mov rdx, qword [rbx]
xor eax, eax
test rbp, rbp
je 0x14000e6ad
mov rax, qword [rbp]
lea rcx, [rdx + rax + 0x38]
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbx
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbp
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rdi + 0x18]
call fcn.14000d84b
lea rcx, [rdi + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rdi
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x88]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000e772
call fcn.1400040d2
mov r15, qword [rsp + 0x88]
mov rdx, qword [r12]
test r15, r15
js 0x14000e788
cmp r15, rdx
jl 0x14000e793
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
movzx edi, byte [rsi + rax]
cmp rdi, 0xff
jne 0x14000e8ef
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rbp, rax
mov rax, qword [0x14007dcb0]
mov qword [rbp], rax
lea rax, [0x14001c260]
mov qword [rbp + 0x10], rax
test r15, r15
js 0x14000e7df
cmp r15, qword [r12]
jl 0x14000e80a
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000e7fa
cmp r15, qword [r12]
jl 0x14000e80a
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov qword [rsp + 0x40], rax
call fcn.140001af4
mov r10, qword [rsp + 0x40]
xor edx, edx
mov rbx, rax
test r10, r10
je 0x14000e834
mov rdx, qword [r10]
xor eax, eax
test rbx, rbx
je 0x14000e83e
mov rax, qword [rbx]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x40], r10
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov r10, qword [rsp + 0x40]
mov rcx, r9
mov rdx, r10
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbx
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rbp + 0x18]
call fcn.14000d84b
lea rcx, [rbp + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rbp
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x90]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000e90d
call fcn.1400040d2
mov r15, qword [rsp + 0x90]
mov rdx, qword [r12]
test r15, r15
js 0x14000e923
cmp r15, rdx
jl 0x14000e92e
dec rdx
mov rcx, r15
call fcn.14000543e
movzx eax, byte [r12 + r15 + 0x10]
movzx ebp, byte [rsi + rax]
cmp rbp, 0xff
jne 0x14000ea82
mov rcx, qword [0x14007dc60]
mov edx, 0x30
call fcn.140004ac7
mov rsi, rax
mov rax, qword [0x14007dcb0]
mov qword [rsi], rax
lea rax, [0x14001c260]
mov qword [rsi + 0x10], rax
test r15, r15
js 0x14000e979
cmp r15, qword [r12]
jl 0x14000e9a4
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
test r15, r15
js 0x14000e994
cmp r15, qword [r12]
jl 0x14000e9a4
mov rax, qword [r12]
mov rcx, r15
lea rdx, [rax - 1]
call fcn.14000543e
movzx ecx, byte [r12 + r15 + 0x10]
call fcn.140001af4
mov rcx, r15
mov rbx, rax
call fcn.140001af4
xor edx, edx
mov r8, rax
test rbx, rbx
je 0x14000e9c7
mov rdx, qword [rbx]
xor eax, eax
test r8, r8
je 0x14000e9d1
mov rax, qword [r8]
lea rcx, [rdx + rax + 0x38]
mov qword [rsp + 0x40], r8
call fcn.140004af8
lea rdx, [0x14001c360]
mov rcx, rax
mov r9, rax
call fcn.14000d89c
movsx edx, byte [r12 + r15 + 0x10]
mov rcx, r9
call fcn.14000d838
lea rdx, [0x14001c340]
call fcn.14000d89c
mov rcx, r9
mov rdx, rbx
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c320]
call fcn.14000d89c
mov r8, qword [rsp + 0x40]
mov rcx, r9
mov rdx, r8
call fcn.14000d8c2
mov rcx, r9
lea rdx, [0x14001c300]
call fcn.14000d89c
mov rdx, r9
lea rcx, [rsi + 0x18]
call fcn.14000d84b
lea rcx, [rsi + 8]
xor edx, edx
call fcn.14000d84b
lea r9, str.base64.nim
lea r8, str.decode
mov rcx, rsi
mov qword [rsp + 0x20], 0xe9
lea rdx, [0x14001c260]
call fcn.1400051e7
lea r8, [rsp + 0x98]
mov edx, 1
mov rcx, r15
call fcn.14000d800
test al, al
je 0x14000eaa0
call fcn.1400040d2
test r14, r14
js 0x14000eab2
test r13, r13
je 0x14000eab2
cmp r14, qword [r13]
jl 0x14000eacb
jmp 0x14000eabb
or rdx, 0xffffffffffffffff
test r13, r13
je 0x14000eac3
mov rax, qword [r13]
lea rdx, [rax - 1]
mov rcx, r14
call fcn.14000543e
mov bl, byte [rsp + 0x38]
mov rax, rdi
mov edx, 1
mov rcx, r14
sar rax, 4
lea r8, [rsp + 0xa0]
shl ebx, 2
or ebx, eax
mov byte [r13 + r14 + 0x10], bl
call fcn.14000d800
test al, al
je 0x14000eafe
call fcn.1400040d2
mov r12, qword [rsp + 0xa0]
mov rdx, qword [r13]
test r12, r12
js 0x14000eb14
cmp r12, rdx
jl 0x14000eb1f
dec rdx
mov rcx, r12
call fcn.14000543e
shl rdi, 4
sar rbp, 2
mov edx, 1
mov rcx, r12
or edi, ebp
lea r8, [rsp + 0xa8]
mov byte [r13 + r12 + 0x10], dil
call fcn.14000d800
test al, al
je 0x14000eb4c
call fcn.1400040d2
mov r14, qword [rsp + 0xa8]
test r14, r14
jns 0x14000eb6d
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.1400052fa
mov rdx, r14
mov rcx, r13
call fcn.140004e74
mov r12, rax
jmp 0x14000eb80
xor r12d, r12d
mov rax, r12
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret