Function at 0x140054c60
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r13, r9
mov rbp, r8
mov rbx, rcx
mov r15, qword [rsp + 0x100]
mov rax, qword [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov eax, dword [r8 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
nop word cs:[rax + rax]
test eax, eax
jle 0x140054ccd
mov r8, qword [rbp]
lea r9, [rax - 1]
cmp qword [r8 + rax*8 - 8], 0
mov rax, r9
je 0x140054cb0
inc r9d
mov ecx, r9d
mov esi, dword [r13 + 8]
movsxd rax, esi
mov r8d, eax
sar r8d, 0x1f
and r8d, eax
mov r9, rsi
nop word cs:[rax + rax]
test r9d, r9d
jle 0x140054d0e
mov r11, qword [r13]
lea r10, [r9 - 1]
cmp qword [r11 + r9*8 - 8], 0
mov r9, r10
je 0x140054cf0
inc r10d
mov r8d, r10d
test ecx, ecx
jle 0x140054d1f
mov r9, qword [rbp]
dec ecx
cmp qword [r9 + rcx*8], 0
je 0x140054d4e
test r8d, r8d
jle 0x140054d32
mov rcx, qword [r13]
dec r8d
cmp qword [rcx + r8*8], 0
je 0x140054d4e
test esi, esi
je 0x140054e44
mov rcx, qword [r13]
cmp esi, 4
jae 0x140054d76
xor r9d, r9d
xor r8d, r8d
jmp 0x140054dd0
mov dword [rsp + 0x20], 0xd4
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, reloc.WS2_32.dll_WSAGetLastError
call fcn.1400490c0
jmp 0x14005563a
mov r9, rax
and r9, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
nop dword [rax + rax]
movdqu xmm2, xmmword [rcx + r8*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r8*8 + 0x10]
por xmm1, xmm2
add r8, 4
cmp r9, r8
jne 0x140054d90
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp r9, rax
je 0x140054ddc
nop word cs:[rax + rax]
or r8, qword [rcx + r9*8]
inc r9
cmp rax, r9
jne 0x140054dd0
test r8, r8
je 0x140054e44
mov qword [rsp + 0x68], rdx
cmp byte [r15 + 0x28], 0
jne 0x140054e81
mov rcx, qword [r15 + 0x10]
mov rsi, qword [r15 + 0x20]
cmp rcx, qword [r15 + 0x18]
jne 0x140054e6c
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov edi, 0x20
cmovne rdi, rax
cmp rdi, rcx
jbe 0x140054e7a
mov rax, rdi
shr rax, 0x3d
jne 0x140054e7a
lea rdx, [rdi*8]
mov rcx, qword [r15 + 8]
call fcn.140098700
test rax, rax
je 0x140054e7a
mov qword [r15 + 8], rax
mov qword [r15 + 0x18], rdi
mov rcx, qword [r15 + 0x10]
jmp 0x140054e70
mov dword [rsp + 0x20], 0xd9
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_bn_div.c
xor edi, edi
mov ecx, 3
xor edx, edx
mov r8d, 0x69
call fcn.1400490c0
jmp 0x14005563a
mov rax, qword [r15 + 8]
mov qword [rax + rcx*8], rsi
inc qword [r15 + 0x10]
jmp 0x140054e81
mov word [r15 + 0x28], 0x101
mov rcx, r15
call fcn.140054a90
mov qword [rsp + 0x48], rax
mov rcx, r15
call fcn.140054a90
mov qword [rsp + 0x38], rax
mov rcx, r15
call fcn.140054a90
mov r12, rax
test rbx, rbx
jne 0x140054eb6
mov rcx, r15
call fcn.140054a90
mov rbx, rax
mov qword [rsp + 0x30], rbx
test r12, r12
je 0x140055618
cmp qword [rsp + 0x30], 0
je 0x140055618
mov eax, dword [r13 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
mov r8, rax
nop
test r8d, r8d
jle 0x140054f00
mov rdx, qword [r13]
lea r9, [r8 - 1]
cmp qword [rdx + r8*8 - 8], 0
mov r8, r9
je 0x140054ee0
inc r9d
mov ecx, r9d
jmp 0x140054f0e
xor esi, esi
test eax, eax
jns 0x140054fae
mov rdx, qword [r13]
movsxd rax, ecx
shl ecx, 6
mov rdx, qword [rdx + rax*8 - 8]
xor eax, eax
test rdx, rdx
setne al
or eax, ecx
xor ecx, ecx
mov r8, rdx
shr r8, 0x20
cmove r8, rdx
setne cl
shl ecx, 5
mov r9, r8
shr r9, 0x10
xor edx, edx
cmp r8, 0x10000
cmovb r9, r8
setae dl
shl edx, 4
mov r10, r9
shr r10, 8
xor r8d, r8d
cmp r9, 0x100
cmovb r10, r9
setae r8b
mov r9, r10
shr r9, 4
xor r11d, r11d
cmp r10, 0x10
setae r11b
cmovb r9, r10
mov r10, r9
shr r10, 2
xor edi, edi
cmp r9, 4
setae dil
cmovb r10, r9
add edi, edi
or ecx, eax
or ecx, edx
lea eax, [rcx + r8*8]
lea esi, [rax + r11*4]
add esi, 0xffffffc0
or esi, edi
cmp r10, 2
sbb esi, 0xffffffff
and esi, 0x3f
mov r8d, 0x40
sub r8d, esi
mov rcx, r12
mov rdx, r13
call fcn.140055710
test eax, eax
je 0x140055618
mov ecx, dword [r12 + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
nop dword [rax]
test ecx, ecx
jle 0x140054ffb
mov r8, qword [r12]
lea rdx, [rcx - 1]
cmp qword [r8 + rcx*8 - 8], 0
mov rcx, rdx
je 0x140054fe0
inc edx
mov eax, edx
mov dword [r12 + 8], eax
mov dword [r12 + 0x10], 0
mov r8d, 0x80
sub r8d, esi
mov rcx, qword [rsp + 0x38]
mov rdx, rbp
mov dword [rsp + 0x58], r8d
call fcn.140055710
test eax, eax
je 0x140055618
mov rcx, qword [rsp + 0x38]
mov r9d, dword [rcx + 8]
mov eax, r9d
sar eax, 0x1f
and eax, r9d
nop
test r9d, r9d
jle 0x14005505b
mov r8, qword [rcx]
lea rdx, [r9 - 1]
cmp qword [r8 + r9*8 - 8], 0
mov r9, rdx
je 0x140055040
inc edx
mov eax, edx
mov dword [rcx + 8], eax
mov dword [rcx + 0x10], 0
movsxd rdx, dword [r12 + 8]
lea r8d, [rdx + 1]
cmp eax, r8d
jle 0x1400550a0
inc eax
movsxd rdx, eax
call fcn.140052a70
test eax, eax
je 0x140055618
mov rdx, qword [rsp + 0x38]
mov rax, qword [rdx]
movsxd rcx, dword [rdx + 8]
mov qword [rax + rcx*8], 0
mov edi, dword [rdx + 8]
inc edi
jmp 0x1400550ec
add rdx, 2
call fcn.140052a70
test eax, eax
je 0x140055618
mov rdx, qword [rsp + 0x38]
movsxd rax, dword [rdx + 8]
mov edi, dword [r12 + 8]
add edi, 2
cmp eax, edi
jge 0x1400550ec
nop word cs:[rax + rax]
mov rcx, qword [rdx]
mov qword [rcx + rax*8], 0
inc rax
movsxd rdi, dword [r12 + 8]
add rdi, 2
cmp rax, rdi
jl 0x1400550d0
mov dword [rdx + 8], edi
movsxd r14, dword [r12 + 8]
mov ebx, edi
sub ebx, r14d
mov rax, qword [r12]
cmp r14, 1
jne 0x140055107
xor ecx, ecx
jmp 0x14005510c
mov rcx, qword [rax + r14*8 - 0x10]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rdx]
mov qword [rsp + 0x28], rcx
mov rsi, qword [rax + r14*8 - 8]
mov ebp, dword [rbp + 0x10]
mov eax, dword [r13 + 0x10]
xor eax, ebp
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x10], eax
lea eax, [rbx + 1]
movsxd rdx, eax
call fcn.140052a70
test eax, eax
je 0x140055618
mov r13, r14
lea ecx, [rbx - 1]
mov rax, qword [rsp + 0x30]
mov dword [rax + 8], ecx
mov dword [rsp + 0x5c], ecx
movsxd r14, ecx
shl r14, 3
add r14, qword [rax]
lea rdx, [r13 + 1]
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x70], rdx
call fcn.140052a70
test eax, eax
je 0x140055618
mov rax, qword [rsp + 0x30]
cmp dword [rax + 8], 0
mov dword [rsp + 0x54], ebp
je 0x140055191
mov rdx, r14
add rdx, 0xfffffffffffffff8
jmp 0x14005519b
mov dword [rax + 0x10], 0
mov rdx, r14
cmp ebx, 2
jl 0x14005557f
movsxd rax, ebx
movsxd rcx, edi
mov r8, qword [rsp + 0x28]
lea r15, [r8 + rax*8]
lea rbx, [r8 + rcx*8]
add rbx, 0xfffffffffffffff8
xor eax, eax
mov qword [rsp + 0x28], rax
xor edi, edi
mov qword [rsp + 0x40], r13
jmp 0x1400551ef
mov rax, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x78]
mov qword [rdx], rax
inc edi
add rbx, 0xfffffffffffffff8
add rdx, 0xfffffffffffffff8
cmp edi, dword [rsp + 0x5c]
je 0x14005557f
mov qword [rsp + 0x78], rdx
mov rbp, r15
mov qword [rsp + 0x80], 0
mov r8, qword [rbx]
mov rcx, 0xffffffffffffffff
cmp r8, rsi
je 0x14005529d
mov r9, qword [rbx - 8]
mov qword [rsp + 0x20], rsi
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x80]
call fcn.140055b00
mov rcx, qword [rsp + 0x88]
mov rax, rcx
mov r15, qword [rsp + 0x60]
mul r15
mov r8, qword [rsp + 0x80]
mov r9, qword [rbx - 0x10]
cmp r9, rax
mov r10, r8
sbb r10, rdx
jae 0x140055295
add r8, rsi
dec rcx
mov r10, rcx
mov r11, r8
nop word [rax + rax]
mov r8, r11
mov rcx, r10
cmp r11, rsi
jb 0x140055295
sub rax, r15
sbb rdx, 0
lea r11, [r8 + rsi]
lea r10, [rcx - 1]
cmp r9, rax
mov r14, r8
sbb r14, rdx
jb 0x140055270
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], rcx
test r13d, r13d
je 0x1400552c6
mov rax, qword [rsp + 0x48]
mov r15, qword [rax]
mov r14, qword [r12]
cmp r13d, 4
jae 0x1400552d0
mov r8, qword [rsp + 0x28]
jmp 0x140055353
mov rdx, qword [rsp + 0x28]
jmp 0x1400553d1
mov r8, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov rax, rcx
mul qword [r14]
mov r9, rdx
mov r10, rax
add rax, r8
mov qword [r15], rax
mov rax, rcx
mul qword [r14 + 8]
mov r11, rdx
add r10, r8
adc rax, r9
setb r9b
mov qword [r15 + 8], rax
mov rax, rcx
mul qword [r14 + 0x10]
mov r8, rdx
add r9b, 0xff
adc rax, r11
setb r9b
mov qword [r15 + 0x10], rax
mov rax, rcx
mul qword [r14 + 0x18]
add r9b, 0xff
adc rax, r8
mov r8, rdx
adc r8, 0
mov qword [r15 + 0x18], rax
add r14, 0x20
add r15, 0x20
add r13, 0xfffffffffffffffc
cmp r13, 4
jae 0x1400552e0
test r13, r13
je 0x1400553c9
test r13b, 1
jne 0x14005535e
mov r11, r13
jmp 0x14005537d
mov rax, rcx
mul qword [r14]
add rax, r8
adc rdx, 0
mov qword [r15], rax
add r14, 8
add r15, 8
lea r11, [r13 - 1]
mov r8, rdx
cmp r13, 1
mov r13, qword [rsp + 0x40]
je 0x1400553d1
mov r13, qword [rsp + 0x28]
nop dword [rax]
mov rax, rcx
mul qword [r14 + r13*8]
mov r9, rdx
mov r10, rax
add rax, r8
mov qword [r15 + r13*8], rax
mov rax, rcx
mul qword [r14 + r13*8 + 8]
add r10, r8
adc rax, r9
adc rdx, 0
mov qword [r15 + r13*8 + 8], rax
add r13, 2
mov r8, rdx
cmp r11, r13
jne 0x140055390
jmp 0x1400553cc
mov rdx, r8
mov r13, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov qword [rax + r13*8], rdx
lea r15, [rbp - 8]
mov r8, qword [rcx]
mov rcx, r15
mov rdx, r15
mov r9, qword [rsp + 0x70]
call fcn.140053610
test rax, rax
je 0x1400551cb
dec qword [rsp + 0x88]
test r13d, r13d
je 0x1400551cb
mov rax, qword [r12]
cmp r13d, 4
jae 0x140055439
mov rcx, qword [rsp + 0x28]
mov r8, r15
mov rdx, r13
test dl, 1
jne 0x1400554f1
mov r10, qword [rsp + 0x28]
mov r9, rdx
jmp 0x140055519
mov r9, qword [rsp + 0x28]
mov r8, r9
mov rcx, r9
mov rdx, r13
nop word [rax + rax]
add rcx, qword [rbp + r8 - 8]
adc r9, 0
add rcx, qword [rax + r8]
adc r9, 0
mov qword [rbp + r8 - 8], rcx
xor ecx, ecx
add r9, qword [rbp + r8]
setb cl
mov r10, qword [rax + r8 + 8]
lea r11, [r9 + r10]
mov qword [rbp + r8], r11
mov r11, qword [rax + r8 + 0x10]
xor r14d, r14d
add r11, qword [rbp + r8 + 8]
setb r14b
add r9, r10
adc rcx, r11
setb r9b
mov qword [rbp + r8 + 8], rcx
mov r10, qword [rax + r8 + 0x18]
xor ecx, ecx
add r10, qword [rbp + r8 + 0x10]
setb cl
add r9b, 0xff
adc r14, r10
adc rcx, 0
mov qword [rbp + r8 + 0x10], r14
add rdx, 0xfffffffffffffffc
add r8, 0x20
mov r9d, 0
cmp rdx, 4
jae 0x140055450
test rdx, rdx
je 0x14005556b
add rax, r8
add r8, rbp
add r8, 0xfffffffffffffff8
test dl, 1
je 0x14005542c
add rcx, qword [r8]
mov r10, qword [rsp + 0x28]
mov r11, r10
adc r11, 0
add rcx, qword [rax]
adc r11, 0
mov qword [r8], rcx
add r8, 8
add rax, 8
lea r9, [rdx - 1]
mov rcx, r11
cmp rdx, 1
je 0x14005556e
mov rdx, qword [rsp + 0x28]
nop word cs:[rax + rax]
add rcx, qword [r8 + rdx*8]
adc r10, 0
add rcx, qword [rax + rdx*8]
adc r10, 0
mov qword [r8 + rdx*8], rcx
xor ecx, ecx
add r10, qword [r8 + rdx*8 + 8]
setb cl
add r10, qword [rax + rdx*8 + 8]
adc rcx, 0
mov qword [r8 + rdx*8 + 8], r10
add rdx, 2
mov r10d, 0
cmp r9, rdx
jne 0x140055530
mov r11, rcx
test r11, r11
je 0x1400551cb
inc qword [rbx]
jmp 0x1400551cb
mov rdx, qword [rsp + 0x38]
mov eax, dword [rdx + 8]
mov r11d, eax
sar r11d, 0x1f
and r11d, eax
mov rsi, rax
mov r15, qword [rsp + 0x100]
mov r10, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
mov edi, dword [rsp + 0x54]
test esi, esi
jle 0x1400555c9
mov r9, qword [rdx]
lea r8, [rsi - 1]
cmp qword [r9 + rsi*8 - 8], 0
mov rsi, r8
je 0x1400555aa
inc r8d
mov dword [rdx + 8], r8d
jmp 0x1400555d8
mov dword [rdx + 8], r11d
test eax, eax
js 0x1400555d8
mov dword [rdx + 0x10], 0
test rcx, rcx
je 0x1400556bc
mov r8d, dword [rsp + 0x58]
call fcn.140055dd0
test eax, eax
je 0x140055618
mov r9, qword [rsp + 0x68]
movsxd rax, dword [r9 + 8]
test rax, rax
mov r10, qword [rsp + 0x30]
je 0x1400556bc
mov rcx, qword [r9]
cmp eax, 4
jae 0x140055660
xor edx, edx
xor r8d, r8d
jmp 0x1400556a7
xor edi, edi
cmp byte [r15 + 0x28], 0
jne 0x14005563a
mov rax, qword [r15 + 8]
mov rcx, qword [r15 + 0x10]
lea rdx, [rcx - 1]
mov qword [r15 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r15 + 0x20], rax
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140265fe0
mov eax, edi
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rax
and rdx, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r8d, r8d
pxor xmm1, xmm1
movdqu xmm2, xmmword [rcx + r8*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r8*8 + 0x10]
por xmm1, xmm2
add r8, 4
cmp rdx, r8
jne 0x140055672
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp rdx, rax
je 0x1400556b3
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x1400556a7
test r8, r8
je 0x1400556bc
mov dword [r9 + 0x10], edi
mov eax, dword [r10 + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
mov rdx, rax
test edx, edx
jle 0x1400556f1
mov r9, qword [r10]
lea r8, [rdx - 1]
cmp qword [r9 + rdx*8 - 8], 0
mov rdx, r8
je 0x1400556ca
inc r8d
mov dword [r10 + 8], r8d
mov edi, 1
jmp 0x14005561a
mov dword [r10 + 8], ecx
test eax, eax
js 0x140055701
mov dword [r10 + 0x10], 0
mov edi, 1
jmp 0x14005561a