Function at 0x18051a8a7
Capabilities:
Encode data using base64

Disassembly:
push rbp
and rax, rbx
push rsi
mov ebp, 0x7ddf4e8d
shr bpl, 0x3f
push rdi
cmc
push r12
sar r12w, 0x91
lahf
btr di, 0x21
push r13
push r14
sal bp, cl
sbb r12b, r10b
push r15
btr r14w, cx
not r14b
lea rbp, [rsp - 0x290]
sub r13w, r13w
sub rsp, 0x390
mov qword [rsp + 0x50], 0xfffffffffffffffe
clc
mov qword [rsp + 0x3d8], rbx
movzx edi, r8w
mov rax, qword [0x18001c010]
shld r14d, r14d, 0x2f
xor rax, rsp
movsxd r13, r9d
xadd r13b, r15b
bsf r14d, esi
mov qword [rbp + 0x280], rax
mov r12w, dx
mov rdi, r9
mov r15, r8
sar r13b, cl
mov r13, rcx
ror cx, 0x9d
xchg bl, r12b
test r15w, 0x7217
mov r14, qword [rbp + 0x2f0]
movsxd rbx, r15d
mov r12, qword [rbp + 0x300]
movsx ecx, si
cdqe
lea rcx, vtable.plog::Record.0
sub esi, esi
bts rbx, rdx
sal ax, cl
shl al, 0x67
lea rbx, str.iTunesGsaAPI::iTunesGsaPro::SRPPassword
mov rax, qword [0x18001cf80]
cmc
clc
test rax, rax
je 0x18051ab10
cmp dword [rax + 8], 4
jmp 0x18051a98b
jl 0x18051ab10
mov qword [rbp + 0xd0], rcx
jmp 0x18051a99d
mov dword [rbp + 0xe8], 4
jmp 0x18051a9ac
call 0x1802ef944
mov dword [rbp + 0xec], eax
mov qword [rbp + 0xf0], rsi
movsx ecx, dx
movsx cx, bh
not cl
mov qword [rbp + 0xf8], 0x144
not ch
mov cx, 0x5335
movsx cx, r10b
lea rcx, [rbp + 0x100]
jmp 0x18051a9ea
call fcn.18000c720
mov qword [rbp + 0x1e8], rbx
movsxd rax, r8d
lahf
cwde
lea rax, [0x1800147f9]
mov qword [rbp + 0x1f0], rax
jmp 0x18051aa0e
mov dword [rbp + 0x1f8], esi
movdqa xmm0, xmmword [0x1800158b0]
movdqa xmmword [rbp + 0x210], xmm0
mov byte [rbp + 0x200], sil
movdqa xmm1, xmmword [0x1800158a0]
movdqa xmmword [rbp + 0x230], xmm1
mov word [rbp + 0x220], si
movzx rcx, sp
lea rcx, [rbp + 0xd8]
call 0x1800c0419
nop
lea rdx, str.Enter
setne ch
jmp 0x18051aa63
lea rcx, [rbp + 0x100]
jmp 0x18051aa6f
call fcn.180003200
mov rsi, qword [0x18001cf80]
stc
rcr bl, 0
mov rbx, qword [rsi + 0x10]
cmp rbx, qword [rsi + 0x18]
jmp 0x18051aa8c
je 0x18051aada
nop dword [rax]
mov eax, r11d
cwd
nop dword [rax + rax]
movzx rax, r9w
mov rcx, qword [rbx]
mov al, 0xec
mov rax, qword [rcx]
movsx edx, r12w
jmp 0x18051aab8
lea rdx, [rbp + 0xd0]
jmp 0x18051aac4
call qword [rax + VariantCopy]
add rbx, 8
cmp rbx, qword [rsi + 0x18]
jmp 0x18051aad4
jne 0x18051aaa7
lea rcx, [rbp + 0xd0]
call fcn.180003740
mov rax, qword [0x18001cf80]
xor esi, esi
sbb cx, r12w
lea rcx, vtable.plog::Record.0
movsx bx, bpl
btc bx, 0xc5
btr bx, 0x3d
lea rbx, str.iTunesGsaAPI::iTunesGsaPro::SRPPassword
test r15, r15
jmp 0x18051ab18
je 0x18051af03
test rdi, rdi
jmp 0x18051ab26
je 0x18051af03
test r14, r14
jmp 0x18051ab34
je 0x18051af03
test r12, r12
jmp 0x18051ab42
je 0x18051af03
mov ebx, dword [rbp + 0x310]
mov r8, 0xffffffffffffffff
test ebx, ebx
jmp 0x18051ab5c
jne 0x18051adc8
inc r8
cmp byte [rdi + r8], 0
jmp 0x18051ab6f
jne 0x18051ab62
mov r9, r8
cmovp rax, rcx
mov byte [rsp + 0x40], 0
cqo
movsx ax, sil
mov eax, dword [rbp + 0x308]
cdq
cwd
movzx r8d, r10w
mov dword [rsp + 0x38], eax
cmovnp edx, r14d
jmp 0x18051aba4
mov qword [rsp + 0x30], r12
cqo
mov eax, dword [rbp + 0x2f8]
movzx r8, r11w
mov dword [rsp + 0x28], eax
cqo
movzx rcx, bp
movsx cx, bl
mov r8, rdi
bswap rcx
mov qword [rsp + 0x20], r14
cdq
mov rdx, r15
mov rcx, r13
jmp 0x18051abda
call fcn.18051b07b
mov rax, qword [0x18001cf80]
lea r14, [0x1800147f9]
cmp r8, 0x5cd74abf
cmp esp, esi
test ebp, 0x74854892
test rax, rax
jmp 0x18051ac04
je 0x18051ad78
cmp dword [rax + 8], 4
jmp 0x18051ac13
jl 0x18051ad78
lea rax, vtable.plog::Record.0
jmp 0x18051ac25
mov qword [rsp + 0x60], rax
jmp 0x18051ac2f
mov dword [rsp + 0x78], 4
jmp 0x18051ac3c
call 0x18032ae84
mov dword [rsp + 0x7c], eax
xchg cx, cx
movsx ecx, sp
mov cl, r10b
mov qword [rbp - 0x80], rsi
movzx cx, dh
mov qword [rbp - 0x78], 0x160
bswap cx
movsxd rcx, ebx
movsx rcx, si
lea rcx, [rbp - 0x70]
call fcn.18000c720
lea rax, str.iTunesGsaAPI::iTunesGsaPro::SRPPassword
jmp 0x18051ac7e
mov qword [rbp + 0x78], rax
mov qword [rbp + 0x80], r14
jmp 0x18051ac8e
mov dword [rbp + 0x88], esi
jmp 0x18051ac99
movdqa xmm0, xmmword [0x1800158b0]
movdqa xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
movdqa xmm1, xmmword [0x1800158a0]
movdqa xmmword [rbp + 0xc0], xmm1
mov word [rbp + 0xb0], si
movsx ecx, si
movsx cx, dil
xchg cx, cx
lea rcx, [rsp + 0x68]
jmp 0x18051acdc
call 0x1801b9bbe
nop
bswap rdx
cdq
lea rdx, str.Leave
bswap ecx
movsx cx, r14b
lea rcx, [rbp - 0x70]
call fcn.180003200
mov rdi, qword [0x18001cf80]
mov rbx, qword [rdi + 0x10]
jmp 0x18051ad12
cmp rbx, qword [rdi + 0x18]
jmp 0x18051ad1b
je 0x18051ad69
nop dword [rax + rax]
movsx ax, al
cbw
mov rcx, qword [rbx]
movsx dx, r8b
movsx eax, r8w
movzx edx, r14w
mov rax, qword [rcx]
sete dl
xchg dx, dx
movsx edx, r13w
lea rdx, [rsp + 0x60]
jmp 0x18051ad53
call qword [rax + VariantCopy]
add rbx, 8
cmp rbx, qword [rdi + 0x18]
jmp 0x18051ad63
jne 0x18051ad2c
lea rcx, [rsp + 0x60]
jmp 0x18051ad73
call fcn.180003740
mov rcx, qword [rbp + 0x280]
cmp eax, r8d
cmp r8b, 0xa4
xor rcx, rsp
jmp 0x18051ad8e
call fcn.180011320
mov rbx, qword [rsp + 0x3d8]
add rsp, 0x390
cmovp r12w, di
movsxd r14, esp
movsx r12d, cx
pop r15
pop r14
pop r13
movzx r12d, r9w
pop r12
pop rdi
movsxd rsi, edi
movsx rbp, bx
pop rsi
bswap bp
pop rbp
ret
sub eax, eax
jmp 0x18051adcf
mov qword [rbp + 0x240], rax
mov qword [rbp + 0x248], rax
jmp 0x18051ade2
mov qword [rbp + 0x250], rax
mov qword [rbp + 0x258], rax
nop word [rax + rax]
jmp 0x18051adfb
inc r8
cmc
cmp byte [rdi + r8], al
jmp 0x18051ae08
jne 0x18051adfb
lea r9, [rbp + 0x240]
mov rdx, rdi
bswap rcx
movzx rcx, r11w
not cl
mov rcx, r13
call sym.iTunesGsaPro.dll_private:_void___cdecl_iTunesGsaAPI::iTunesGsaPro::CalculateSHA256_void_const____ptr64__unsigned_long_long_unsigned___int64___unsigned_char____ptr64____ptr64
xor eax, eax
mov qword [rbp + 0x260], rax
mov qword [rbp + 0x268], rax
jmp 0x18051ae3e
mov qword [rbp + 0x270], rax
jmp 0x18051ae4a
mov qword [rbp + 0x278], rax
jmp 0x18051ae56
call 0x18015582b
lea rcx, [rbp + 0x260]
movzx rdx, si
mov r9w, 0x3a02
mov qword [rsp + 0x38], rcx
movzx rcx, ax
cdq
mov dword [rsp + 0x30], 0x20
bswap rcx
mov qword [rsp + 0x28], rax
xchg cx, r8w
mov dh, 0x23
mov dword [rsp + 0x20], ebx
movsx bx, sil
mov ebx, dword [rbp + 0x2f8]
mov r9d, ebx
mov r8, r14
mov edx, 0x20
lea rcx, [rbp + 0x240]
jmp 0x18051aeb3
call 0x1801bb953
mov byte [rsp + 0x40], 1
movsx r9w, r11b
mov eax, dword [rbp + 0x308]
mov dword [rsp + 0x38], eax
movsxd r9, ebx
mov qword [rsp + 0x30], r12
movzx r9w, bpl
mov dword [rsp + 0x28], ebx
movzx r9d, sp
mov r9d, 0x20
mov r8b, al
bswap r8d
movzx r8d, r8w
lea r8, [rbp + 0x260]
jmp 0x18051aefe
jmp 0x18051abc9
test rax, rax
je 0x18051ad78
cmp dword [rax + 8], 4
jmp 0x18051af15
jl 0x18051abe6
mov qword [rsp + 0x60], rcx
jmp 0x18051af25
mov dword [rsp + 0x78], 4
jmp 0x18051af32
call 0x1802b38f0
mov dword [rsp + 0x7c], eax
movzx rcx, sp
mov qword [rbp - 0x80], rsi
mov rcx, r9
movzx cx, ch
mov qword [rbp - 0x78], 0x14a
not cx
mov ecx, 0x38e07161
movsx ecx, cx
lea rcx, [rbp - 0x70]
call fcn.18000c720
mov qword [rbp + 0x78], rbx
cmovs r14w, r12w
lea r14, [0x1800147f9]
jmp 0x18051af7c
mov qword [rbp + 0x80], r14
jmp 0x18051af88
mov dword [rbp + 0x88], esi
jmp 0x18051af93
movdqa xmm0, xmmword [0x1800158b0]
movdqa xmmword [rbp + 0xa0], xmm0
mov byte [rbp + 0x90], 0
jmp 0x18051afaf
movdqa xmm1, xmmword [0x1800158a0]
movdqa xmmword [rbp + 0xc0], xmm1
mov word [rbp + 0xb0], si
lea rcx, [rsp + 0x68]
jmp 0x18051afd0
call 0x18036844c
nop
movsxd rdx, r15d
lea rdx, str.SRPPassword::_Parameter_Missing
mov ch, 0xad
movsx rcx, r8w
not ecx
lea rcx, [rbp - 0x70]
jmp 0x18051aff3
call fcn.180003200
mov rdi, qword [0x18001cf80]
rol bx, cl
mov rbx, qword [rdi + 0x10]
cmp rbx, qword [rdi + 0x18]
jmp 0x18051b00f
je 0x18051b05b
nop word [rax + rax]
mov rcx, qword [rbx]
movsx rax, sp
movsxd rdx, esp
movzx edx, r10w
mov rax, qword [rcx]
cdq
cwd
movsx edx, sp
lea rdx, [rsp + 0x60]
jmp 0x18051b040
call qword [rax + VariantCopy]
add rbx, 8
cmp dl, sil
clc
cmc
cmp rbx, qword [rdi + 0x18]
jmp 0x18051b055
jne 0x18051b01f
lea rcx, [rsp + 0x60]
jmp 0x18051b065
call fcn.180003740
mov rax, qword [0x18001cf80]
jmp 0x18051b076
jmp 0x18051abfc