Function at 0x140056040
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 rbx, rdx
mov rbp, rcx
mov r13, qword [rsp + 0x100]
mov rax, qword [0x1403a8f38]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov edx, dword [r8 + 8]
mov eax, edx
sar eax, 0x1f
and eax, edx
lea ecx, [rdx + 1]
nop word cs:[rax + rax]
test edx, edx
jle 0x1400560a7
mov r10, qword [r8]
dec ecx
cmp qword [r10 + rdx*8 - 8], 0
lea rdx, [rdx - 1]
je 0x140056090
jmp 0x1400560a9
mov ecx, eax
mov edx, dword [r9 + 8]
movsxd rax, edx
mov r11d, eax
sar r11d, 0x1f
and r11d, eax
lea r10d, [rax + 1]
mov rsi, rdx
nop word cs:[rax + rax]
test esi, esi
jle 0x1400560ec
mov rdi, qword [r9]
dec r10d
cmp qword [rdi + rsi*8 - 8], 0
lea rsi, [rsi - 1]
je 0x1400560d0
test ecx, ecx
jg 0x1400560f3
jmp 0x1400560ff
mov r10d, r11d
test ecx, ecx
jle 0x1400560ff
mov r11, qword [r8]
dec ecx
cmp qword [r11 + rcx*8], 0
je 0x14005612b
test r10d, r10d
jle 0x140056111
mov rcx, qword [r9]
dec r10d
cmp qword [rcx + r10*8], 0
je 0x14005612b
test edx, edx
je 0x14005622b
mov rcx, qword [r9]
cmp edx, 4
jae 0x140056153
xor edx, edx
xor r10d, r10d
jmp 0x1400561b0
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.14004adc0
jmp 0x1400569e6
mov rdx, rax
and rdx, 0xfffffffffffffffc
pxor xmm0, xmm0
xor r10d, r10d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rcx + r10*8]
por xmm0, xmm2
movdqu xmm2, xmmword [rcx + r10*8 + 0x10]
por xmm1, xmm2
add r10, 4
cmp rdx, r10
jne 0x140056170
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r10, xmm0
cmp rdx, rax
je 0x1400561bc
nop word cs:[rax + rax]
or r10, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x1400561b0
test r10, r10
je 0x14005622b
mov qword [rsp + 0x60], rbx
cmp byte [r13 + 0x28], 0
mov rdi, r9
mov rsi, r8
jne 0x140056268
mov rcx, qword [r13 + 0x10]
mov rbx, qword [r13 + 0x20]
cmp rcx, qword [r13 + 0x18]
jne 0x140056253
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov r14d, 0x20
cmovne r14, rax
cmp r14, rcx
jbe 0x140056261
mov rax, r14
shr rax, 0x3d
jne 0x140056261
lea rdx, [r14*8]
mov rcx, qword [r13 + 8]
call fcn.140094100
test rax, rax
je 0x140056261
mov qword [r13 + 8], rax
mov qword [r13 + 0x18], r14
mov rcx, qword [r13 + 0x10]
jmp 0x140056257
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.14004adc0
jmp 0x1400569e6
mov rax, qword [r13 + 8]
mov qword [rax + rcx*8], rbx
inc qword [r13 + 0x10]
jmp 0x140056268
mov word [r13 + 0x28], 0x101
mov rcx, r13
call fcn.140055f00
mov qword [rsp + 0x40], rax
mov rcx, r13
call fcn.140055f00
mov qword [rsp + 0x30], rax
mov rcx, r13
call fcn.140055f00
mov r12, rax
test rbp, rbp
jne 0x14005629d
mov rcx, r13
call fcn.140055f00
mov rbp, rax
test r12, r12
je 0x1400569c4
test rbp, rbp
je 0x1400569c4
mov rdx, rdi
mov r8d, dword [rdi + 8]
mov eax, r8d
sar eax, 0x1f
and eax, r8d
lea ecx, [r8 + 1]
mov r10, r8
nop word cs:[rax + rax]
test r10d, r10d
jle 0x1400562e8
mov r9, qword [rdx]
dec ecx
cmp qword [r9 + r10*8 - 8], 0
lea r10, [r10 - 1]
je 0x1400562d0
jmp 0x1400562f8
xor ebx, ebx
test r8d, r8d
jns 0x14005639f
mov r9, qword [rdx]
mov ecx, eax
movsxd rax, ecx
shl ecx, 6
mov r8, qword [r9 + rax*8 - 8]
xor eax, eax
test r8, r8
setne al
or eax, ecx
xor ecx, ecx
mov r9, r8
shr r9, 0x20
cmove r9, r8
setne cl
shl ecx, 5
mov r10, r9
shr r10, 0x10
xor r8d, r8d
cmp r9, 0x10000
cmovb r10, r9
setae r8b
shl r8d, 4
mov r11, r10
shr r11, 8
xor r9d, r9d
cmp r10, 0x100
cmovb r11, r10
setae r9b
mov r10, r11
shr r10, 4
xor ebx, ebx
cmp r11, 0x10
setae bl
cmovb r10, r11
mov r11, r10
shr r11, 2
mov r14, rbp
xor ebp, ebp
cmp r10, 4
setae bpl
cmovb r11, r10
add ebp, ebp
or ecx, eax
or ecx, r8d
lea eax, [rcx + r9*8]
lea ebx, [rax + rbx*4]
add ebx, 0xffffffc0
or ebx, ebp
mov rbp, r14
cmp r11, 2
sbb ebx, 0xffffffff
and ebx, 0x3f
mov r8d, 0x40
sub r8d, ebx
mov rcx, r12
call fcn.140056ac0
test eax, eax
je 0x1400569c4
mov ecx, dword [r12 + 8]
mov eax, ecx
sar eax, 0x1f
and eax, ecx
lea r8d, [rcx + 1]
mov rdx, rsi
nop
test ecx, ecx
jle 0x1400563e9
mov r9, qword [r12]
dec r8d
cmp qword [r9 + rcx*8 - 8], 0
lea rcx, [rcx - 1]
je 0x1400563d0
jmp 0x1400563ec
mov r8d, eax
mov dword [r12 + 8], r8d
mov dword [r12 + 0x10], 0
mov r8d, 0x80
sub r8d, ebx
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x50], r8d
call fcn.140056ac0
test eax, eax
je 0x1400569c4
mov rcx, qword [rsp + 0x30]
mov edx, dword [rcx + 8]
mov r9d, edx
sar r9d, 0x1f
and r9d, edx
lea eax, [rdx + 1]
nop
test edx, edx
jle 0x140056447
mov r8, qword [rcx]
dec eax
cmp qword [r8 + rdx*8 - 8], 0
lea rdx, [rdx - 1]
je 0x140056430
jmp 0x14005644a
mov eax, r9d
mov dword [rcx + 8], eax
mov dword [rcx + 0x10], 0
movsxd rdx, dword [r12 + 8]
lea r8d, [rdx + 1]
cmp eax, r8d
jle 0x140056494
inc eax
movsxd rdx, eax
call fcn.140053ff0
test eax, eax
je 0x1400569c4
mov r8, qword [rsp + 0x30]
mov rax, qword [r8]
movsxd rcx, dword [r8 + 8]
mov qword [rax + rcx*8], 0
mov r14d, dword [r8 + 8]
inc r14d
mov rax, rdi
jmp 0x1400564dc
add rdx, 2
call fcn.140053ff0
test eax, eax
je 0x1400569c4
mov r8, qword [rsp + 0x30]
movsxd rcx, dword [r8 + 8]
mov r14d, dword [r12 + 8]
add r14d, 2
cmp ecx, r14d
mov rax, rdi
jge 0x1400564dc
nop
mov rdx, qword [r8]
mov qword [rdx + rcx*8], 0
inc rcx
movsxd r14, dword [r12 + 8]
add r14, 2
cmp rcx, r14
jl 0x1400564c0
mov dword [r8 + 8], r14d
movsxd r15, dword [r12 + 8]
mov edi, r14d
sub edi, r15d
mov rcx, qword [r12]
cmp r15, 1
jne 0x1400564f9
xor edx, edx
jmp 0x1400564fe
mov rdx, qword [rcx + r15*8 - 0x10]
mov qword [rsp + 0x58], rdx
mov rdx, qword [r8]
mov qword [rsp + 0x38], rdx
mov rbx, qword [rcx + r15*8 - 8]
mov ecx, dword [rsi + 0x10]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x4c], ecx
xor eax, ecx
mov dword [rbp + 0x10], eax
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbp
call fcn.140053ff0
test eax, eax
je 0x1400569c4
lea eax, [rdi - 1]
mov dword [rbp + 8], eax
mov dword [rsp + 0x54], eax
movsxd rsi, eax
shl rsi, 3
add rsi, qword [rbp]
lea rdx, [r15 + 1]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x78], rdx
call fcn.140053ff0
test eax, eax
je 0x1400569c4
mov qword [rsp + 0x68], r15
cmp dword [rbp + 8], 0
mov qword [rsp + 0x70], rbp
je 0x14005657b
add rsi, 0xfffffffffffffff8
jmp 0x140056582
mov dword [rbp + 0x10], 0
cmp edi, 2
jl 0x140056932
movsxd rax, edi
movsxd rcx, r14d
mov rdx, qword [rsp + 0x38]
lea rbp, [rdx + rax*8]
lea rdi, [rdx + rcx*8]
add rdi, 0xfffffffffffffff8
xor ecx, ecx
jmp 0x1400565c5
add rdi, 0xfffffffffffffff8
mov rax, qword [rsp + 0x88]
mov qword [rsi], rax
inc ecx
add rsi, 0xfffffffffffffff8
cmp ecx, dword [rsp + 0x54]
je 0x140056932
mov qword [rsp + 0x38], rcx
mov r13, rbp
mov qword [rsp + 0x80], 0
mov r8, qword [rdi]
mov rcx, 0xffffffffffffffff
cmp r8, rbx
mov r15, qword [rsp + 0x68]
je 0x14005667d
mov r9, qword [rdi - 8]
mov qword [rsp + 0x20], rbx
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x80]
call fcn.140056eb0
mov rcx, qword [rsp + 0x88]
mov rax, rcx
mov rbp, qword [rsp + 0x58]
mul rbp
mov r8, qword [rsp + 0x80]
mov r9, qword [rdi - 0x10]
cmp r9, rax
mov r10, r8
sbb r10, rdx
jae 0x140056675
add r8, rbx
dec rcx
mov r10, rcx
mov r11, r8
nop word cs:[rax + rax]
mov r8, r11
mov rcx, r10
cmp r11, rbx
jb 0x140056675
sub rax, rbp
sbb rdx, 0
lea r11, [r8 + rbx]
lea r10, [rcx - 1]
cmp r9, rax
mov r14, r8
sbb r14, rdx
jb 0x140056650
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], rcx
test r15d, r15d
je 0x140056739
mov rax, qword [rsp + 0x40]
mov rbp, qword [rax]
mov r14, qword [r12]
xor r8d, r8d
cmp r15d, 4
jb 0x140056728
nop word [rax + rax]
mov rax, rcx
mul qword [r14]
mov r9, rdx
mov r10, rax
add rax, r8
mov qword [rbp], rax
mov rax, rcx
mul qword [r14 + 8]
mov r11, rdx
add r10, r8
adc rax, r9
setb r9b
mov qword [rbp + 8], rax
mov rax, rcx
mul qword [r14 + 0x10]
mov r8, rdx
add r9b, 0xff
adc rax, r11
setb r9b
mov qword [rbp + 0x10], rax
mov rax, rcx
mul qword [r14 + 0x18]
add r9b, 0xff
adc rax, r8
mov r8, rdx
adc r8, 0
mov qword [rbp + 0x18], rax
add r14, 0x20
add rbp, 0x20
add r15, 0xfffffffffffffffc
cmp r15, 4
jae 0x1400566b0
test r15, r15
je 0x1400567aa
test r15b, 1
jne 0x14005673d
mov r11, r15
cmp r15, 1
jne 0x140056763
jmp 0x1400567ad
xor edx, edx
jmp 0x1400567ad
mov rax, rcx
mul qword [r14]
add rax, r8
adc rdx, 0
mov qword [rbp], rax
add r14, 8
add rbp, 8
lea r11, [r15 - 1]
mov r8, rdx
cmp r15, 1
je 0x1400567ad
xor r15d, r15d
nop word cs:[rax + rax]
mov rax, rcx
mul qword [r14 + r15*8]
mov r9, rdx
mov r10, rax
add rax, r8
mov qword [rbp + r15*8], rax
mov rax, rcx
mul qword [r14 + r15*8 + 8]
add r10, r8
adc rax, r9
adc rdx, 0
mov qword [rbp + r15*8 + 8], rax
add r15, 2
mov r8, rdx
cmp r11, r15
jne 0x140056770
jmp 0x1400567ad
mov rdx, r8
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov r14, qword [rsp + 0x68]
mov qword [rax + r14*8], rdx
lea rbp, [r13 - 8]
mov r8, qword [rcx]
mov rcx, rbp
mov rdx, rbp
mov r9, qword [rsp + 0x78]
call fcn.140054b80
test rax, rax
mov rcx, qword [rsp + 0x38]
je 0x1400565a6
dec qword [rsp + 0x88]
test r14d, r14d
je 0x1400565a6
mov rax, qword [r12]
cmp r14d, 4
jae 0x140056818
mov rdx, rbp
mov rcx, r14
xor r8d, r8d
test cl, 1
jne 0x1400568ae
mov r10, rcx
jmp 0x1400568ce
xor edx, edx
mov rcx, r14
xor r8d, r8d
xor r9d, r9d
add r8, qword [rax + rdx]
setb r9b
add qword [r13 + rdx - 8], r8
adc r9, qword [rax + rdx + 8]
setb r8b
add qword [r13 + rdx], r9
mov r9, qword [r13 + rdx + 8]
setb r10b
xor r11d, r11d
add r9, qword [rax + rdx + 0x10]
setb r11b
movzx r8d, r8b
add r10b, 0xff
adc r8, r9
mov r9, qword [r13 + rdx + 0x10]
setb r10b
mov qword [r13 + rdx + 8], r8
xor r8d, r8d
add r9, qword [rax + rdx + 0x18]
setb r8b
add r10b, 0xff
adc r11, r9
adc r8, 0
mov qword [r13 + rdx + 0x10], r11
add rcx, 0xfffffffffffffffc
add rdx, 0x20
cmp rcx, 4
jae 0x140056820
test rcx, rcx
je 0x140056919
add rax, rdx
add rdx, r13
add rdx, 0xfffffffffffffff8
test cl, 1
je 0x140056810
xor r9d, r9d
add r8, qword [rax]
setb r9b
add qword [rdx], r8
adc r9, 0
add rdx, 8
add rax, 8
lea r10, [rcx - 1]
mov r8, r9
cmp rcx, 1
je 0x14005691c
xor ecx, ecx
mov r9, r8
nop dword [rax]
xor r8d, r8d
add r9, qword [rax + rcx*8]
setb r8b
add r9, qword [rdx + rcx*8]
mov qword [rdx + rcx*8], r9
adc r8, qword [rax + rcx*8 + 8]
setb r9b
movzx r9d, r9b
add r8, qword [rdx + rcx*8 + 8]
adc r9, 0
mov qword [rdx + rcx*8 + 8], r8
add rcx, 2
cmp r10, rcx
jne 0x1400568e0
jmp 0x14005691c
mov r9, r8
test r9, r9
mov rcx, qword [rsp + 0x38]
je 0x1400565a6
inc qword [rdi]
jmp 0x1400565a6
mov rdx, qword [rsp + 0x30]
mov eax, dword [rdx + 8]
mov r10d, eax
sar r10d, 0x1f
and r10d, eax
lea r11d, [rax + 1]
mov r8, rax
mov r13, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x60]
test r8d, r8d
jle 0x140056975
mov r9, qword [rdx]
dec r11d
cmp qword [r9 + r8*8 - 8], 0
lea r8, [r8 - 1]
je 0x140056958
mov dword [rdx + 8], r11d
jmp 0x140056984
mov dword [rdx + 8], r10d
test eax, eax
js 0x140056984
mov dword [rdx + 0x10], 0
test rcx, rcx
mov rsi, qword [rsp + 0x70]
je 0x140056a6c
mov r8d, dword [rsp + 0x50]
call fcn.1400571a0
test eax, eax
je 0x1400569c4
mov r9, qword [rsp + 0x60]
movsxd rax, dword [r9 + 8]
test rax, rax
je 0x140056a6c
mov rcx, qword [r9]
cmp eax, 4
jae 0x140056a0c
xor edx, edx
xor r8d, r8d
jmp 0x140056a53
xor edi, edi
cmp byte [r13 + 0x28], 0
jne 0x1400569e6
mov rax, qword [r13 + 8]
mov rcx, qword [r13 + 0x10]
lea rdx, [rcx - 1]
mov qword [r13 + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [r13 + 0x20], rax
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140265fa0
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 0x140056a1e
por xmm1, xmm0
pshufd xmm0, xmm1, 0xee
por xmm0, xmm1
movq r8, xmm0
cmp rdx, rax
je 0x140056a5f
or r8, qword [rcx + rdx*8]
inc rdx
cmp rax, rdx
jne 0x140056a53
test r8, r8
je 0x140056a6c
mov eax, dword [rsp + 0x4c]
mov dword [r9 + 0x10], eax
mov eax, dword [rsi + 8]
mov ecx, eax
sar ecx, 0x1f
and ecx, eax
lea edx, [rax + 1]
mov r8, rax
test r8d, r8d
jle 0x140056a9f
mov r9, qword [rsi]
dec edx
cmp qword [r9 + r8*8 - 8], 0
lea r8, [r8 - 1]
je 0x140056a7c
mov dword [rsi + 8], edx
mov edi, 1
jmp 0x1400569c6
mov dword [rsi + 8], ecx
test eax, eax
js 0x140056aad
mov dword [rsi + 0x10], 0
mov edi, 1
jmp 0x1400569c6