Function at 0x140044e40
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov r13, r9
mov rbx, rcx
xor r12d, r12d
test r9, r9
je 0x140044e7f
mov qword [r9], r12
mov r14, qword [rsp + 0x120]
test r14, r14
je 0x140044e8f
mov qword [r14], r12
cmp dword [rcx + 0x70], r12d
jne 0x140044ea9
mov edx, 6
mov ecx, 0x220f1f0f
call fcn.14004b9a0
jmp 0x140045629
mov edx, 1
lea rcx, [rsp + 0x50]
call fcn.140047670
nop
mov edx, 1
lea rcx, [rsp + 0x78]
call fcn.140047670
nop
mov qword [rsp + 0x48], r12
mov rbp, qword [rbx + 0x58]
mov qword [rsp + 0x38], rbp
mov rsi, qword [rbx + 0x88]
mov eax, dword [rbx + 0x70]
lea rcx, [rax + rax*2]
add rcx, rcx
lea rdi, [rsi + rcx*8 - 0x30]
mov r15d, r12d
mov qword [rsp + 0x100], r15
mov rax, qword [rsp + 0x108]
test rax, rax
je 0x1400450a6
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x20], rcx
or r9d, 0xffffffff
mov r8, rax
mov edx, dword [rbx + 0x10]
lea rcx, [rsp + 0x50]
call fcn.140047bc0
test rax, rax
je 0x140045073
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, qword [rsp + 0x110]
mov edx, dword [rbx + 0x10]
lea rcx, [rsp + 0x78]
call fcn.140047bc0
test rax, rax
je 0x140045073
nop dword [rax]
mov r15, qword [rsi]
add r15, rbp
mov qword [rsp + 0x30], r15
mov rax, qword [rsi + 0x10]
cmp rax, 0xffffffffffffffff
je 0x140044f8e
lea rdx, [rax + r15]
mov r9, qword [rsp + 0x58]
mov r8, qword [rsi + 0x18]
mov rcx, rbx
call fcn.140044d50
test eax, eax
je 0x140044f9d
cmp rsi, rdi
je 0x1400450b6
add rsi, 0x30
jmp 0x140044f60
cmp qword [rsp + 0x110], 0
je 0x14004503c
mov ebp, r12d
mov rdi, qword [rsi + 0x20]
cmp dword [rsi + 0x28], r12d
jbe 0x140045030
nop dword [rax]
test byte [rdi], 1
je 0x140044fe5
mov rax, qword [rdi + 0x18]
lea rdx, [r15 + rax]
mov r9, qword [rsp + 0x80]
mov r8, qword [rdi + 0x20]
mov rcx, rbx
call fcn.140044d50
test eax, eax
je 0x140044ff2
inc ebp
add rdi, 0x38
cmp ebp, dword [rsi + 0x28]
jae 0x140045037
jmp 0x140044fc0
test r13, r13
je 0x140044ffb
mov qword [r13], rsi
test r14, r14
je 0x140045003
mov qword [r14], rdi
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
xor eax, eax
jmp 0x140045629
mov rbp, qword [rsp + 0x38]
jmp 0x14004503c
mov rbp, qword [rsp + 0x38]
mov rcx, rsi
sub rcx, qword [rbx + 0x88]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
mov r15, rdx
sar r15, 3
mov rax, r15
shr rax, 0x3f
add r15, rax
mov qword [rsp + 0x100], r15
mov rdi, qword [rsp + 0x30]
jmp 0x1400450c1
mov rdi, qword [rsp + 0x48]
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
mov rax, rdi
jmp 0x140045629
mov rsi, rdi
mov rdi, qword [rdi]
add rdi, rbp
mov qword [rsp + 0x30], rdi
jmp 0x1400450c1
mov rdi, r15
mov r15, qword [rsp + 0x100]
mov rcx, qword [rbx + 0x78]
cmp rcx, 0xffffffffffffffff
je 0x140045574
test r15d, r15d
je 0x1400450e2
mov eax, dword [rbx + 0x70]
dec eax
cmp r15d, eax
jne 0x140045574
lea r12, [rcx + rbp]
nop word [rax + rax]
lea r8, [0x14008ff88]
mov rdx, r12
mov ecx, dword [rbx + 0x10]
call fcn.140048140
mov r13, rax
cmp byte [rax], 0x5b
jne 0x140045241
lea r8, [0x140090014]
lea rdx, [rax + 1]
mov rcx, rbx
call fcn.140044dd0
mov rbp, rax
test rax, rax
je 0x140045241
cmp byte [rax], 0x5d
jne 0x140045241
mov rcx, rbx
call fcn.140044c40
mov rsi, rax
test rax, rax
je 0x14004545b
mov qword [rsp + 0x30], r12
lea r8, [0x14008ff88]
lea rdx, [r13 + 1]
mov ecx, dword [rbx + 0x10]
call fcn.140048140
mov rdi, rax
lea r9, [0x14008ff88]
mov r8, rbp
mov rdx, rax
mov ecx, dword [rbx + 0x10]
call fcn.1400481d0
mov rcx, rdi
sub rcx, r12
mov qword [rsi + 0x10], rcx
sub rax, rdi
mov qword [rsi + 0x18], rax
lea rdx, [rbp + 1]
lea r8, [rsp + 0x40]
mov rcx, rbx
call fcn.140044df0
mov rdx, r12
mov rax, qword [rsp + 0x38]
sub rdx, rax
mov qword [rsi], rdx
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x1400451bc
mov rcx, r14
sub rcx, r12
jmp 0x1400451d2
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rax, qword [rsp + 0x38]
mov qword [rsi + 8], rcx
test r15d, r15d
jne 0x140045439
cmp qword [rsp + 0x108], 0
je 0x140045419
mov rax, qword [rsi + 0x10]
lea rdx, [r12 + rax]
mov r9, qword [rsp + 0x58]
mov r8, qword [rsi + 0x18]
mov rcx, rbx
call fcn.140044d50
test eax, eax
jne 0x140045419
mov rcx, rsi
sub rcx, qword [rbx + 0x88]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 3
mov r15, rdx
shr r15, 0x3f
add r15, rdx
mov qword [rsp + 0x100], r15
jmp 0x140045419
or r8d, 0xffffffff
mov rdx, rsi
mov rcx, rbx
call fcn.140044cb0
mov rbp, rax
test rax, rax
je 0x14004552b
lea r8, [rsp + 0x40]
mov rdx, r13
mov rcx, rbx
call fcn.140044df0
mov r15, rax
mov rcx, r12
sub rcx, rdi
mov qword [rbp + 8], rcx
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x14004528b
mov rcx, r14
sub rcx, r12
jmp 0x14004529c
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
dec rcx
mov qword [rbp + 0x10], rcx
cmp r15, r13
je 0x1400452ac
cmp byte [r13], 0
jne 0x1400452b0
or dword [rbp], 2
cmp byte [r13], 0x3b
je 0x1400453f3
lea r8, [0x140090010]
mov rdx, r13
mov rcx, rbx
call fcn.140044dd0
mov rdi, rax
test rax, rax
je 0x1400453e9
cmp byte [rax], 0x3d
jne 0x1400453df
lea r9, [0x14008ff88]
mov r8, rax
mov rdx, r13
mov ecx, dword [rbx + 0x10]
call fcn.1400481d0
mov rcx, r13
mov r8, qword [rsp + 0x30]
sub rcx, r8
mov qword [rbp + 0x18], rcx
sub rax, r13
mov qword [rbp + 0x20], rax
bt dword [rbx + 8], 0xb
jae 0x140045343
inc rdi
mov rax, rdi
sub rax, r8
mov qword [rbp + 0x28], rax
test r15, r15
je 0x14004532b
sub r15, rdi
jmp 0x14004533a
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
lea r15, [rcx - 1]
mov qword [rbp + 0x30], r15
mov r15, r8
jmp 0x14004539e
lea rdx, [rdi + 1]
lea r8, [0x14008ff88]
mov ecx, dword [rbx + 0x10]
call fcn.140048140
mov r12, rax
test r15, r15
jne 0x140045373
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r12
repne scasb al, byte [rdi]
not rcx
lea r15, [rcx - 1]
add r15, r12
lea r9, [0x14008ff88]
mov r8, r15
mov rdx, r12
mov ecx, dword [rbx + 0x10]
call fcn.1400481d0
mov rcx, r12
mov r15, qword [rsp + 0x30]
sub rcx, r15
mov qword [rbp + 0x28], rcx
sub rax, r12
mov qword [rbp + 0x30], rax
or dword [rbp], 1
mov rdi, qword [rsp + 0x100]
test edi, edi
je 0x140045407
cmp qword [rsp + 0x110], 0
je 0x1400453fd
mov rax, qword [rbp + 0x18]
lea rdx, [r15 + rax]
mov r9, qword [rsp + 0x80]
mov r8, qword [rbp + 0x20]
mov rcx, rbx
call fcn.140044d50
test eax, eax
je 0x1400454a4
jmp 0x140045411
mov r15, qword [rsp + 0x100]
jmp 0x140045419
mov r15, qword [rsp + 0x100]
jmp 0x140045419
mov r15, qword [rsp + 0x100]
jmp 0x140045419
mov r15, qword [rsp + 0x100]
jmp 0x140045419
mov r15, qword [rsp + 0x100]
jmp 0x140045419
mov r15, qword [rsp + 0x100]
test r14, r14
je 0x140045516
cmp byte [r14], 0
je 0x140045516
mov r12, r14
mov rdi, qword [rsp + 0x30]
jmp 0x1400450f0
test r14, r14
je 0x140045443
sub r14, rax
jmp 0x140045447
or r14, 0xffffffffffffffff
mov qword [rbx + 0x78], r14
xor r12d, r12d
mov r13, qword [rsp + 0x118]
jmp 0x140045574
sub r12, qword [rsp + 0x38]
mov qword [rbx + 0x78], r12
mov edx, 0xe
mov ecx, 0x220f1e01
call fcn.14004b9a0
mov rdi, rax
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
mov rax, rdi
jmp 0x140045629
test r14, r14
je 0x1400454b0
sub r14, qword [rsp + 0x38]
jmp 0x1400454b4
or r14, 0xffffffffffffffff
mov qword [rbx + 0x78], r14
mov rdx, qword [rsp + 0x118]
test rdx, rdx
je 0x1400454d9
mov eax, edi
lea rcx, [rax + rax*2]
shl rcx, 4
add rcx, qword [rbx + 0x88]
mov qword [rdx], rcx
mov rax, qword [rsp + 0x120]
test rax, rax
je 0x1400454e9
mov qword [rax], rbp
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
xor eax, eax
jmp 0x140045629
mov qword [rbx + 0x78], 0xffffffffffffffff
xor r12d, r12d
mov r13, qword [rsp + 0x118]
jmp 0x140045574
sub r12, qword [rsp + 0x38]
mov qword [rbx + 0x78], r12
mov edx, 0xe
mov ecx, 0x220f1e01
call fcn.14004b9a0
mov rdi, rax
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
mov rax, rdi
jmp 0x140045629
test r13, r13
je 0x140045599
test r15d, r15d
je 0x140045592
mov eax, r15d
lea rcx, [rax + rax*2]
shl rcx, 4
add rcx, qword [rbx + 0x88]
jmp 0x140045595
mov rcx, r12
mov qword [r13], rcx
cmp qword [rsp + 0x108], 0
je 0x140045601
cmp qword [rsp + 0x110], 0
jne 0x1400455b4
test r15d, r15d
jne 0x140045601
test r15d, r15d
mov r12d, 0
setne r12b
mov edx, 0x490
lea ecx, [r12 + 0x220f1f0b]
call fcn.14004b9a0
mov rdi, rax
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
mov rax, rdi
jmp 0x140045629
lea rbx, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x78], rbx
lea rcx, [rsp + 0x78]
call fcn.140047880
nop
mov qword [rsp + 0x50], rbx
lea rcx, [rsp + 0x50]
call fcn.140047880
xor eax, eax
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret