Function at 0x48a760
Capabilities:
Encode data using base64

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
mov rdi, rcx
mov ecx, dword [rdx + 8]
mov rbp, rdx
mov r12, r8
test ecx, ecx
je 0x48a87c
lea rsi, [0x0080f968]
xor ebx, ebx
cmp word [r8], 0
jne 0x48a860
lea r12, [rsp + 0x30]
lea rsi, [rsp + 0x40]
mov rcx, r12
call fcn.00477f50
mov rcx, rsi
call fcn.00477f50
mov rcx, qword [rbp]
mov edx, 0x3d
call fcn.00475c70
test eax, eax
mov ebx, eax
jns 0x48a9f0
mov ecx, dword [rbp + 8]
mov rdx, qword [rbp]
test ecx, ecx
je 0x48aacd
movzx eax, word [rdx]
lea r8, [rdx + 2]
xor ebx, ebx
sub eax, 0x30
cmp ax, 9
ja 0x48a801
jmp 0x48aacd
movzx eax, word [r8]
add r8, 2
sub eax, 0x30
cmp ax, 9
jbe 0x48a808
add ebx, 1
cmp ebx, ecx
jne 0x48a7f0
mov r8d, ebx
mov rcx, r12
call fcn.00478600
mov rax, qword [rbp]
mov rcx, rsi
lea rdx, [rax + rbx*2]
call fcn.004780f0
mov r8, rsi
mov rdx, r12
mov rcx, rdi
call fcn.00489f70
mov rcx, qword [rsp + 0x40]
mov ebx, eax
test rcx, rcx
je 0x48a842
call fcn.007da030
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x48a881
call fcn.007da030
mov eax, ebx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rdx, qword [rsi]
mov rcx, qword [rbp]
call fcn.00475fd0
test al, al
jne 0x48a890
add ebx, 1
add rsi, 0x10
cmp ebx, 0x11
jne 0x48a860
mov ebx, 0x80070057
mov eax, ebx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
xor edx, edx
xor eax, eax
mov ecx, ebx
mov byte [rsp + 0x44], 0
mov word [rsp + 0x4a], dx
mov edx, 1
mov word [rsp + 0x48], ax
mov rax, rdx
shl rax, cl
mov dword [rsp + 0x40], ebx
mov qword [rsp + 0x50], 0
test eax, 0x10016
je 0x48a970
movzx eax, word [r12]
cmp ax, 0x13
je 0x48a9c0
cmp ax, 8
jne 0x48aabe
mov rdx, qword [r12 + 8]
lea r12, [rsp + 0x30]
lea rsi, [rsp + 0x40]
mov rcx, r12
call fcn.00477fd0
lea rsi, [rsp + 0x40]
mov rcx, r12
lea rdx, [rsi + 8]
call fcn.004895a0
mov rcx, qword [rsp + 0x30]
mov ebx, eax
test rcx, rcx
je 0x48a91a
call fcn.007da030
test ebx, ebx
jne 0x48a9a6
mov ecx, 0x20
call fcn.007da0a0
lea rdx, [rsi + 8]
mov rbx, rax
mov eax, dword [rsp + 0x40]
lea rcx, [rbx + 8]
mov dword [rbx], eax
movzx eax, byte [rsp + 0x44]
mov byte [rbx + 4], al
call fcn.004b3d20
mov eax, dword [rdi + 8]
cmp eax, dword [rdi + 0xc]
je 0x48aa80
mov rbp, qword [rdi]
mov edx, eax
add eax, 1
mov qword [rbp + rdx*8], rbx
xor ebx, ebx
mov dword [rdi + 8], eax
jmp 0x48a9a6
shl rbx, 4
movzx edx, word [r12]
lea rax, [0x0080f960]
movzx eax, word [rax + rbx]
cmp ax, dx
je 0x48aad4
cmp ax, 0xb
je 0x48aa47
lea rsi, [rsp + 0x40]
test dx, dx
mov ebx, 0x80070057
je 0x48aa20
lea rcx, [rsi + 8]
call fcn.004b48e0
mov eax, ebx
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov ecx, dword [r12 + 8]
cmp ecx, 0x3f
ja 0x48aabe
cmp ecx, 0x1f
ja 0x48aa31
lea rsi, [rsp + 0x40]
mov edx, 1
shl edx, cl
lea rcx, [rsi + 8]
call fcn.004b4620
jmp 0x48a922
mov rdx, qword [rbp]
mov r8d, eax
mov rcx, r12
call fcn.00478600
mov rax, qword [rbp]
add ebx, 1
mov rcx, rsi
movsxd rbx, ebx
lea rdx, [rax + rbx*2]
call fcn.004780f0
jmp 0x48a823
lea rcx, [rsi + 8]
mov rdx, r12
call fcn.004b3eb0
jmp 0x48a922
lea rsi, [rsp + 0x40]
shl rdx, cl
lea rcx, [rsi + 8]
call fcn.004b46b0
jmp 0x48a922
lea rdx, [rsp + 0x2f]
mov rcx, r12
lea rsi, [rsp + 0x40]
call fcn.00489770
lea rsi, [rsp + 0x40]
test eax, eax
mov ebx, 0x80070057
jne 0x48a9a6
movzx edx, byte [rsp + 0x2f]
lea rcx, [rsi + 8]
call fcn.004b4380
jmp 0x48a922
mov edx, eax
shr edx, 2
lea ecx, [rax + rdx + 1]
mov r12, rcx
shl rcx, 3
call fcn.007da080
mov rbp, rax
mov eax, dword [rdi + 8]
mov r13, qword [rdi]
test eax, eax
jne 0x48aaea
test r13, r13
je 0x48aab2
mov rcx, r13
call fcn.007da030
mov eax, dword [rdi + 8]
mov qword [rdi], rbp
mov dword [rdi + 0xc], r12d
jmp 0x48a959
lea rsi, [rsp + 0x40]
mov ebx, 0x80070057
jmp 0x48a9a6
xor ebx, ebx
jmp 0x48a808
lea rsi, [rsp + 0x40]
mov rdx, r12
lea rcx, [rsi + 8]
call fcn.004b3eb0
jmp 0x48a922
lea r8, [rax*8]
mov rdx, r13
mov rcx, rbp
call sub.msvcrt.dll_memcpy
jmp 0x48aaa7