Function at 0x1800235c0
Capabilities:
Encode data using base64

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
push rsi
push r12
sub rsp, 0x88
mov eax, dword [0x180108180]
mov r10d, r9d
mov r11, r8
mov r12, rdx
mov rsi, rcx
test al, 1
jne 0x1800235f3
or eax, 1
mov dword [0x180108180], eax
mov qword [rsp + 0xa0], rbx
lea r8d, [r9 + 0x11]
mov qword [rsp + 0x80], rbp
lea rcx, [0x180000000]
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x60], r15
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x20], r8d
cmp r9d, r8d
jae 0x180023a97
movzx ebp, word [rsp + 0xb8]
lea r8d, [r9 - 0xee]
movzx r14d, word [rsp + 0xb8]
mov edx, 0x4c
mov r15, qword [rsp + 0x38]
mov r13, qword [rsp + 0x38]
movzx edi, word [rsp + 0xb8]
mov rbx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x30], r8d
mov r10d, 0x41
cmp r8d, 0x56
ja case.default.0x18002369c
movzx eax, byte [rcx + r8 + 0x24014]
mov ecx, dword [rcx + rax*4 + 0x23fcc]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
movzx ecx, bp
sub cx, r14w
mov word [rsp + 0x40], cx
jmp case.0x18002369c.17
mov eax, dword [str.BCDE]
mov dword [0x180108135], 0x484746
mov dword [0x180108131], eax
mov dword [0x180108138], 0x4b4a49
jmp case.0x18002369c.17
movzx eax, word [r11 + 0x11a]
sub ax, word [r11 + 0x118]
mov word [rsp + 0x44], ax
jmp case.0x18002369c.17
xor eax, eax
mov ebp, eax
jmp case.0x18002369c.17
lea rcx, [0x180108130]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x180023701
movzx eax, word [0x1800e7884]
mov word [rcx], ax
mov eax, 0x4e
mov word [0x18010813d], ax
jmp case.0x18002369c.17
mov r10d, dword [r11]
lea r9, [0x1800dc5d0]
xor eax, eax
mov edx, 0xffffffff
mov r8d, eax
nop word [rax + rax]
cmp r10d, dword [r9]
jne 0x18002377c
mov ecx, 0xdc
nop word [rax + rax]
mov eax, ecx
sub eax, 0xdc
je 0x18002376f
sub eax, 1
je 0x180023769
cmp eax, 1
je case.0x18002369c.8
jmp 0x180023772
mov dword [rsp + 0x50], edx
jmp 0x180023772
mov edx, r8d
inc ecx
cmp ecx, 0xdf
jb 0x180023750
inc r8d
add r9, 0x32c
cmp r8d, 0x2b
jl 0x180023740
mov dword [rsp + 0x50], edx
mov r8d, dword [rsp + 0x30]
mov r9d, dword [rsp + 0x48]
mov edx, 0x4c
jmp case.0x18002369c.17
mov r9, qword [r11]
lea r8, [r9 - 8]
test r9, r9
je 0x1800237bc
mov ecx, dword [r8]
mov eax, dword [r12]
lea ecx, [rax + rcx*2]
jmp 0x1800237c2
mov ecx, dword [r12]
inc ecx
mov eax, dword [rsi]
imul eax, ecx
mov dword [rsp + 0x28], ecx
movsxd rdx, eax
mov eax, 0
add rdx, 8
test r9, r9
cmove r8, rax
mov rcx, r8
call fcn.1800b16ec
mov r8d, dword [rsp + 0x30]
mov r13, rax
mov r9d, dword [rsp + 0x48]
mov edx, 0x4c
mov r11, qword [rsp + 0xb0]
jmp case.0x18002369c.17
mov eax, dword [r12]
mov dword [r11 + 0x344], eax
jmp case.0x18002369c.17
movzx eax, word [rsi]
xor ecx, ecx
cmp cx, ax
jae case.0x18002369c.17
mov rdx, r12
mov r8d, eax
nop dword [rax]
movzx ecx, word [rdx]
lea rdx, [rdx + 2]
cmp cx, r14w
movzx eax, cx
cmovge ax, r14w
cmp cx, bp
movzx r14d, ax
cmovle cx, bp
movzx ebp, cx
sub r8, 1
jne 0x180023830
mov r8d, dword [rsp + 0x30]
mov edx, 0x4c
jmp case.0x18002369c.17
mov word [0x18010813b], dx
jmp case.0x18002369c.17
mov rax, qword [rsp + 0xb0]
mov r11, 0xffffffffffffffff
inc r11
cmp byte [rax + r11], 0
jne 0x180023881
inc r11
mov r10d, 0x121
mov qword [rsp + 0x38], r11
nop dword [rax]
cmp r10d, 0xba
je 0x180023902
cmp r10d, 0x1e1
jne 0x18002393a
mov rcx, r11
call qword [r12 + 8]
mov rbx, rax
mov r11, qword [rsp + 0xb0]
mov r15, rbx
test rbx, rbx
je 0x180023790
mov rdx, rbx
mov rcx, r11
sub rdx, r11
nop
movzx eax, byte [rcx]
mov byte [rdx + rcx], al
lea rcx, [rcx + 1]
test al, al
jne 0x1800238e0
mov r8d, dword [rsp + 0x30]
mov edx, 0x4c
mov r9d, dword [rsp + 0x48]
jmp case.0x18002369c.17
xor r15d, r15d
mov r8d, r15d
cmp dword [0], r15d
jle 0x18002393a
lea r9, [rsp + 0x38]
mov rdx, r12
sub r9, r12
nop dword [rax]
mov ecx, dword [r9 + rdx]
mov rax, rdx
sub rax, r12
inc r8d
sub ecx, dword [rax]
mov dword [rdx], ecx
add rdx, 4
cmp r8d, dword [r15]
jl 0x180023920
add r10d, 0xc0
cmp r10d, 0x361
jb 0x1800238a0
jmp 0x1800238c1
xor eax, eax
mov r14d, eax
jmp case.0x18002369c.17
movzx ecx, word [rsp + 0x40]
cmp cx, word [rsp + 0x44]
jle 0x180023978
test cx, cx
jle 0x180023978
mov byte [r11 + 0x54], 1
jmp case.0x18002369c.17
movsx edx, word [r11 + 0x116]
movsx eax, word [r11 + 0x11a]
movsx ecx, bp
add ecx, edx
cmp ecx, eax
jle 0x180023a04
mov edx, 0x43
xor r8d, r8d
nop dword [rax]
cmp edx, 0x43
je 0x1800239d2
cmp edx, 0x1dd6
jne 0x1800239ea
movzx ecx, r8w
cmp r8w, word [rsi]
jae 0x1800239ea
nop word [rax + rax]
movzx eax, cx
inc cx
sub word [r12 + rax*2], di
cmp cx, word [rsi]
jb 0x1800239c0
jmp 0x1800239ea
movzx edi, word [r11 + 0x116]
sub di, word [r11 + 0x11a]
add di, bp
mov byte [r11 + 0x54], 1
add edx, 0x1d93
cmp edx, 0x3b26
jbe 0x1800239a0
mov r8d, dword [rsp + 0x30]
mov edx, 0x4c
jmp case.0x18002369c.17
movsx eax, word [r11 + 0x118]
movsx ecx, r14w
add ecx, edx
cmp ecx, eax
jge 0x180023a57
movzx edx, word [r11 + 0x118]
xor eax, eax
sub dx, word [r11 + 0x116]
movzx ecx, ax
sub dx, r14w
mov byte [r11 + 0x54], 1
cmp ax, word [rsi]
jae 0x18002379a
nop dword [rax]
movzx eax, cx
inc cx
add word [r12 + rax*2], dx
cmp cx, word [rsi]
jb 0x180023a40
mov edx, 0x4c
jmp case.0x18002369c.17
mov byte [r11 + 0x54], 0
mov edx, 0x4c
jmp case.0x18002369c.17
mov word [0x180108130], r10w
mov eax, dword [rsp + 0x20]
lea rcx, [0x180000000]
inc r9d
inc r8d
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x30], r8d
cmp r9d, eax
jb 0x180023672
mov r10d, dword [rsp + 0xb8]
lea eax, [r10 + 0x80]
cmp r10d, eax
jae case.0x18002369c.8
mov r9, qword [0x180108178]
lea r13d, [r10 - 0x132]
mov rbx, qword [rsp + 0x38]
mov r10d, 0x6b
mov r14, qword [rsp + 0x38]
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x38]
mov ebp, dword [rsp + 0xb8]
mov esi, dword [rsp + 0xb8]
lea r8d, [r10 - 3]
mov r15d, dword [rsp + 0xb8]
lea eax, [r10 - 0x5b]
mov qword [rsp + 0x28], 0x10
nop dword [rax + rax]
cmp r13d, 0x78
ja case.default.0x180023b24
movzx eax, byte [rcx + r13 + 0x240b0]
mov ecx, dword [rcx + rax*4 + 0x2406c]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov rax, r15
jmp 0x180023f9a
test r13, r13
je 0x180023b76
mov edx, dword [rsp + 0x28]
mov ecx, 0x1b
nop
cmp ecx, 0x1b
je 0x180023b55
cmp ecx, 0xb6
jne 0x180023b68
mov rax, qword [r11]
mov dword [rax - 8], edx
jmp 0x180023b68
cmp qword [r11], 0
jne 0x180023b61
xor eax, eax
mov dword [r13 + 4], eax
lea rax, [r13 + 8]
mov qword [r11], rax
add ecx, 0x9b
cmp ecx, 0x151
jb 0x180023b40
mov rax, qword [r11]
jmp 0x180023f9a
cmp qword [r12 + 0x18], 0x10
mov rbx, r12
jb 0x180023b8d
mov rbx, qword [r12]
mov rax, rdx
mul qword [r11 + 0x10]
shr rdx, 1
lea rcx, [rdx + rdx*2]
mov qword [rsp + 0x48], rcx
jmp 0x180023f6c
mov dword [0x180108148], 0x615a59
lea rdx, [0x1800e7fb8]
mov r8d, 2
lea rcx, [0x18010814b]
call fcn.1800b1570
mov r11, qword [rsp + 0xb0]
mov r9, qword [0x180108178]
mov r8d, 0x68
lea r10d, [r8 + 3]
jmp 0x180023f6c
mov r8d, 0xa
lea rdx, [0x180108169]
lea ecx, [r8 - 5]
call fcn.1800b1cc0
mov r8d, 0xa
lea rdx, [0x18010816a]
lea ecx, [r8 - 4]
call fcn.1800b1d40
jmp 0x180023bc8
mov rcx, qword [r11 + 0x10]
mov rax, rdx
add rcx, 2
mul rcx
mov rax, rdx
shr rax, 1
shl rax, 2
mov qword [rsp + 0x38], rax
jmp 0x180023f6c
movups xmm0, xmmword [str.mnopqrstuvwxyz0]
mov r8d, 0xa
lea rdx, [0x180108165]
mov ecx, 0x4d2
movups xmmword [0x180108156], xmm0
call fcn.1800b1d40
jmp 0x180023bc8
mov r8d, 1
lea rdx, [0x1800e7fd0]
lea rcx, [0x180108130]
call fcn.1800b13c0
jmp 0x180023bc8
mov r8d, 2
mov dword [0x18010813e], 0x51504f
lea rdx, [0x1800e7fd4]
lea rcx, [0x180108141]
call fcn.1800b1570
mov r8d, 3
lea rdx, [0x1800e7fd8]
lea rcx, [0x180108142]
jmp 0x180023bc3
lea r9, [0x180108130]
mov qword [0x180108178], r9
jmp case.0x180023b24.16
cmp r14, qword [r11 + 0x10]
jae case.0x180023b24.16
mov edx, 4
xor r10d, r10d
nop
cmp edx, 4
je 0x180023d6f
cmp edx, 0x268
je 0x180023d6a
cmp edx, 0x4cc
je 0x180023d58
cmp edx, 0x730
je 0x180023d11
cmp edx, 0x994
jne 0x180023d85
mov byte [rbx], 0x3d
inc rbx
jmp 0x180023d85
mov ecx, ebp
mov eax, esi
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
lea rax, [r14 + 1]
movzx ecx, byte [rcx + r9]
mov byte [rbx], cl
cmp rax, qword [r11 + 0x10]
jae 0x180023d4d
mov eax, r15d
mov ecx, esi
shr eax, 6
and ecx, 0xf
lea eax, [rax + rcx*4]
movzx eax, byte [rax + r9]
mov byte [rbx + 1], al
add rbx, 2
jmp 0x180023d85
mov al, 0x3d
mov byte [rbx + 1], al
add rbx, 2
jmp 0x180023d85
mov eax, ebp
shr rax, 2
movzx eax, byte [rax + r9]
mov byte [rbx], al
inc rbx
jmp 0x180023d85
mov r15d, r10d
jmp 0x180023d85
movzx ebp, byte [rdi]
lea rax, [r14 + 1]
cmp rax, qword [r11 + 0x10]
jae 0x180023d82
movzx esi, byte [rdi + 1]
jmp 0x180023d85
mov esi, r10d
add edx, 0x264
cmp edx, 0xbf4
jbe 0x180023ce0
mov r10d, 0x6b
jmp 0x180023f6c
mov r8d, 4
lea rdx, [0x1800e7fdc]
lea rcx, [0x180108144]
call fcn.1800b1570
mov eax, 0x58
mov word [0x180108147], ax
jmp 0x180023bc8
movzx eax, word [0x1800e7fe0]
mov word [0x180108152], ax
mov word [0x180108154], r10w
jmp case.0x180023b24.16
mov rdx, qword [rsp + 0x38]
xor r8d, r8d
mov rcx, r12
call fcn.1800879e0
mov r11, qword [rsp + 0xb0]
mov rdi, r11
cmp qword [r11 + 0x18], 0x10
jb 0x180023bd0
mov rdi, qword [r11]
jmp 0x180023bd0
mov r8d, 1
lea rdx, [0x1800e7fe4]
lea rcx, [0x180108130]
call fcn.1800b13c0
mov r8d, 4
lea rdx, str.defg
lea rcx, [0x180108130]
call fcn.1800b13c0
jmp 0x180023bc8
mov rcx, qword [rsp + 0x48]
xor eax, eax
mov r14d, eax
test rcx, rcx
je case.0x180023b24.16
mov rax, rdx
dec rcx
mul rcx
shr rdx, 1
inc rdx
lea r14, [rdx + rdx*2]
mov r8d, 4
mov eax, r8d
sub eax, 4
je 0x180023ed6
sub eax, 0x6c
je 0x180023e9e
sub eax, 0x6c
je 0x180023e95
cmp eax, 0x6c
jne 0x180023ee7
add rdi, 3
jmp 0x180023ee7
movzx eax, byte [rdi + 2]
and eax, 0x3f
jmp 0x180023edd
movzx ecx, byte [rdi]
movzx eax, byte [rdi + 1]
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
movzx ecx, byte [rcx + r9]
mov byte [rbx], cl
movzx eax, byte [rdi + 1]
movzx ecx, byte [rdi + 2]
and eax, 0xf
shr ecx, 6
lea eax, [rcx + rax*4]
movzx eax, byte [rax + r9]
mov byte [rbx + 1], al
add rbx, 2
jmp 0x180023ee7
movzx eax, byte [rdi]
shr rax, 2
movzx eax, byte [rax + r9]
mov byte [rbx], al
inc rbx
add r8d, 0x6c
cmp r8d, 0x1b0
jbe 0x180023e78
sub rdx, 1
jne 0x180023e72
jmp 0x180023f66
mov word [0x180108151], r8w
jmp case.0x180023b24.16
mov r8d, 0xa
lea rdx, [0x18010816b]
lea ecx, [r8 - 3]
call fcn.1800b1cc0
mov r8d, 0xa
lea rdx, [0x18010816c]
lea ecx, [r8 + 0x4f]
call fcn.1800b1d40
movzx eax, word [0x1800e7ff0]
mov r10d, 0x6b
mov r9, qword [0x180108178]
mov r11, qword [rsp + 0xb0]
mov word [0x18010816e], ax
movzx eax, byte [0x1800e7ff2]
mov byte [0x180108170], al
mov r8d, 0x68
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rax, qword [rsp + 0x28]
add r13d, 8
lea rcx, [0x180000000]
sub rax, 1
mov qword [rsp + 0x28], rax
jne 0x180023b00
mov rax, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x80]
mov rbx, qword [rsp + 0xa0]
add rsp, 0x88
pop r12
pop rsi
ret