Function at 0x140058ad0
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
mov rax, qword [0x1403acd78]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov eax, dword [r9 + 8]
test eax, eax
jle 0x140058b11
mov r12, r9
mov r15, rdx
mov rsi, rcx
mov rcx, qword [r9]
mov rdx, qword [rcx]
test dl, 1
jne 0x140058b35
mov dword [rsp + 0x20], 0x24e
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r13d, r13d
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x140058ea7
cmp dword [r12 + 0x10], 0
je 0x140058b61
mov dword [rsp + 0x20], 0x252
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r13d, r13d
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
jmp 0x140058ea7
cmp dword [r15 + 0x10], 0
jne 0x140058e88
mov rdi, r8
movsxd r9, dword [r15 + 8]
mov r10, qword [r15]
mov r11, r9
sub r11, rax
mov rbx, rax
cmovb rbx, r9
test rbx, rbx
je 0x140058c06
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rsi
xor r8d, r8d
xor r14d, r14d
nop dword [rax + rax]
mov r13, qword [rcx + r14*8]
mov rsi, qword [r10 + r14*8]
mov r11, rsi
xor r11, r13
mov rbp, rsi
sub rbp, r13
xor rbp, rsi
or rbp, r11
xor rbp, rsi
mov rsi, rbp
not rsi
shr rsi, 0x3f
sar rbp, 0x3f
mov r13d, ebp
or r13, rsi
mov r8d, r8d
test r11, r11
cmovne r8, r13
inc r14
cmp rbx, r14
jne 0x140058ba0
mov rsi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x38]
cmp r9d, eax
jae 0x140058c0e
mov r10, rax
sub r10, r9
cmp r10, 4
jae 0x140058c27
xor r11d, r11d
jmp 0x140058d60
xor r8d, r8d
cmp r9d, eax
jb 0x140058bf2
cmp eax, r9d
jae 0x140058e83
cmp r11, 4
jae 0x140058c51
xor ebx, ebx
mov r14, rax
jmp 0x140058e60
lea rbx, [r10 - 4]
mov r14, rbx
shr r14, 2
inc r14
mov r11d, r14d
and r11d, 3
cmp rbx, 0xc
jae 0x140058c84
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
jmp 0x140058cfc
mov qword [rsp + 0x38], r11
add r11, 0xfffffffffffffffc
mov r14, r11
shr r14, 2
inc r14
mov ebx, r14d
and ebx, 3
cmp r11, 0xc
jae 0x140058d87
pxor xmm0, xmm0
xor r13d, r13d
pxor xmm1, xmm1
jmp 0x140058e00
and r14, 0xfffffffffffffffc
lea r13, [rcx + r9*8]
add r13, 0x70
pxor xmm0, xmm0
xor ebx, ebx
pxor xmm1, xmm1
movdqu xmm2, xmmword [r13 + rbx*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [r13 + rbx*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [r13 + rbx*8 - 0x50]
movdqu xmm3, xmmword [r13 + rbx*8 - 0x40]
movdqu xmm4, xmmword [r13 + rbx*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [r13 + rbx*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [r13 + rbx*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [r13 + rbx*8]
por xmm1, xmm2
add rbx, 0x10
add r14, 0xfffffffffffffffc
jne 0x140058c9a
mov r14, r10
and r14, 0xfffffffffffffffc
test r11, r11
je 0x140058d3e
add rbx, r9
lea rbx, [rcx + rbx*8]
add rbx, 0x10
shl r11, 5
xor r13d, r13d
nop word [rax + rax]
movdqu xmm2, xmmword [rbx + r13 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rbx + r13]
por xmm1, xmm2
add r13, 0x20
cmp r11, r13
jne 0x140058d20
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r11, xmm1
cmp r10, r14
je 0x140058d6c
add r9, r14
nop dword [rax + rax]
or r11, qword [rcx + r9*8]
inc r9
cmp rax, r9
jne 0x140058d60
mov r9, r11
not r9
dec r11
and r11, r9
sar r11, 0x3f
not r11d
or r8d, r11d
jmp 0x140058e83
and r14, 0xfffffffffffffffc
lea rbp, [r10 + rax*8]
add rbp, 0x70
pxor xmm0, xmm0
xor r13d, r13d
pxor xmm1, xmm1
movdqu xmm2, xmmword [rbp + r13*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbp + r13*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbp + r13*8 - 0x50]
movdqu xmm3, xmmword [rbp + r13*8 - 0x40]
movdqu xmm4, xmmword [rbp + r13*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbp + r13*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbp + r13*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbp + r13*8]
por xmm1, xmm2
add r13, 0x10
add r14, 0xfffffffffffffffc
jne 0x140058d9e
mov r11, qword [rsp + 0x38]
mov r14, r11
and r14, 0xfffffffffffffffc
test rbx, rbx
je 0x140058e41
add r13, rax
lea r13, [r10 + r13*8]
add r13, 0x10
shl rbx, 5
xor ebp, ebp
movdqu xmm2, xmmword [r13 + rbp - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r13 + rbp]
por xmm1, xmm2
add rbp, 0x20
cmp rbx, rbp
jne 0x140058e22
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rbx, xmm1
cmp r11, r14
je 0x140058e6c
add r14, rax
nop dword [rax + rax]
or rbx, qword [r10 + r14*8]
inc r14
cmp r9, r14
jne 0x140058e60
xor r9d, r9d
xor r10d, r10d
test rbx, rbx
cmove r9d, r8d
setne r10b
or r10d, r9d
mov r8d, r10d
test r8d, r8d
js 0x140058ed3
mov dword [rsp + 0x20], 0x256
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r13d, r13d
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.140049240
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140279500
mov eax, r13d
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8, qword [rsp + 0x1c8]
mov qword [rsp + 0x38], r8
mov r8d, dword [rdi + 8]
mov r9d, r8d
sar r9d, 0x1f
and r9d, r8d
mov r11, r8
nop word cs:[rax + rax]
test r11d, r11d
jle 0x140058f21
mov r10, qword [rdi]
lea rbx, [r11 - 1]
cmp qword [r10 + r11*8 - 8], 0
mov r11, rbx
je 0x140058f00
mov r13, rsi
inc ebx
mov r9d, ebx
jmp 0x140058f30
test r8d, r8d
jns 0x140059074
mov r13, rsi
mov r10, qword [rdi]
movsxd r8, r9d
shl r9d, 6
mov r10, qword [r10 + r8*8 - 8]
xor r8d, r8d
test r10, r10
setne r8b
or r8d, r9d
xor r9d, r9d
mov r11, r10
shr r11, 0x20
setne r9b
cmove r11, r10
shl r9d, 5
mov rsi, r11
shr rsi, 0x10
xor r10d, r10d
cmp r11, 0x10000
setae r10b
cmovb rsi, r11
shl r10d, 4
mov r14, rsi
shr r14, 8
xor r11d, r11d
cmp rsi, 0x100
setae r11b
cmovb r14, rsi
mov rsi, r14
shr rsi, 4
xor ebx, ebx
cmp r14, 0x10
setae bl
cmovb rsi, r14
mov r14, rsi
shr r14, 2
xor ebp, ebp
cmp rsi, 4
setae bpl
cmovb r14, rsi
add ebp, ebp
xor esi, esi
cmp r14, 2
setae sil
or r9d, r8d
or r9d, r10d
lea r8d, [r9 + r11*8]
lea r14d, [r8 + rbx*4]
add r14d, 0xffffffc0
or r14d, ebp
add r14d, esi
mov rsi, r13
je 0x140059074
mov rbx, qword [rsp + 0x1c0]
cmp byte [rbx + 0x28], 0
jne 0x140059205
mov rcx, qword [rbx + 0x10]
mov rdx, rbx
mov rbx, qword [rbx + 0x20]
cmp rcx, qword [rdx + 0x18]
jne 0x1400590bf
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov r13d, 0x20
cmovne r13, rax
cmp r13, rcx
jbe 0x1400591f7
mov rax, r13
shr rax, 0x3d
jne 0x1400591f7
lea rdx, [r13*8]
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [rax + 8]
call fcn.14009eae0
test rax, rax
je 0x1400591f7
mov rdx, qword [rsp + 0x1c0]
mov qword [rdx + 8], rax
mov qword [rdx + 0x18], r13
mov rcx, qword [rdx + 0x10]
jmp 0x1400590c3
xor rdx, 1
cmp eax, 2
jl 0x14005919d
mov r10d, 1
cmp eax, 5
jb 0x140059191
lea r8, [rax - 1]
movq xmm0, rdx
lea r9, [rax - 5]
mov r10, r9
shr r10, 2
inc r10
mov edx, r10d
and edx, 3
cmp r9, 0xc
jae 0x1400590d3
pxor xmm1, xmm1
xor r9d, r9d
jmp 0x140059140
mov rax, qword [rdx + 8]
mov qword [rax + rcx*8], rbx
inc qword [rdx + 0x10]
mov rbx, rdx
jmp 0x140059205
and r10, 0xfffffffffffffffc
pxor xmm1, xmm1
xor r9d, r9d
movdqu xmm2, xmmword [rcx + r9*8 + 8]
por xmm2, xmm0
movdqu xmm0, xmmword [rcx + r9*8 + 0x18]
por xmm0, xmm1
movdqu xmm1, xmmword [rcx + r9*8 + 0x28]
movdqu xmm3, xmmword [rcx + r9*8 + 0x38]
movdqu xmm4, xmmword [rcx + r9*8 + 0x48]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rcx + r9*8 + 0x58]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rcx + r9*8 + 0x68]
por xmm0, xmm4
movdqu xmm1, xmmword [rcx + r9*8 + 0x78]
por xmm1, xmm2
add r9, 0x10
add r10, 0xfffffffffffffffc
jne 0x1400590de
mov r10, r8
and r10, 0xfffffffffffffffc
test rdx, rdx
je 0x140059176
lea r11, [r9*8]
or r11, 8
movdqu xmm2, xmmword [rcx + r11]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r11 + 0x10]
por xmm1, xmm2
add r9, 4
dec rdx
jne 0x14005914c
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdx, xmm1
cmp r8, r10
je 0x14005919d
or r10, 1
or rdx, qword [rcx + r10*8]
inc r10
cmp rax, r10
jne 0x140059191
test rdx, rdx
je 0x1400591d6
mov edx, 1
mov rcx, rsi
call fcn.140053090
test eax, eax
je 0x1400591ef
mov dword [rsi + 0x10], 0
mov rax, qword [rsi]
mov qword [rax], 1
mov dword [rsi + 8], 1
mov r13d, 1
jmp 0x140058eac
mov dword [rsi + 0x10], 0
mov dword [rsi + 8], 0
mov r13d, 1
jmp 0x140058eac
xor r13d, r13d
jmp 0x140058eac
mov rbx, qword [rsp + 0x1c0]
mov word [rbx + 0x28], 0x101
mov rcx, rbx
call fcn.140055ae0
mov rbp, rax
mov rcx, rbx
call fcn.140055ae0
mov qword [rsp + 0x50], rax
xor r13d, r13d
test rbp, rbp
je 0x140059677
mov rbx, rax
mov ecx, 0
test rax, rax
je 0x14005969f
xor r13d, r13d
cmp qword [rsp + 0x1c8], 0
je 0x14005924c
xor eax, eax
jmp 0x14005926a
mov rcx, r12
mov rdx, qword [rsp + 0x1c0]
call fcn.1400596e0
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140059677
mov qword [rsp + 0x30], rax
mov r12d, 6
cmp r14d, 0x29f
jg 0x1400592a9
mov r12d, 5
cmp r14d, 0xef
jg 0x1400592a9
mov r12d, 4
cmp r14d, 0x4f
jg 0x1400592a9
xor eax, eax
cmp r14d, 0x18
setge al
lea r12d, [rax + rax]
inc r12d
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r15
mov r15, qword [rsp + 0x38]
mov r8, r15
mov r9, r15
call fcn.140059900
xor r13d, r13d
test eax, eax
je 0x14005969a
mov qword [rsp + 0x40], r12
cmp r12d, 2
jb 0x140059389
mov r15, qword [rsp + 0x1c0]
mov rcx, r15
call fcn.140055ae0
test rax, rax
je 0x14005969a
mov r12, rax
mov qword [rsp + 0x20], r15
mov rcx, rax
mov rdx, rbx
mov r8, rbx
mov r9, qword [rsp + 0x38]
call fcn.140059900
test eax, eax
je 0x14005969a
mov qword [rsp + 0x48], r12
mov rax, qword [rsp + 0x40]
lea ecx, [rax - 1]
mov ebx, 1
shl ebx, cl
mov r12d, 1
mov r15, qword [rsp + 0x1c0]
mov rcx, r15
call fcn.140055ae0
mov qword [rsp + r12*8 + 0x50], rax
test rax, rax
je 0x14005969a
mov rdx, qword [rsp + r12*8 + 0x48]
mov qword [rsp + 0x20], r15
mov rcx, rax
mov r8, qword [rsp + 0x48]
mov r15, qword [rsp + 0x38]
mov r9, r15
call fcn.140059900
test eax, eax
je 0x14005969a
inc r12
cmp rbx, r12
jne 0x14005933c
dec r14d
xor r13d, r13d
mov rbx, qword [rsp + 0x1c0]
mov r12, qword [rsp + 0x40]
add r14d, 0xfffffffb
mov edx, r14d
add edx, 5
js 0x1400593c3
mov eax, dword [rdi + 8]
mov ecx, edx
shr ecx, 6
cmp ecx, eax
jae 0x1400593c3
mov ecx, ecx
mov r8, qword [rdi]
mov rcx, qword [r8 + rcx*8]
bt rcx, rdx
jb 0x1400593f6
test r13b, 1
je 0x1400593e7
mov qword [rsp + 0x20], rbx
mov rcx, rbp
mov rdx, rbp
mov r8, rbp
mov r9, r15
call fcn.140059900
test eax, eax
je 0x140059697
cmp r14d, 0xfffffffb
je 0x14005967b
dec r14d
jmp 0x1400593a0
cmp r12d, 2
jb 0x14005958c
cmp r14d, 0xfffffffb
je 0x14005958c
xor r15d, r15d
test edx, edx
jle 0x140059433
lea ecx, [r14 + 4]
mov r9d, ecx
shr r9d, 6
cmp r9d, eax
jae 0x140059433
mov r9d, r9d
mov r9, qword [r8 + r9*8]
xor r15d, r15d
bt r9, rcx
setb r15b
lea ebx, [r15 + r15]
inc ebx
cmp dword [rsp + 0x40], 3
jb 0x140059594
cmp edx, 2
jl 0x140059594
lea ecx, [r14 + 3]
mov r10d, ecx
shr r10d, 6
xor r9d, r9d
cmp r10d, eax
jae 0x140059472
mov r9d, r10d
mov r10, qword [r8 + r9*8]
xor r9d, r9d
bt r10, rcx
setb r9b
cmp r15d, 1
mov ecx, 0
adc cl, 1
mov r10d, ebx
shl r10d, cl
or r10d, 1
test r9d, r9d
cmovne ebx, r10d
mov ecx, 2
cmovne r15d, ecx
cmp dword [rsp + 0x40], 4
jb 0x140059594
cmp edx, 3
jl 0x140059594
lea ecx, [r14 + 2]
mov r10d, ecx
shr r10d, 6
xor r9d, r9d
cmp r10d, eax
jae 0x1400594d1
mov r9d, r10d
mov r10, qword [r8 + r9*8]
xor r9d, r9d
bt r10, rcx
setb r9b
mov ecx, r15d
xor cl, 3
mov r10d, ebx
shl r10d, cl
or r10d, 1
test r9d, r9d
cmovne ebx, r10d
mov ecx, 3
cmovne r15d, ecx
cmp dword [rsp + 0x40], 5
jb 0x140059594
cmp edx, 4
jl 0x140059594
lea ecx, [r14 + 1]
mov r10d, ecx
shr r10d, 6
xor r9d, r9d
cmp r10d, eax
jae 0x14005952a
mov r9d, r10d
mov r10, qword [r8 + r9*8]
xor r9d, r9d
bt r10, rcx
setb r9b
mov cl, 4
sub cl, r15b
mov r10d, ebx
shl r10d, cl
or r10d, 1
test r9d, r9d
cmovne ebx, r10d
mov ecx, 4
cmovne r15d, ecx
cmp dword [rsp + 0x40], 6
jb 0x140059594
cmp edx, 5
jl 0x140059594
mov ecx, r14d
shr ecx, 6
xor edx, edx
cmp ecx, eax
jae 0x140059570
mov eax, ecx
mov rax, qword [r8 + rax*8]
xor edx, edx
bt rax, r14
setb dl
mov cl, 5
sub cl, r15b
mov eax, ebx
shl eax, cl
or eax, 1
test edx, edx
cmovne ebx, eax
mov eax, 5
cmovne r15d, eax
jmp 0x140059594
xor r15d, r15d
mov ebx, 1
test r13b, 1
je 0x140059608
mov r12d, 0xffffffff
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, rbp
mov r8, rbp
mov r9, qword [rsp + 0x38]
call fcn.140059900
xor r13d, r13d
test eax, eax
je 0x14005969a
inc r12d
cmp r15d, r12d
jne 0x1400595a0
sar ebx, 1
movsxd rax, ebx
mov r8, qword [rsp + rax*8 + 0x50]
mov rbx, qword [rsp + 0x1c0]
mov qword [rsp + 0x20], rbx
mov rcx, rbp
mov rdx, rbp
mov r9, qword [rsp + 0x38]
call fcn.140059900
test eax, eax
mov r12, qword [rsp + 0x40]
jne 0x14005965d
jmp 0x14005969a
sar ebx, 1
movsxd rax, ebx
mov rbx, qword [rsp + rax*8 + 0x50]
cmp rbx, rbp
je 0x140059650
movsxd rdx, dword [rbx + 8]
mov rcx, rbp
call fcn.140053090
test eax, eax
je 0x140059697
movsxd r8, dword [rbx + 8]
test r8, r8
je 0x140059645
shl r8, 3
mov rcx, qword [rbp]
mov rdx, qword [rbx]
call fcn.14027bf80
mov eax, dword [rbx + 8]
jmp 0x140059647
xor eax, eax
mov dword [rbp + 8], eax
mov eax, dword [rbx + 0x10]
mov dword [rbp + 0x10], eax
mov rbx, qword [rsp + 0x1c0]
mov r12, qword [rsp + 0x40]
sub r14d, r15d
cmp r14d, 0xfffffffb
mov r15, qword [rsp + 0x38]
je 0x14005967b
add r14d, 4
mov r13b, 1
jmp 0x14005939c
xor ecx, ecx
jmp 0x14005969f
mov rcx, rsi
mov rdx, rbp
mov r8, r15
mov r9, rbx
call fcn.140059a90
xor r13d, r13d
test eax, eax
setne r13b
jmp 0x14005969a
xor r13d, r13d
mov rcx, qword [rsp + 0x30]
call fcn.140059bc0
mov r8, qword [rsp + 0x1c0]
cmp byte [r8 + 0x28], 0
jne 0x140058eac
mov rax, qword [r8 + 8]
mov rcx, qword [r8 + 0x10]
lea rdx, [rcx - 1]
mov qword [r8 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r8 + 0x20], rax
jmp 0x140058eac