Function at 0x55c300
Capabilities:
Encode data using base64

Disassembly:
mov rcx, qword gs:[0x28]
mov rcx, qword [rcx]
lea rax, [rsp - 0xc8]
cmp rax, qword [rcx + 0x10]
jbe 0x55d162
sub rsp, 0x148
mov qword [rsp + 0x140], rbp
lea rbp, [rsp + 0x140]
mov rax, qword [0x0088f690]
mov rcx, qword [str._n_____BEGIN]
mov rdx, qword [0x0088f688]
cmp rdx, 1
jb 0x55d15b
mov rbx, qword [rsp + 0x150]
mov qword [rsp], rbx
mov rsi, qword [rsp + 0x158]
mov qword [rsp + 8], rsi
mov rdi, qword [rsp + 0x160]
mov qword [rsp + 0x10], rdi
lea r8, [rax - 2]
sar r8, 0x3f
xor r8, 0xffffffffffffffff
and r8, 1
add rcx, r8
mov qword [rsp + 0x18], rcx
lea rcx, [rdx - 1]
mov qword [rsp + 0x20], rcx
dec rax
mov qword [rsp + 0x28], rax
call fcn.004c9ab0
movzx eax, byte [rsp + 0x30]
test al, al
je 0x55d065
mov rax, qword [0x0088f688]
dec rax
mov rcx, qword [rsp + 0x158]
cmp rax, rcx
ja 0x55d05e
mov rdx, rcx
sub rcx, rax
mov rbx, qword [rsp + 0x160]
mov rsi, rbx
sub rbx, rax
lea rdi, [rbx - 1]
sar rdi, 0x3f
xor rdi, 0xffffffffffffffff
and rax, rdi
mov rdi, qword [rsp + 0x150]
add rax, rdi
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rbx
call fcn.0055c080
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xd0], rax
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0xc8], rcx
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0x128], rdx
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0x70], rbx
mov rsi, qword [rsp + 0x20]
mov qword [rsp + 0x68], rsi
mov rdi, qword [rsp + 0x18]
mov qword [rsp + 0xe0], rdi
mov qword [rsp], rdi
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rbx
mov r8, qword [0x0088f670]
mov r9, qword [0x0088f668]
mov r10, qword [0x0088f660]
mov qword [rsp + 0x18], r10
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x28], r8
call fcn.004c9b50
movzx eax, byte [rsp + 0x30]
test al, al
je 0x55cfc8
mov rax, qword [0x0088f668]
mov rcx, qword [rsp + 0x68]
sub rcx, rax
mov qword [rsp + 0x68], rcx
mov rax, qword [rsp + 0x70]
cmp rcx, rax
ja 0x55cfc1
lea rdx, [0x006835e0]
mov qword [rsp], rdx
mov qword [rsp + 8], 0
mov qword [rsp + 0x10], 0
mov qword [rsp + 0x18], 0
call fcn.00407900
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x120], rax
lea rcx, [0x0069e620]
mov qword [rsp], rcx
call fcn.0040f840
mov rax, qword [rsp + 8]
mov qword [rsp + 0x118], rax
mov ecx, dword [0x008b4340]
lea rdx, [rax + 0x10]
test ecx, ecx
jne 0x55cf9e
mov rcx, qword [rsp + 0x120]
mov qword [rax + 0x10], rcx
mov qword [rsp], 0
mov rcx, qword [rsp + 0xe0]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0x68]
mov qword [rsp + 0x10], rdx
mov rbx, qword [rsp + 0x70]
mov qword [rsp + 0x18], rbx
call fcn.004426a0
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x118]
mov qword [rdx + 8], rax
mov eax, dword [0x008b4340]
test eax, eax
jne 0x55cf83
mov qword [rdx], rcx
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xc8], rbx
test rcx, rcx
je 0x55cf37
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rbx
call fcn.0055c080
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x88], rax
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0xf0], rcx
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x80], rdx
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x78], rbx
mov rsi, qword [rsp + 0x30]
mov qword [rsp + 0xe8], rsi
mov rdi, qword [rsp + 0x28]
mov qword [rsp + 0x98], rdi
movzx r8d, byte [0x006efe13]
mov byte [rsp + 0x57], r8b
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rdi
lea r8, [rsp + 0x57]
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x28], 1
call fcn.004ca7d0
mov rax, qword [rsp + 0x30]
cmp rax, 0xffffffffffffffff
je 0x55c85c
mov rcx, qword [rsp + 0x98]
cmp rax, rcx
ja 0x55c855
lea rdx, [rax + 1]
mov qword [rsp + 0xd0], rdx
mov rbx, qword [rsp + 0x88]
cmp rdx, rbx
ja 0x55c855
mov rsi, qword [rsp + 0xf0]
mov qword [rsp], rsi
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
call fcn.004ca6e0
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xd0]
sub rax, rcx
lea rdx, [rax - 1]
sar rdx, 0x3f
xor rdx, 0xffffffffffffffff
and rdx, rcx
mov rbx, qword [rsp + 0xf0]
add rdx, rbx
mov rbx, qword [rsp + 0x18]
mov qword [rsp + 0xf0], rbx
mov rsi, qword [rsp + 0x20]
mov qword [rsp + 0x90], rsi
mov rdi, qword [rsp + 0x28]
mov qword [rsp + 0x98], rdi
mov qword [rsp], rdx
mov rdx, qword [rsp + 0x88]
sub rdx, rcx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rax
call fcn.004ca6e0
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0xd8], rax
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x58], rcx
mov rdx, qword [rsp + 0x28]
mov qword [rsp + 0x60], rdx
mov qword [rsp], 0
mov rbx, qword [rsp + 0xf0]
mov qword [rsp + 8], rbx
mov rbx, qword [rsp + 0x90]
mov qword [rsp + 0x10], rbx
mov rbx, qword [rsp + 0x98]
mov qword [rsp + 0x18], rbx
call fcn.004426a0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x138], rcx
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 8], rcx
lea rcx, [0x006835e0]
mov qword [rsp], rcx
lea rdx, [rsp + 0x130]
mov qword [rsp + 0x10], rdx
call fcn.00408570
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x108], rax
mov qword [rsp], 0
mov rcx, qword [rsp + 0xd8]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x10], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x18], rcx
call fcn.004426a0
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x108]
mov qword [rdx + 8], rcx
mov ecx, dword [0x008b4340]
test ecx, ecx
jne 0x55c845
mov qword [rdx], rax
mov rdx, qword [rsp + 0x118]
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
jmp 0x55c5a3
mov qword [rsp], rdx
mov qword [rsp + 8], rax
call fcn.00410240
jmp 0x55c823
call fcn.00429450
ud2
mov rax, qword [rsp + 0x118]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x55cf30
mov rcx, qword [rcx]
test rcx, rcx
jne 0x55cec6
mov rcx, qword [str._n_____END]
mov rdx, qword [0x0088f648]
mov rbx, qword [0x0088f650]
cmp rdx, 1
jb 0x55cf29
mov rsi, qword [rsp + 0x110]
mov qword [rsp], rsi
mov rdi, qword [rsp + 0xd0]
mov qword [rsp + 8], rdi
mov r8, qword [rsp + 0xc8]
mov qword [rsp + 0x10], r8
lea r9, [rbx - 2]
sar r9, 0x3f
xor r9, 0xffffffffffffffff
and r9, 1
add rcx, r9
mov qword [rsp + 0x18], rcx
lea rcx, [rdx - 1]
mov qword [rsp + 0x20], rcx
lea rcx, [rbx - 1]
mov qword [rsp + 0x28], rcx
call fcn.004c9ab0
movzx eax, byte [rsp + 0x30]
test al, al
je 0x55cec6
mov rax, qword [0x0088f648]
dec rax
xor ecx, ecx
mov qword [rsp + 0xb0], rcx
test rcx, rcx
jl 0x55ce30
mov rdx, qword [rsp + 0xd0]
cmp rax, rdx
ja 0x55ce29
mov rbx, rdx
sub rdx, rax
mov rsi, qword [rsp + 0xc8]
mov rdi, rsi
sub rsi, rax
mov qword [rsp + 0xa8], rsi
lea r8, [rsi - 1]
sar r8, 0x3f
xor r8, 0xffffffffffffffff
and r8, rax
mov rax, qword [rsp + 0x110]
add r8, rax
mov qword [rsp + 0xf8], r8
mov r9, qword [0x0088f668]
mov r10, qword [rsp + 0x68]
add r9, r10
mov qword [rsp + 0xa0], r9
cmp rdx, r9
jl 0x55cdab
cmp r9, rsi
ja 0x55cda4
mov qword [rsp], r8
mov qword [rsp + 8], r9
mov qword [rsp + 0x10], rsi
mov rdx, qword [rsp + 0xe0]
mov qword [rsp + 0x18], rdx
mov qword [rsp + 0x20], r10
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x28], rdx
call fcn.004c9ab0
movzx eax, byte [rsp + 0x30]
test al, al
jne 0x55ca65
mov rax, qword [rsp + 0x150]
mov qword [rsp], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
call fcn.0055d170
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rbx
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
mov rax, qword [rsp + 0xf8]
mov qword [rsp], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0x10], rax
mov rax, qword [0x0088f660]
mov rcx, qword [0x0088f668]
mov rdx, qword [0x0088f670]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rdx
call fcn.004c9b50
movzx eax, byte [rsp + 0x30]
test al, al
je 0x55c9cf
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xc8]
cmp rax, rcx
ja 0x55cd9d
mov rdx, qword [rsp + 0x110]
mov qword [rsp], rdx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
call fcn.0055c220
mov rax, qword [0x008962c0]
mov rcx, qword [rsp + 0x18]
mov qword [rsp + 0x100], rcx
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0xb8], rdx
mov rbx, qword [rsp + 0x28]
mov qword [rsp + 0xc0], rbx
mov eax, dword [rax + 0x140]
cmp eax, 0xffffffff
jne 0x55cd7e
lea rax, [rdx + rdx*2]
shl rax, 1
mov rsi, rax
sar rax, 0x3f
shr rax, 0x3d
add rax, rsi
sar rax, 3
lea rsi, [0x0066fcc0]
mov qword [rsp], rsi
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rax
call fcn.0043e630
mov rax, qword [rsp + 0x18]
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x118]
mov qword [rbx + 0x20], rcx
mov qword [rbx + 0x28], rdx
mov ecx, dword [0x008b4340]
lea rdx, [rbx + 0x18]
test ecx, ecx
jne 0x55cd63
mov qword [rbx + 0x18], rax
mov rax, qword [rbx + 0x18]
mov rcx, qword [rbx + 0x20]
mov rdx, qword [rbx + 0x28]
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdx
mov rax, qword [0x008962c0]
mov qword [rsp], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x30], rax
call fcn.004e2db0
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
jne 0x55cccd
mov rcx, qword [rsp + 0x118]
mov rdx, qword [rcx + 0x28]
cmp rax, rdx
ja 0x55ccc6
mov qword [rcx + 0x20], rax
mov rax, qword [0x0088f648]
mov rdx, qword [rsp + 0xb0]
lea rax, [rdx + rax - 1]
mov rdx, qword [rsp + 0xd0]
cmp rax, rdx
ja 0x55ccbf
mov rbx, qword [rsp + 0xc8]
sub rbx, rax
lea rsi, [rbx - 1]
sar rsi, 0x3f
xor rsi, 0xffffffffffffffff
and rsi, rax
mov rdi, qword [rsp + 0x110]
add rsi, rdi
mov qword [rsp], rsi
sub rdx, rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rbx
call fcn.0055c080
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x118]
mov qword [rsp + 0x168], rbx
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rcx
mov qword [rsp + 0x180], rdx
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
call fcn.00429450
ud2
call fcn.00429450
ud2
mov rax, qword [rsp + 0x150]
mov qword [rsp], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
call fcn.0055d170
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rbx
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rax
call fcn.00410240
mov rbx, qword [rsp + 0x118]
jmp 0x55cb9a
mov rsi, rdx
sar rdx, 0x3f
shr rdx, 0x3e
lea rdi, [rdx + rsi]
sar rdi, 2
lea rax, [rdi + rdi*2]
mov rdx, rsi
jmp 0x55cb4b
call fcn.00429450
ud2
call fcn.00429450
ud2
mov rcx, qword [rsp + 0x150]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0x158]
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x160]
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rdi
call fcn.0055d170
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rbx
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
call fcn.00429450
ud2
mov rax, qword [rsp + 0x150]
mov qword [rsp], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x28], rax
call fcn.0055d170
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rbx
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
mov rax, qword [rsp + 0x110]
mov qword [rsp], rax
mov rcx, qword [rsp + 0xd0]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x10], rdx
mov rbx, qword [str._n_____END]
mov rsi, qword [0x0088f648]
mov rdi, qword [0x0088f650]
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rdi
call fcn.004ca7d0
mov rcx, qword [rsp + 0x30]
mov rax, qword [0x0088f648]
add rax, rcx
jmp 0x55c90a
call fcn.00429450
ud2
xor ecx, ecx
jmp 0x55c874
mov qword [rsp + 0x168], 0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x180], rax
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
mov qword [rsp], rdx
mov qword [rsp + 8], rcx
call fcn.00410240
mov rdx, qword [rsp + 0x118]
jmp 0x55c58b
mov qword [rsp], rdx
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 8], rcx
call fcn.00410240
mov rax, qword [rsp + 0x118]
jmp 0x55c536
call fcn.00429450
ud2
mov rax, qword [rsp + 0x150]
mov qword [rsp], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 8], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x10], rax
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x18], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x28], rax
call fcn.0055d170
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], rcx
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
call fcn.00429450
ud2
mov rax, qword [rsp + 0x150]
mov qword [rsp], rax
mov rcx, qword [rsp + 0x158]
mov qword [rsp + 8], rcx
mov rdx, qword [rsp + 0x160]
mov qword [rsp + 0x10], rdx
mov rbx, qword [0x0088f690]
mov rsi, qword [0x0088f688]
mov rdi, qword [str._n_____BEGIN]
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rbx
call fcn.004ca7d0
mov rax, qword [rsp + 0x30]
test rax, rax
jl 0x55d10f
mov rcx, qword [0x0088f688]
add rax, rcx
mov rcx, qword [rsp + 0x158]
cmp rax, rcx
ja 0x55d108
mov rdx, rcx
sub rcx, rax
mov rbx, qword [rsp + 0x160]
mov rsi, rbx
sub rbx, rax
lea r8, [rbx - 1]
sar r8, 0x3f
xor r8, 0xffffffffffffffff
and rax, r8
mov rdi, qword [rsp + 0x150]
add rax, rdi
jmp 0x55c402
call fcn.00429450
ud2
mov qword [rsp + 0x168], 0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x178], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x180], rax
mov rbp, qword [rsp + 0x140]
add rsp, 0x148
ret
call fcn.00429450
ud2
call fcn.00452210
jmp fcn.0055c300