Function at 0x140054080
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov rsi, r8
mov qword [rsp + 0x58], 0x20
mov byte [rsp + 0x60], 3
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x38], 0
xor eax, eax
test al, al
je 0x1400540c3
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdx
mov eax, 0xbb2d8acf
nop dword [rax + rax]
mov r8d, dword [0x141dcac08]
add r8d, dword [0x141dcac0c]
xor r8d, 0xc41cddf7
imul r8, rax
shr r8, 0x3f
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdx
cmp r8d, 0xc6277717
ja 0x1400540d0
mov r13, qword [rsi + 0x20]
test r13, r13
je 0x1400544a0
mov rax, qword [rsi + 0x28]
imul r14, rax, 0x38
add r14, r13
nop dword [rax + rax]
mov ecx, dword [0x141dcac20]
imul ecx, dword [0x141dcac24]
xor ecx, 0x42121081
or ecx, 0xa8210c72
imul ecx, ecx, 0x1dd5fa4c
cmp ecx, 0xa04a088b
jb 0x140054120
test rax, rax
je 0x1400545a9
mov r15, qword [rsi]
mov r12, qword [rsi + 0x10]
nop word [rax + rax]
mov eax, dword [0x141dcac28]
xor eax, dword [0x141dcac2c]
or eax, 0x895b19b0
imul eax, eax, 0x4107ee68
cmp eax, 0xe08036ff
ja 0x140054160
xor ebx, ebx
lea rdi, [rsp + 0x28]
nop word cs:[rax + rax]
mov eax, dword [0x141dcac40]
xor eax, dword [0x141dcac44]
imul eax, eax, 0xfa99d8ef
imul rax, rax, 0x7f1b4b21
shr rax, 0x3c
add eax, 0xb78bc40c
cmp eax, 0xa1afa1d3
jb 0x140054190
mov rax, rbx
shl rax, 4
mov r8, qword [r15 + rax + 8]
test r8, r8
je 0x1400541e6
add rax, r15
mov rcx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov rdx, qword [rax]
call qword [r9 + 0x18]
test al, al
jne 0x140054600
lea rbp, [r13 + 0x38]
inc rbx
mov eax, dword [0x141dcac58]
xor edx, edx
div dword [0x141dcac5c]
mov eax, dword [0x141dcac60]
xor edx, edx
div dword [0x141dcac64]
xor eax, 0x2460081
and eax, 0xee575887
imul eax, eax, 0x2256259e
cmp eax, 0x377b2ea0
jb 0x1400541fb
movzx eax, byte [r13 + 0x30]
mov byte [rsp + 0x60], al
movsd xmm0, qword [r13 + 0x28]
mov eax, dword [0x141dcac68]
xor eax, dword [0x141dcac6c]
or eax, 0xbefbf7c1
cmp eax, 0xfdbcfa8f
je 0x140054316
mov eax, dword [0x141dcac70]
xor eax, dword [0x141dcac74]
and eax, 0xae6d4de9
movlps qword [rsp + 0x58], xmm0
cmp eax, 0xf0378c85
je 0x140054316
mov rcx, qword [r13 + 0x10]
mov rax, qword [r13 + 0x18]
test rcx, rcx
je 0x140054300
cmp ecx, 1
jne 0x1400542f3
nop word cs:[rax + rax]
mov ecx, dword [0x141dcac80]
imul ecx, dword [0x141dcac84]
or ecx, 0xbe63dcb7
imul rdx, rcx, 0x298db4f3
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
cmp ecx, 0x9ee3b717
ja 0x140054290
shl rax, 4
add rax, r12
mov ecx, dword [0x141dcac88]
or ecx, dword [0x141dcac8c]
add ecx, 0x933e6314
and ecx, 0x6eb85d9e
add ecx, 0x33c615c9
cmp ecx, 0x503aaa6b
jb 0x1400542c6
cmp qword [rax + 8], 0
je 0x140054320
xor ecx, ecx
jmp 0x14005435b
mov ecx, dword [0x141dcac78]
sub ecx, dword [0x141dcac7c]
cmp ecx, 0x64078600
je 0x140054300
jmp 0x140054356
movlps qword [rsp + 0x58], xmm0
jmp 0x14005424b
mov rax, qword [rax]
nop word cs:[rax + rax]
mov ecx, dword [0x141dcac90]
or ecx, dword [0x141dcac94]
add ecx, 0xf7e88875
and ecx, 0xf6ccb473
add ecx, 0xb1797a35
cmp ecx, 0xbfce2e06
ja 0x140054330
mov ecx, 1
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rax
mov rcx, qword [r13]
mov rax, qword [r13 + 8]
test rcx, rcx
je 0x1400543e0
cmp ecx, 1
jne 0x1400543d3
mov ecx, dword [0x141dcaca0]
xor ecx, dword [0x141dcaca4]
cmp ecx, 0xe23665f1
je 0x140054377
shl rax, 4
add rax, r12
nop word cs:[rax + rax]
mov ecx, dword [0x141dcaca8]
imul ecx, dword [0x141dcacac]
imul ecx, ecx, 0x530631dd
imul rcx, rcx, 0x54fe5c65
shr rcx, 0x3e
or ecx, 0xbcc5b492
cmp ecx, 0xfc0c56b6
je 0x1400543a0
cmp qword [rax + 8], 0
je 0x140054409
xor ecx, ecx
jmp 0x140054411
mov ecx, dword [0x141dcac98]
imul ecx, dword [0x141dcac9c]
imul ecx, ecx, 0xaa9bdef1
add ecx, 0xc695ef66
xor ecx, 0x1d6278a
cmp ecx, 0x4e6adad1
jb 0x1400543e0
jmp 0x14005440c
mov rax, qword [rax]
mov ecx, 1
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rax
mov rax, qword [r13 + 0x20]
shl rax, 4
mov rcx, qword [r12 + rax]
mov rdx, rdi
call qword [r12 + rax + 8]
test al, al
jne 0x140054600
nop word [rax + rax]
mov eax, dword [0x141dcacb0]
xor edx, edx
div dword [0x141dcacb4]
or eax, 0xb8edbffd
imul rax, rax, 0x49caf4f7
shr rax, 0x3d
cmp eax, 0x4f0e8248
ja 0x140054440
nop word cs:[rax + rax]
mov eax, dword [0x141dcacb8]
imul eax, dword [0x141dcacbc]
imul eax, eax, 0xd236a4b2
add eax, 0x15c60327
cmp eax, 0x73e20671
ja 0x140054470
mov r13, rbp
cmp rbp, r14
jne 0x140054190
jmp 0x1400545ab
mov r14, qword [rsi + 0x10]
mov r15, qword [rsi + 0x18]
nop dword [rax + rax]
mov eax, dword [0x141dcac10]
xor eax, dword [0x141dcac14]
imul rcx, rax, 0x13cd50a7
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
or eax, 0x768cb906
imul eax, eax, 0x96a5a975
cmp eax, 0xd7e011d0
je 0x1400544b0
test r15, r15
je 0x1400545b3
nop dword [rax + rax]
mov eax, dword [0x141dcac18]
add eax, dword [0x141dcac1c]
imul eax, eax, 0x299e295e
or eax, 0x104664db
cmp eax, 0xc94f5630
je 0x1400544f0
mov r12, qword [rsi]
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140054520
shl r15, 4
xor r13d, r13d
lea rdi, [rsp + 0x28]
xor ebx, ebx
mov rbp, r14
nop word cs:[rax + rax]
mov r8, qword [r12 + r13 + 8]
test r8, r8
je 0x140054563
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov rdx, qword [r12 + r13]
call qword [rax + 0x18]
test al, al
jne 0x140054600
add rbp, 0x10
mov eax, dword [0x141dcac30]
xor edx, edx
div dword [0x141dcac34]
add eax, 0xce474268
and eax, 0xad5d063d
add eax, 0xcdfa713e
cmp eax, 0xe88b7868
ja 0x140054567
mov rcx, qword [r14 + r13]
mov rdx, rdi
call qword [r14 + r13 + 8]
test al, al
jne 0x140054600
add r13, 0x10
inc rbx
cmp r15, r13
jne 0x140054540
jmp 0x1400545ab
xor ebx, ebx
cmp rbx, qword [rsi + 8]
jb 0x1400545bb
jmp 0x14005462d
xor ebx, ebx
cmp rbx, qword [rsi + 8]
jae 0x14005462d
shl rbx, 4
nop
mov eax, dword [0x141dcac48]
and eax, dword [0x141dcac4c]
add eax, 0x54409763
or eax, 0x6c577fee
cmp eax, 0xcd90a9b5
je 0x1400545c0
add rbx, qword [rsi]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rbx]
mov r8, qword [rbx + 8]
call qword [rax + 0x18]
test al, al
je 0x14005462d
nop dword [rax + rax]
mov eax, dword [0x141dcac38]
sub eax, dword [0x141dcac3c]
imul rax, rax, 0x7220227b
shr rax, 0x3a
imul eax, eax, 0x52e985db
add eax, 0x32c84514
cmp eax, 0x3d08f0c9
jbe 0x140054600
mov al, 1
jmp 0x140054630
xor eax, eax
nop
mov ecx, dword [0x141dcac50]
imul ecx, dword [0x141dcac54]
and ecx, 0x2e842739
cmp ecx, 0x9eae12d
je 0x140054630
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret