Function at 0x14001ad90
Capabilities:
Encode data using base64

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
lea rax, [rcx + 0x58]
mov r13, rcx
mov rsi, rdx
xor edx, edx
mov r14, r8
mov dword [rbp + 0xc0], edx
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], rdx
mov byte [rcx + 0x20], dl
mov qword [rcx + 0x28], rdx
mov qword [rcx + 0x30], rdx
mov qword [rcx + 0x38], rdx
mov qword [rcx + 0x40], rax
mov qword [rcx + 0x50], 1
mov qword [rcx + 0x48], rdx
mov word [rax], dx
mov rax, qword [r13 + 0x50]
mov edi, edx
mov ecx, edx
test rax, rax
jne 0x14001adff
lea rcx, [rax - 1]
mov ecx, edx
jmp 0x14001ae07
mov rax, qword [r13 + 0x40]
mov word [rax + rcx*2], dx
mov qword [r13 + 0x48], rcx
mov rcx, qword [rsi]
xor r9d, r9d
mov rax, qword [rcx]
xor r8d, r8d
call qword [rax + 0x18]
mov rcx, qword [rsi]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x10]
cmp rax, 0x4000
jg 0x14001b5fc
lea rcx, [rbp + 0x48]
mov rdx, r14
mov qword [rsp + 0x1d0], r12
call fcn.140015540
lea r8, str..img
lea rcx, [rbp + 0x10]
mov rdx, rax
call fcn.140006c70
or r12, 0xffffffffffffffff
lea rcx, [r13 + 0x40]
mov r9, r12
xor r8d, r8d
mov rdx, rax
call fcn.140005670
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x14001ae85
lea rax, [rbp + 0x28]
cmp rcx, rax
je 0x14001ae85
call fcn.140022b00
mov rcx, qword [rbp + 0x48]
test rcx, rcx
je 0x14001ae9c
lea rax, [rbp + 0x60]
cmp rcx, rax
je 0x14001ae9c
call fcn.140022b00
lea rcx, [r13 + 0x40]
call fcn.140019270
test al, al
je 0x14001b5df
mov ecx, 0x88
call fcn.1400229d0
test rax, rax
je 0x14001aefa
mov rbx, qword [rsi]
mov qword [rsp + 0x48], rbx
test rbx, rbx
je 0x14001aedb
mov rcx, qword [rbx + 8]
movsxd rdx, dword [rcx + 4]
lock inc dword [rdx + rbx + 0x10]
mov rbx, qword [rsp + 0x48]
lea rdx, [rsp + 0x48]
mov rcx, rax
mov edi, 1
call fcn.14001bb60
xor r14d, r14d
mov rsi, rax
mov qword [rsp + 0x30], rax
jmp 0x14001af0a
mov rbx, qword [rsp + 0x48]
xor r14d, r14d
mov esi, r14d
mov qword [rsp + 0x30], r14
test dil, 1
je 0x14001af50
test rbx, rbx
je 0x14001af50
mov rax, qword [rbx + 8]
add rbx, 8
movsxd rcx, dword [rax + 4]
add rbx, rcx
lock dec dword [rbx + 8]
jne 0x14001af50
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14001af3f
mov rdx, rbx
call fcn.140001ad0
test al, al
je 0x14001af50
mov qword [rbx + 0x10], r14
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
test rsi, rsi
je 0x14001b5df
movzx ebx, byte [rbp + 0xc0]
lea r11, [rsp + 0x68]
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x50], r11
mov qword [rsp + 0x60], 1
mov byte [rsp + 0x68], 0
mov dword [rbp + 0xd8], r14d
mov dword [rbp + 0xc8], r14d
nop dword [rax + rax]
cmp byte [rsi + 0x24], 0
je 0x14001afa2
cmp qword [rsi + 0x18], 1
mov eax, 1
jbe 0x14001afa5
mov eax, r14d
test al, al
jne 0x14001b583
lea rdx, [rbp - 0x18]
mov rcx, rsi
call fcn.14001bca0
lea rcx, [rsp + 0x50]
mov rdx, rax
call fcn.14001a440
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14001afdd
lea rax, [rbp]
cmp rcx, rax
je 0x14001afdd
call fcn.140022b00
mov rdi, qword [rsp + 0x58]
test rdi, rdi
je 0x14001b563
mov r11, qword [rsp + 0x50]
mov rax, r11
cmove rax, r14
cmp byte [rax], 0x5b
jne 0x14001b01d
lea r8, [rbp + 0xc8]
lea rdx, [rsp + 0x50]
call fcn.14001ac00
mov r11, qword [rsp + 0x50]
mov dword [rbp + 0xd8], eax
jmp 0x14001af90
mov byte [rbp + 0xc0], 0x3d
test rdi, rdi
je 0x14001af90
mov r8, rdi
cmp rdi, 1
jb 0x14001af90
mov rcx, r11
mov rax, rdi
mov rdx, rcx
test rdi, rdi
je 0x14001af90
nop dword [rax]
cmp byte [rdx], 0x3d
je 0x14001b062
inc rdx
dec rax
jne 0x14001b050
jmp 0x14001af90
sub rdx, r11
cmp edx, 0xffffffff
je 0x14001af90
movsxd r14, edx
cmp r14, 0xffffffffffffffff
jne 0x14001b07c
mov r14, rdi
jmp 0x14001b083
cmp r14, rdi
cmovae r14, rdi
test r14, r14
je 0x14001b0ca
lea r9, [r11 + r14]
mov r10, r11
cmp r11, r9
jae 0x14001b0ca
nop dword [rax]
nop dword [rax + rax]
movzx r8d, byte [r10]
mov ecx, 2
lea rax, [0x140037d94]
cmp byte [rax], r8b
je 0x14001b0c2
inc rax
dec rcx
jne 0x14001b0b0
sub r10, r11
jmp 0x14001b0cd
inc r10
cmp r10, r9
jb 0x14001b0a0
mov r10, r12
test r14, r14
je 0x14001b162
mov rax, r12
cmp r14, 0xffffffffffffffff
ja 0x14001b0e3
lea rax, [r14 - 1]
lea r8, [r11 + rax]
nop word [rax + rax]
movzx r9d, byte [r8]
mov ecx, 2
lea rax, [0x140037d94]
cmp byte [rax], r9b
je 0x14001b13c
inc rax
dec rcx
jne 0x14001b100
sub r8, r11
cmp r8d, 0xffffffff
je 0x14001b162
sub r8d, r10d
movsxd rcx, r10d
inc r8d
movsxd r9, r8d
cmp rcx, r14
jb 0x14001b146
xor r8d, r8d
mov esi, r8d
mov qword [rsp + 0x38], r8
mov r14d, r8d
mov qword [rsp + 0x40], r8
jmp 0x14001b17e
cmp r8, r11
je 0x14001b162
dec r8
jmp 0x14001b0f0
sub r14, rcx
cmp r9, 0xffffffffffffffff
je 0x14001b15c
mov rax, r14
mov r14, r9
cmp r9, rax
cmovae r14, rax
lea rsi, [r11 + rcx]
jmp 0x14001b171
movsxd rax, r10d
cmp rax, r14
jae 0x14001b127
sub r14, rax
lea rsi, [r11 + rax]
xor r8d, r8d
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x38], rsi
lea eax, [rdx + 1]
movsxd rcx, eax
cmp rcx, rdi
jb 0x14001b1db
mov r10, r8
mov qword [rbp - 0x58], r8
mov rdi, r8
mov qword [rbp - 0x50], r8
mov r9, r12
test rdi, rdi
je 0x14001b1cf
mov rax, r12
cmp rdi, 0xffffffffffffffff
ja 0x14001b1ac
lea rax, [rdi - 1]
lea r8, [rax + r10]
movzx edx, byte [r8]
mov ecx, 2
lea rax, [0x140037d94]
cmp byte [rax], dl
je 0x14001b231
inc rax
dec rcx
jne 0x14001b1c0
sub r8, r10
movsxd rax, r9d
cmp rax, rdi
jb 0x14001b23e
xor ecx, ecx
jmp 0x14001b242
lea r10, [r11 + rcx]
sub rdi, rcx
mov qword [rbp - 0x58], r10
mov qword [rbp - 0x50], rdi
je 0x14001b197
lea r8, [rdi + r10]
mov r9, r10
cmp r10, r8
jae 0x14001b197
nop dword [rax + rax]
movzx edx, byte [r9]
mov ecx, 2
lea rax, [0x140037d94]
cmp byte [rax], dl
je 0x14001b224
inc rax
dec rcx
jne 0x14001b210
sub r9, r10
jmp 0x14001b19a
inc r9
cmp r9, r8
jb 0x14001b200
jmp 0x14001b197
cmp r8, r10
je 0x14001b1cf
dec r8
jmp 0x14001b1b0
lea rcx, [rax + r10]
call qword [sym.imp.ntoskrnl.exe_atoi]
mov edi, eax
test r14, r14
je 0x14001b55b
mov edx, dword [rbp + 0xd8]
dec edx
je 0x14001b525
dec edx
je 0x14001b4ba
sub edx, 2
je 0x14001b3c1
dec edx
jne 0x14001b55b
mov r8d, 4
lea rdx, str.mode
mov rcx, rsi
cmp r14, r8
cmovb r8, r14
call fcn.140001588
movsxd rcx, eax
test eax, eax
jne 0x14001b2b0
cmp r14, 4
jb 0x14001b55b
cmp r14, 4
setne al
mov ecx, eax
test ecx, ecx
jne 0x14001b55b
mov ecx, dword [rbp + 0xc8]
mov eax, 0x63
dec ecx
cmp ecx, 0x63
cmova ecx, eax
mov rax, qword [r13 + 0x30]
sub rax, qword [r13 + 0x28]
mov r14d, ecx
sar rax, 4
cmp r14, rax
jb 0x14001b365
mov rdx, qword [r13 + 0x30]
mov r8, qword [r13 + 0x28]
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov rax, rdx
sub rax, r8
inc ecx
sar rax, 4
cmp rcx, rax
jae 0x14001b32c
shl rcx, 4
add rcx, r8
cmp rcx, rdx
je 0x14001b365
mov rsi, rdx
sub rsi, rdx
je 0x14001b326
mov r8, rsi
call fcn.140001010
lea rcx, [rsi + rax]
mov qword [r13 + 0x30], rcx
jmp 0x14001b365
sub rcx, rax
je 0x14001b365
mov rax, qword [r13 + 0x38]
sub rax, rdx
sar rax, 4
cmp rax, rcx
jb 0x14001b353
mov r8, rcx
lea r9, [rbp - 0x48]
lea rcx, [r13 + 0x28]
call fcn.14001e210
jmp 0x14001b365
mov qword [rsp + 0x20], rcx
lea r8, [rbp - 0x48]
lea rcx, [r13 + 0x28]
call fcn.14001e0e0
lea rcx, [r13 + 0x28]
mov rdx, r14
call fcn.14001b910
mov rsi, qword [rsp + 0x30]
xor r14d, r14d
mov qword [rax + 4], 0x930
test edi, edi
je 0x14001b3b1
dec edi
je 0x14001b3a1
dec edi
jne 0x14001b563
mov dword [rax], 0x106
mov r11, qword [rsp + 0x50]
jmp 0x14001af90
mov dword [rax], 2
mov r11, qword [rsp + 0x50]
jmp 0x14001af90
mov dword [rax], 1
mov r11, qword [rsp + 0x50]
jmp 0x14001af90
mov r8d, dword [rbp + 0xc8]
mov rcx, qword [r13 + 0x10]
mov eax, 0x63
cmp r8d, 0x63
cmova r8d, eax
sub rcx, qword [r13 + 8]
movabs rax, 0x2aaaaaaaaaaaaaab
mov esi, r8d
imul rcx
sar rdx, 3
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jb 0x14001b48d
xor eax, eax
xor ecx, ecx
lea edx, [r8 + 1]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
movups xmm0, xmmword [rbp - 0x38]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x68], rcx
lea r8, [rsp + 0x78]
movups xmmword [rsp + 0x78], xmm0
movups xmm1, xmmword [rbp - 0x28]
mov byte [rsp + 0x78], al
lea rax, [rsp + 0x78]
mov qword [rbp - 0x80], rcx
movups xmmword [rbp - 0x78], xmm1
mov qword [rbp - 0x78], rax
lea rax, [rsp + 0x78]
lea rcx, [r13 + 8]
mov qword [rbp - 0x70], rax
mov byte [rbp - 0x60], bl
call fcn.14001b7d0
cmp qword [rbp - 0x68], 0
je 0x14001b48d
mov rdx, qword [rbp - 0x80]
lea rcx, [rsp + 0x78]
call fcn.14001c7e0
lea rax, [rsp + 0x78]
xor ecx, ecx
mov qword [rbp - 0x78], rax
lea rax, [rsp + 0x78]
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rcx
lea rcx, [r13 + 8]
mov rdx, rsi
call fcn.14001b700
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.14001cb60
mov rsi, qword [rsp + 0x30]
xor r14d, r14d
mov dword [rax], edi
mov r11, qword [rsp + 0x50]
jmp 0x14001af90
mov r8d, 0xa
lea rdx, str.TocEntries
mov rcx, rsi
cmp r14, r8
cmovb r8, r14
call fcn.140001588
movsxd rcx, eax
test eax, eax
jne 0x14001b4ec
cmp r14, 0xa
jb 0x14001b55b
cmp r14, 0xa
setne al
mov ecx, eax
test ecx, ecx
jne 0x14001b55b
test edi, edi
jns 0x14001b4fc
xor r14d, r14d
mov edi, r14d
jmp 0x14001b50a
cmp edi, 0x63
mov eax, 0x63
cmovg edi, eax
xor r14d, r14d
lea rcx, [r13 + 8]
movsxd rdx, edi
call fcn.14001c850
mov r11, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x30]
jmp 0x14001af90
mov r8d, 7
lea rdx, str.Version
mov rcx, rsi
cmp r14, r8
cmovb r8, r14
call fcn.140001588
movsxd rcx, eax
test eax, eax
jne 0x14001b557
cmp r14, 7
jb 0x14001b55b
cmp r14, 7
setne al
mov ecx, eax
test ecx, ecx
je 0x14001b56d
mov rsi, qword [rsp + 0x30]
xor r14d, r14d
mov r11, qword [rsp + 0x50]
jmp 0x14001af90
mov r11, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x30]
mov dword [r13], edi
xor r14d, r14d
jmp 0x14001af90
mov rax, qword [r13 + 0x30]
cmp qword [r13 + 0x28], rax
je 0x14001b592
mov byte [r13 + 0x20], 1
test r11, r11
je 0x14001b5a9
lea rax, [rsp + 0x68]
cmp r11, rax
je 0x14001b5a9
mov rcx, r11
call fcn.140022b00
mov rax, qword [rsi]
movsxd rbx, dword [rax + 4]
add rbx, rsi
lock dec dword [rbx + 8]
jne 0x14001b5df
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14001b5ce
mov rdx, rbx
call fcn.140001ad0
test al, al
je 0x14001b5df
mov qword [rbx + 0x10], r14
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax]
mov r12, qword [rsp + 0x1d0]
mov rax, r13
add rsp, 0x180
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, r13
jmp 0x14001b5ea