Function at 0x140056aa0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov rax, qword [0x14011c028]
xor rax, rsp
mov qword [rsp + 0x128], rax
mov r15, rdx
mov r13, rcx
add rcx, 0xd0
call fcn.140025810
xor eax, eax
mov qword [rsp + 0x68], rax
mov qword [r13 + 0xbc], rax
mov dword [r13 + 0xb8], eax
mov qword [rsp + 0x40], 0xffffffffffffffff
mov rax, qword [rsp + 0x40]
mov qword [r13 + 0xc8], rax
movsx rdx, word [r15 + 0x3e]
mov rcx, r13
call fcn.14003db40
mov rcx, r13
cmp qword [r13 + 0x18], 0x10
jb 0x140056b23
mov rcx, qword [r13]
lea rdx, [r15 + 0x40]
mov r8, qword [r13 + 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x1400571f0
mov r14, qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
cmp qword [r13 + 0x18], 0x10
jb 0x140056b58
mov rdi, qword [r13]
mov rbx, rdi
lea rsi, [rcx + rdi]
jmp 0x140056b62
lea rsi, [rcx + r13]
mov rbx, r13
mov rdi, r13
cmp rbx, rsi
je 0x140056b77
movsx ecx, byte [rbx]
call r14
mov byte [rdi], al
inc rbx
inc rdi
jmp 0x140056b62
xorps xmm1, xmm1
movdqu xmmword [rsp + 0xf8], xmm1
xor r8d, r8d
mov ecx, r8d
mov qword [rsp + 0x108], rcx
mov r12, qword [r13 + 0x10]
add r12, r15
mov eax, dword [r12 + 0x40]
mov dword [r13 + 0xb8], eax
mov eax, dword [r12 + 0x44]
mov dword [r13 + 0xbc], eax
mov eax, dword [r12 + 0x48]
mov dword [r13 + 0xc0], eax
add r12, 0x51
mov eax, r8d
psrldq xmm1, 8
movq qword [rsp + 0x100], xmm1
mov r9d, 0xeb0
mov r10d, 8
mov dword [rsp + 0x20], eax
cmp eax, dword [r13 + 0xc0]
jge 0x140056f8e
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
movzx ebx, word [r12]
mov word [rsp + 0x28], bx
movzx esi, word [r12 + 2]
mov word [rsp + 0x2a], si
movzx edi, word [r12 + 4]
mov word [rsp + 0x2c], di
movzx r14d, byte [r12 + 6]
mov byte [rsp + 0x2e], r14b
movzx r15d, byte [r12 + 7]
mov byte [rsp + 0x2f], r15b
mov edx, 0xa
test di, di
cmove edx, r10d
add rdx, r12
mov r12, rdx
cmp bx, r9w
jne 0x140056ca1
lea r12, [rdx + 0x16]
mov rax, qword [rsp + 0x100]
cmp rax, rcx
je 0x140056c7c
mov word [rax], bx
mov word [rax + 2], si
mov word [rax + 4], di
mov byte [rax + 6], r14b
mov byte [rax + 7], r15b
mov qword [rax + 8], r8
mov qword [rax + 0x10], r8
add qword [rsp + 0x100], 0x18
jmp 0x140056c97
lea r8, [rsp + 0x28]
mov rdx, qword [rsp + 0x100]
lea rcx, [rsp + 0xf8]
call fcn.14009e330
nop
mov rcx, qword [rsp + 0x38]
jmp 0x140056f3d
mov rcx, rbx
mov rax, qword [0x140126b68]
mov rdx, qword [0x140126b60]
sub rax, rdx
sar rax, 5
cmp rax, rbx
jbe 0x14005721d
shl rcx, 5
add rcx, rdx
call fcn.140003120
movsxd rdx, eax
cmp edx, 0x38
ja 0x140056ce6
movabs rax, 0x1fec9560408240c
bt rax, rdx
jb 0x140056d48
cmp ebx, 0x8c6
je 0x140056d48
cmp edx, 0x3f
ja 0x140056d03
movabs r8, 0xea00000000000000
bt r8, rdx
jb 0x140056d48
cmp ebx, 0xeb0
je 0x140056d48
lea eax, [rdx - 0x42]
cmp eax, 0x3d
ja 0x140056d23
movabs r8, 0x2006a00c8afed583
bt r8, rax
jb 0x140056d48
cmp edx, 0xffffff82
je 0x140056d48
cmp edx, 0x82
je 0x140056d48
test bl, 1
jne case.0x140056d72.0
lea eax, [rbx - 0x16ba]
cmp eax, 0x72
ja case.0x140056d72.0
movzx eax, byte [r12]
inc r12
cmp eax, 0x4a
ja case.0x140056d72.0
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x57290]
mov ecx, dword [rdx + rax*4 + 0x57224]
add rcx, rdx
jmp rcx
movzx eax, word [r12]
add r12, 3
add r12, rax
jmp case.0x140056d72.0
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
xor eax, eax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
lea r8d, [rax + 0x10]
lea rdx, str.Safe_vault_found
lea rcx, [rsp + 0x78]
call fcn.140028b80
lea rcx, [rsp + 0x78]
call fcn.1400a1af0
jmp case.0x140056d72.0
movzx eax, word [r12]
add r12, 6
add r12, rax
jmp case.0x140056d72.0
movzx eax, byte [r12 + 5]
lea r12, [r12 + rax*4]
add r12, 0x11
jmp case.0x140056d72.0
add r12, 5
jmp case.0x140056d72.0
movzx eax, word [r12 + 4]
add r12, 6
add r12, rax
jmp case.0x140056d72.0
movzx eax, word [r12]
add r12, 0x19
add r12, rax
jmp case.0x140056d72.0
inc r12
jmp case.0x140056d72.0
add r12, 0x12
jmp case.0x140056d72.0
add r12, 8
jmp case.0x140056d72.0
inc r12
mov eax, dword [r12]
lea eax, [rax*4]
movsxd rcx, eax
add rcx, 4
add r12, rcx
jmp case.0x140056d72.0
add r12, 6
jmp case.0x140056d72.0
mov eax, 0xd42
cmp bx, ax
jne case.0x140056d72.0
movzx eax, word [r12]
add r12, 2
add r12, rax
jmp case.0x140056d72.0
movzx eax, word [r12]
add r12, 0x22
add r12, rax
jmp case.0x140056d72.0
add r12, 0x10
jmp case.0x140056d72.0
add r12, 5
movzx eax, byte [r12]
lea r12, [r12 + rax*4]
add r12, 4
mov rdx, qword [rsp + 0x100]
cmp rdx, qword [rsp + 0x108]
je 0x140056f26
mov word [rdx], bx
mov word [rdx + 2], si
mov word [rdx + 4], di
mov byte [rdx + 6], r14b
mov byte [rdx + 7], r15b
xor eax, eax
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rax
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140056ec1
lock inc dword [rcx + 8]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov qword [rdx + 8], rax
mov qword [rdx + 0x10], rcx
add qword [rsp + 0x100], 0x18
jmp 0x140056f3d
movzx eax, word [r12]
add r12, 7
add r12, rax
jmp case.0x140056d72.0
movzx eax, word [r12]
add r12, 0x1c
add r12, rax
jmp case.0x140056d72.0
add r12, 9
jmp case.0x140056d72.0
movsx rax, word [r12]
add r12, 2
add r12, rax
jmp case.0x140056d72.0
add r12, 0xe
jmp case.0x140056d72.0
imul ecx, dword [r12], 0xf
add r12, 0xc
add r12, rcx
jmp case.0x140056d72.0
lea r8, [rsp + 0x28]
lea rcx, [rsp + 0xf8]
call fcn.14009e330
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140056f78
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x140056f78
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140056f78
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov eax, dword [rsp + 0x20]
inc eax
mov rcx, qword [rsp + 0x108]
xor r8d, r8d
jmp 0x140056bd1
mov esi, r8d
cmp esi, dword [r13 + 0xbc]
jge 0x1400570b5
mov edi, r8d
cmp edi, dword [r13 + 0xb8]
jge 0x1400570ab
imul r8d, esi, 0x64
add r8d, edi
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rdx, qword [rsp + 0xf8]
movzx eax, word [rdx + rcx*8]
mov word [rsp + 0x48], ax
movzx eax, word [rdx + rcx*8 + 2]
mov word [rsp + 0x4a], ax
movzx eax, word [rdx + rcx*8 + 4]
mov word [rsp + 0x4c], ax
movzx eax, byte [rdx + rcx*8 + 6]
mov byte [rsp + 0x4e], al
movzx eax, byte [rdx + rcx*8 + 7]
mov byte [rsp + 0x4f], al
mov rax, qword [rdx + rcx*8 + 0x10]
test rax, rax
je 0x140057001
lock inc dword [rax + 8]
mov rax, qword [rdx + rcx*8 + 8]
mov qword [rsp + 0x50], rax
mov rax, qword [rdx + rcx*8 + 0x10]
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x64], esi
mov dword [rsp + 0x40], r8d
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0xd8]
lea rcx, [r13 + 0xd0]
call fcn.14009d700
mov rbx, qword [rax]
lea rdx, [rsp + 0x48]
lea rcx, [rbx + 0x18]
call fcn.1400572e0
mov rax, qword [rsp + 0x60]
mov qword [rbx + 0x30], rax
cmp word [rsp + 0x48], 6
jne 0x140057064
mov qword [r13 + 0xc8], rax
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400570a4
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x1400570a4
mov rbx, qword [rsp + 0x58]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x1400570a4
mov rcx, qword [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
inc edi
jmp 0x140056fa1
inc esi
xor r8d, r8d
jmp 0x140056f91
mov ebx, dword [r12 + 0xc]
mov eax, dword [r12 + 0x10]
mov dword [r13 + 0xc4], eax
add r12, 0x14
nop word [rax + rax]
cmp r8d, ebx
jge 0x14005716f
movzx eax, word [r12]
mov word [rsp + 0x110], ax
mov eax, dword [r12 + 2]
mov dword [rsp + 0x114], eax
mov eax, dword [r12 + 6]
mov dword [rsp + 0x118], eax
movzx eax, byte [r12 + 0xa]
mov byte [rsp + 0x11c], al
movzx eax, byte [r12 + 0xb]
mov byte [rsp + 0x11d], al
mov eax, dword [r12 + 0xc]
mov dword [rsp + 0x120], eax
add r12, 0x10
lea rcx, [r13 + 0x110]
lea r8, [rsp + 0x120]
lea rdx, [rsp + 0xe8]
call fcn.14009d4d0
mov rcx, qword [rax]
movups xmm0, xmmword [rsp + 0x110]
movups xmmword [rcx + 0x14], xmm0
mov eax, dword [rsp + 0x120]
mov dword [rcx + 0x24], eax
mov r8, qword [rsp + 0x68]
inc r8d
mov qword [rsp + 0x68], r8
jmp 0x1400570d0
mov rcx, qword [rsp + 0xf8]
test rcx, rcx
je 0x1400571f0
mov rdx, qword [rsp + 0x100]
call fcn.14009d9a0
mov rcx, qword [rsp + 0x108]
mov r8, qword [rsp + 0xf8]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
mov rax, r8
cmp rdx, 0x1000
jb 0x1400571e7
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400571e7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.1400d18dc
nop
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
call fcn.1400d1560
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.140026f90
nop
nop
jnp 0x140057294
add eax, 0x56d7400
add bl, al
insd dword [rdi], dx
add eax, 0x56dd400
add bh, ah
insd dword [rdi], dx
add eax, 0x56e0d00
add byte [rdi + 0x6e], dh
add eax, 0x56df000
add bh, bh
insd dword [rdi], dx
add eax, 0x56e1200
add byte [rax + 0x6e], cl
add eax, 0x56ed900
add byte [rax], bl
outsb dx, byte [rsi]
add eax, 0x56e1e00
add byte [rax], bh
outsb dx, byte [rsi]
add eax, 0x56e3e00
add byte [rsi + 0x6e], dl
add eax, 0x56e6400
add byte [rdx + 0x6e], ch
add eax, 0x56ee700
add ch, dh
outsb dx, byte [rsi]
add eax, 0x56efb00
add byte [rdi + rbp*2], cl
add eax, 0x56f1500
add dh, bl
insd dword [rdi], dx
add eax, 0x56d8500
add byte [rbx + 0x6e], bh
add eax, 0x2010000
add eax, dword [rdx + rbx]
add al, 0x1a
sbb bl, byte [rdx]
add eax, 436667398
sbb cl, byte [rax]
invalid