Function at 0x140057730
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 [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov eax, dword [r9 + 8]
test eax, eax
jle 0x14005776e
mov rbp, r9
mov r13, rdx
mov rdi, qword [r9]
mov rdx, qword [rdi]
test dl, 1
jne 0x140057792
mov dword [rsp + 0x20], 0x24e
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r15d, r15d
mov ecx, 3
xor edx, edx
mov r8d, 0x68
jmp 0x1400579b7
cmp dword [rbp + 0x10], 0
je 0x1400577bc
mov dword [rsp + 0x20], 0x252
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r15d, r15d
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
jmp 0x1400579b7
cmp dword [r13 + 0x10], 0
jne 0x140057998
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x48], rcx
movsxd r9, dword [r13 + 8]
mov r10, qword [r13]
mov rcx, r9
sub rcx, rax
mov qword [rsp + 0x28], rcx
mov rbx, rax
cmovb rbx, r9
xor r8d, r8d
test rbx, rbx
je 0x14005783a
xor r14d, r14d
nop word cs:[rax + rax]
mov r15, qword [rdi + r14*8]
mov rsi, qword [r10 + r14*8]
mov r11, rsi
xor r11, r15
mov r12, rsi
sub r12, r15
xor r12, rsi
or r12, r11
xor r15d, r15d
xor r12, rsi
setns r15b
sar r12, 0x3f
or r12d, r15d
test r11, r11
cmovne r8d, r12d
inc r14
cmp rbx, r14
jne 0x140057800
cmp r9d, eax
jae 0x140057860
mov r11, rax
sub r11, r9
cmp r11, 4
mov r12, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
jae 0x14005788d
xor r14d, r14d
mov r10, r9
jmp 0x1400578f0
cmp eax, r9d
mov r12, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
jae 0x140057993
mov r11, qword [rsp + 0x28]
cmp r11, 4
jae 0x14005790a
xor r15d, r15d
mov rbx, rax
jmp 0x140057970
mov rbx, r11
and rbx, 0xfffffffffffffffc
lea r10, [rbx + r9]
lea r9, [rdi + r9*8]
add r9, 0x10
pxor xmm0, xmm0
xor r14d, r14d
pxor xmm1, xmm1
nop dword [rax + rax]
movdqu xmm2, xmmword [r9 + r14*8 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r9 + r14*8]
por xmm1, xmm2
add r14, 4
cmp rbx, r14
jne 0x1400578b0
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r14, xmm0
cmp r11, rbx
je 0x1400578fc
nop word cs:[rax + rax]
or r14, qword [rdi + r10*8]
inc r10
cmp rax, r10
jne 0x1400578f0
test r14, r14
jne 0x1400579e3
jmp 0x140057993
mov r14, r11
and r14, 0xfffffffffffffffc
lea rbx, [r14 + rax]
lea r15, [r10 + rax*8]
add r15, 0x10
pxor xmm0, xmm0
xor r12d, r12d
pxor xmm1, xmm1
movdqu xmm2, xmmword [r15 + r12*8 - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [r15 + r12*8]
por xmm1, xmm2
add r12, 4
cmp r14, r12
jne 0x140057928
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r15, xmm0
cmp r11, r14
mov r12, qword [rsp + 0x48]
je 0x14005797c
nop word cs:[rax + rax]
or r15, qword [r10 + rbx*8]
inc rbx
cmp r9, rbx
jne 0x140057970
xor r9d, r9d
xor r10d, r10d
test r15, r15
cmove r9d, r8d
setne r10b
or r10d, r9d
mov r8d, r10d
test r8d, r8d
js 0x1400579e3
mov dword [rsp + 0x20], 0x256
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_exponentiation.c
xor r15d, r15d
mov ecx, 3
xor edx, edx
mov r8d, WSAGetLastError
call fcn.1400490c0
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140265fe0
mov eax, r15d
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [rcx + 8]
mov r9d, r8d
sar r9d, 0x1f
and r9d, r8d
mov r11, r8
nop word cs:[rax + rax]
test r11d, r11d
jle 0x140057a1e
mov r10, qword [rcx]
lea rbx, [r11 - 1]
cmp qword [r10 + r11*8 - 8], 0
mov r11, rbx
je 0x140057a00
inc ebx
mov r9d, ebx
jmp 0x140057a2a
test r8d, r8d
jns 0x140057b5e
mov r10, qword [rcx]
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 r15d, r15d
cmp rsi, 4
setae r15b
cmovb r14, rsi
add r15d, r15d
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, r15d
add r14d, esi
mov rsi, qword [rsp + 0x30]
je 0x140057b5e
mov rdi, qword [rsp + 0x1c0]
cmp byte [rdi + 0x28], 0
jne 0x140057c43
mov rcx, qword [rdi + 0x10]
mov rbx, qword [rdi + 0x20]
cmp rcx, qword [rdi + 0x18]
jne 0x140057c2f
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov r15d, 0x20
cmovne r15, rax
cmp r15, rcx
jbe 0x140057c3d
mov rax, r15
shr rax, 0x3d
jne 0x140057c3d
lea rdx, [r15*8]
mov rcx, qword [rdi + 8]
call fcn.140098700
test rax, rax
je 0x140057c3d
mov qword [rdi + 8], rax
mov qword [rdi + 0x18], r15
mov rcx, qword [rdi + 0x10]
jmp 0x140057c33
xor rdx, 1
cmp eax, 2
jl 0x140057bcc
mov r8d, 1
cmp eax, 5
jb 0x140057bc0
lea r9, [rax - 1]
mov r10, r9
and r10, 0xfffffffffffffffc
lea r8, [r10 + 1]
movq xmm1, rdx
pxor xmm0, xmm0
xor edx, edx
movdqu xmm2, xmmword [rdi + rdx*8 + 8]
por xmm1, xmm2
movdqu xmm2, xmmword [rdi + rdx*8 + 0x18]
por xmm0, xmm2
add rdx, 4
cmp r10, rdx
jne 0x140057b8c
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rdx, xmm1
cmp r9, r10
je 0x140057bcc
or rdx, qword [rdi + r8*8]
inc r8
cmp rax, r8
jne 0x140057bc0
test rdx, rdx
je 0x140057c0a
mov edx, 1
mov rcx, r12
call fcn.140052a70
test eax, eax
je 0x140057c27
mov dword [r12 + 0x10], 0
mov rax, qword [r12]
mov qword [rax], 1
mov dword [r12 + 8], 1
mov r15d, 1
jmp 0x1400579bc
mov dword [r12 + 0x10], 0
mov dword [r12 + 8], 0
mov r15d, 1
jmp 0x1400579bc
xor r15d, r15d
jmp 0x1400579bc
mov rax, qword [rdi + 8]
mov qword [rax + rcx*8], rbx
inc qword [rdi + 0x10]
jmp 0x140057c43
mov word [rdi + 0x28], 0x101
mov rcx, rdi
call fcn.140054a90
mov r12, rax
mov rcx, rdi
call fcn.140054a90
mov qword [rsp + 0x50], rax
xor r15d, r15d
test r12, r12
je 0x14005809b
mov rbx, rax
mov ecx, 0
test rax, rax
je 0x1400580bf
xor r15d, r15d
cmp qword [rsp + 0x1c8], 0
je 0x140057c92
xor eax, eax
mov rbp, qword [rsp + 0x1c8]
jmp 0x140057ca9
mov rcx, rbp
mov rdx, rdi
call fcn.140058100
mov rbp, rax
test rax, rax
je 0x14005809b
mov qword [rsp + 0x38], rax
mov eax, 6
mov qword [rsp + 0x40], rax
cmp r14d, 0x29f
jg 0x140057cf9
mov eax, 5
mov qword [rsp + 0x40], rax
cmp r14d, 0xef
jg 0x140057cf9
mov eax, 4
mov qword [rsp + 0x40], rax
cmp r14d, 0x4f
jg 0x140057cf9
xor eax, eax
cmp r14d, 0x18
setge al
lea eax, [rax*2 + 1]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x20], rdi
mov rcx, rbx
mov rdx, r13
mov r8, rbp
mov r9, rbp
call fcn.140058280
xor r15d, r15d
test eax, eax
je 0x1400580ba
mov qword [rsp + 0x28], rbp
cmp dword [rsp + 0x40], 2
jb 0x140057db2
mov rcx, rdi
call fcn.140054a90
test rax, rax
je 0x1400580ba
mov r13, rax
mov qword [rsp + 0x20], rdi
mov rcx, rax
mov rdx, rbx
mov r8, rbx
mov r9, qword [rsp + 0x28]
call fcn.140058280
test eax, eax
je 0x1400580ba
mov rax, qword [rsp + 0x40]
lea ecx, [rax - 1]
mov ebx, 1
shl ebx, cl
mov ebp, 1
mov rcx, rdi
call fcn.140054a90
mov qword [rsp + rbp*8 + 0x50], rax
test rax, rax
je 0x1400580ba
mov rdx, qword [rsp + rbp*8 + 0x48]
mov qword [rsp + 0x20], rdi
mov rcx, rax
mov r8, r13
mov r9, qword [rsp + 0x28]
call fcn.140058280
test eax, eax
je 0x1400580ba
inc rbp
cmp rbx, rbp
jne 0x140057d72
dec r14d
xor r15d, r15d
mov rbp, qword [rsp + 0x28]
add r14d, 0xfffffffb
mov edx, r14d
add edx, 5
js 0x140057de4
mov eax, dword [rsi + 8]
mov ecx, edx
shr ecx, 6
cmp ecx, eax
jae 0x140057de4
mov ecx, ecx
mov r8, qword [rsi]
mov rcx, qword [r8 + rcx*8]
bt rcx, rdx
jb 0x140057e17
test r15b, 1
je 0x140057e08
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, rbp
call fcn.140058280
test eax, eax
je 0x1400580b7
cmp r14d, 0xfffffffb
je 0x14005809f
dec r14d
jmp 0x140057dc1
cmp dword [rsp + 0x40], 2
jb 0x140057fbc
cmp r14d, 0xfffffffb
je 0x140057fbc
xor r13d, r13d
mov r11d, 2
test edx, edx
jle 0x140057e5b
lea ecx, [r14 + 4]
mov r9d, ecx
shr r9d, 6
cmp r9d, eax
jae 0x140057e5b
mov r9d, r9d
mov r9, qword [r8 + r9*8]
xor r13d, r13d
bt r9, rcx
setb r13b
lea ebx, [r13*2 + 1]
cmp dword [rsp + 0x40], 3
jb 0x140057fc4
cmp edx, 2
jl 0x140057fc4
lea ecx, [r14 + 3]
mov r10d, ecx
shr r10d, 6
xor r9d, r9d
cmp r10d, eax
jae 0x140057e9c
mov r9d, r10d
mov r10, qword [r8 + r9*8]
xor r9d, r9d
bt r10, rcx
setb r9b
mov cl, 2
sub cl, r13b
mov r10d, ebx
shl r10d, cl
or r10d, 1
test r9d, r9d
cmovne ebx, r10d
cmovne r13d, r11d
cmp dword [rsp + 0x40], 4
jb 0x140057fa8
cmp edx, 3
jl 0x140057fa8
lea ecx, [r14 + 2]
mov r10d, ecx
shr r10d, 6
xor r9d, r9d
cmp r10d, eax
jae 0x140057eef
mov r9d, r10d
mov r10, qword [r8 + r9*8]
xor r9d, r9d
bt r10, rcx
setb r9b
mov ecx, r13d
xor cl, 3
mov r10d, ebx
shl r10d, cl
or r10d, 1
test r9d, r9d
cmovne ebx, r10d
mov ecx, 3
cmovne r13d, ecx
cmp dword [rsp + 0x40], 5
jb 0x140057fa8
cmp edx, 4
jl 0x140057fa8
lea ecx, [r14 + 1]
mov r10d, ecx
shr r10d, 6
xor r9d, r9d
cmp r10d, eax
jae 0x140057f48
mov r9d, r10d
mov r10, qword [r8 + r9*8]
xor r9d, r9d
bt r10, rcx
setb r9b
mov cl, 4
sub cl, r13b
mov r10d, ebx
shl r10d, cl
or r10d, 1
test r9d, r9d
cmovne ebx, r10d
mov ecx, 4
cmovne r13d, ecx
cmp dword [rsp + 0x40], 6
jb 0x140057fa8
cmp edx, 5
jl 0x140057fa8
mov ecx, r14d
shr ecx, 6
xor edx, edx
cmp ecx, eax
jae 0x140057f8e
mov eax, ecx
mov rax, qword [r8 + rax*8]
xor edx, edx
bt rax, r14
setb dl
mov cl, 5
sub cl, r13b
mov eax, ebx
shl eax, cl
or eax, 1
test edx, edx
cmovne ebx, eax
mov eax, 5
cmovne r13d, eax
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x1c0]
mov rbp, qword [rsp + 0x28]
jmp 0x140057fc4
xor r13d, r13d
mov ebx, 1
test r15b, 1
je 0x140058024
mov ebp, 0xffffffff
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov r8, r12
mov r9, qword [rsp + 0x28]
call fcn.140058280
xor r15d, r15d
test eax, eax
je 0x1400580ba
inc ebp
cmp r13d, ebp
jne 0x140057fcf
sar ebx, 1
movsxd rax, ebx
mov r8, qword [rsp + rax*8 + 0x50]
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov rdx, r12
mov rbp, qword [rsp + 0x28]
mov r9, rbp
call fcn.140058280
test eax, eax
jne 0x140058086
jmp 0x1400580ba
sar ebx, 1
movsxd rax, ebx
mov rbx, qword [rsp + rax*8 + 0x50]
cmp rbx, r12
je 0x140058086
movsxd rdx, dword [rbx + 8]
mov rcx, r12
call fcn.140052a70
test eax, eax
je 0x1400580ec
movsxd r8, dword [rbx + 8]
test r8, r8
je 0x140058065
shl r8, 3
mov rcx, qword [r12]
mov rdx, qword [rbx]
call fcn.1402689f0
mov eax, dword [rbx + 8]
jmp 0x140058067
xor eax, eax
mov dword [r12 + 8], eax
mov eax, dword [rbx + 0x10]
mov dword [r12 + 0x10], eax
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x1c0]
mov rbp, qword [rsp + 0x28]
sub r14d, r13d
cmp r14d, 0xfffffffb
je 0x14005809f
add r14d, 4
mov r15b, 1
jmp 0x140057dbd
xor ecx, ecx
jmp 0x1400580bf
mov rcx, qword [rsp + 0x48]
mov rdx, r12
mov r8, rbp
mov r9, rdi
call fcn.140058400
mov r15d, eax
jmp 0x1400580ba
xor r15d, r15d
mov rcx, qword [rsp + 0x38]
call fcn.140058520
cmp byte [rdi + 0x28], 0
jne 0x1400579bc
mov rax, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
lea rdx, [rcx - 1]
mov qword [rdi + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rdi + 0x20], rax
jmp 0x1400579bc
xor r15d, r15d
mov rdi, qword [rsp + 0x1c0]
jmp 0x1400580ba