Function at 0x6bc040
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x228
mov qword [rsp + 0x270], rcx
mov qword [rsp + 0x278], rdx
mov qword [rsp + 0x280], r8
mov qword [rsp + 0x288], r9
cmp rdx, r8
je 0x6bc901
mov rcx, qword [rsp + 0x290]
call sym.BN_CTX_start
mov rcx, qword [rsp + 0x290]
call sym.BN_CTX_get
mov qword [rsp + 0x128], rax
test rax, rax
je 0x6bc873
mov rdi, rax
mov rax, qword [rsp + 0x280]
mov rcx, rdi
mov ebx, dword [rax + 8]
mov rax, qword [rsp + 0x278]
add ebx, dword [rax + 8]
lea esi, [rbx + 4]
mov edx, esi
call sym.bn_wexpand
test rax, rax
je 0x6bc873
mov dword [rdi + 8], esi
test esi, esi
jle 0x6bc0fa
mov rsi, qword [rsp + 0x128]
lea eax, [rbx + 3]
xor edx, edx
lea r8, [rax*8 + 8]
mov rcx, qword [rsi]
call sym.memset
mov rax, qword [rsp + 0x280]
mov ecx, dword [rax + 8]
test ecx, ecx
jle 0x6bc8cb
mov rax, qword [rsp + 0x278]
mov qword [rsp + 0x168], 0
mov dword [rsp + 0x164], 0
mov eax, dword [rax + 8]
nop
mov rdx, qword [rsp + 0x280]
mov rbx, qword [rsp + 0x168]
mov r8, qword [rdx]
mov rdx, qword [r8 + rbx]
mov qword [rsp + 0x78], rdx
mov edx, dword [rsp + 0x164]
lea r9d, [rdx + 1]
xor edx, edx
cmp ecx, r9d
je 0x6bc163
mov rdx, qword [r8 + rbx + 8]
test eax, eax
jle 0x6bc8ab
mov rcx, rdx
mov rbx, rdx
mov rdi, rdx
mov rsi, rdx
shr rcx, 4
shr rbx, 0x3c
mov r12, qword [rsp + 0x168]
mov qword [rsp + 0x40], 0
and ecx, 0xf
shl rdi, 0x3d
mov qword [rsp + 0xf0], rbx
mov rbx, rdx
mov qword [rsp + 0x80], rcx
shr rbx, 3
mov rcx, rdx
shl rsi, 0x3e
shr rcx, 8
mov qword [rsp + 0x130], rdi
mov rdi, rdx
and ecx, 0xf
mov qword [rsp + 0x140], rsi
mov rsi, rdx
mov qword [rsp + 0x88], rcx
mov rcx, rdx
shr rcx, 0xc
mov qword [rsp + 0x138], rbx
mov rbx, rdx
and ecx, 0xf
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x90], rcx
mov rcx, rdx
shr rcx, 0x10
and ecx, 0xf
mov qword [rsp + 0x98], rcx
mov rcx, rdx
shr rcx, 0x14
and ecx, 0xf
mov qword [rsp + 0xa0], rcx
mov rcx, rdx
shr rcx, 0x18
and ecx, 0xf
mov qword [rsp + 0xa8], rcx
mov rcx, rdx
shr rcx, 0x1c
and ecx, 0xf
mov qword [rsp + 0xb0], rcx
mov rcx, rdx
shr rcx, 0x20
and ecx, 0xf
mov qword [rsp + 0xb8], rcx
mov rcx, rdx
shr rcx, 0x24
and ecx, 0xf
mov qword [rsp + 0xc0], rcx
mov rcx, rdx
shr rcx, 0x28
and ecx, 0xf
mov qword [rsp + 0xc8], rcx
mov rcx, rdx
shr rcx, 0x2c
and ecx, 0xf
mov qword [rsp + 0xd0], rcx
mov rcx, rdx
shr rcx, 0x30
and ecx, 0xf
mov qword [rsp + 0xd8], rcx
mov rcx, rdx
shr rcx, 0x34
and ecx, 0xf
mov qword [rsp + 0xe0], rcx
mov rcx, rdx
shr rcx, 0x38
and ecx, 0xf
shr rdi, 2
xor ebp, ebp
mov qword [rsp + 0x148], rdi
mov rdi, qword [rsp + 0x78]
shr rsi, 1
shl rbx, 0x3f
mov qword [rsp + 0x158], rsi
lea rsi, [rsp + 0x180]
xor rdi, rdx
and edx, 0xf
mov qword [rsp + 0x108], rsi
lea rsi, [rsp + 0x178]
mov qword [rsp + 0xf8], rdi
lea rdi, [rsp + 0x1a0]
mov qword [rsp + 0x100], rdx
lea rdx, [rsp + 0x188]
mov qword [rsp + 0xe8], rcx
mov ecx, ebp
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0x120], rsi
mov dword [rsp + 0x160], ebp
jmp 0x6bc7f6
mov rax, qword [rdx + rbx + 8]
movabs rbx, 0x1fffffffffffffff
xor rdi, rax
mov qword [rsp + 0x50], rdi
mov rdi, rax
and rax, rbx
lea r8, [rax + rax]
mov r9, rax
shr rdi, 0x3d
mov rbx, rax
mov r11, r8
xor r9, r8
mov r15, rax
mov r14, r8
lea rdx, [rax*8]
lea rcx, [rax*4]
xor r11, rcx
mov rsi, rdx
mov r10, rcx
xor rbx, rcx
xor rsi, r11
xor r10, r9
mov r13, rdx
mov r12, rcx
mov qword [rsp + 0x28], rsi
mov rsi, rdx
mov rbp, rdx
xor r15, rdx
xor rsi, r10
xor r14, rdx
xor r13, r9
xor r12, rdx
mov qword [rsp + 0x30], rsi
mov rsi, rdi
xor rbp, rbx
and esi, 1
mov qword [rsp + 0x58], rsi
mov rsi, rdi
and edi, 4
and esi, 2
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x1a8], rax
mov rax, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0x1b0], r8
mov qword [rsp + 0x210], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x1c8], rbx
mov rbx, qword [rsp + 0x90]
mov qword [rsp + 0x1d0], r11
mov qword [rsp + 0x1d8], r10
mov qword [rsp + 0x1e8], r15
mov qword [rsp + 0x1f0], r14
mov r14, qword [rsp + 0xb0]
mov qword [rsp + 0x1f8], r13
mov qword [rsp + 0x200], r12
mov qword [rsp + 0x218], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x1b8], r9
mov qword [rsp + 0x1c0], rcx
mov qword [rsp + 0x1e0], rdx
mov qword [rsp + 0x208], rbp
mov r9, qword [rsp + rdi*8 + 0x1a0]
mov rdi, qword [rsp + 0x98]
mov rcx, qword [rsp + rbx*8 + 0x1a0]
mov rbx, qword [rsp + 0xa0]
mov rax, qword [rsp + rax*8 + 0x1a0]
mov rdx, qword [rsp + rdi*8 + 0x1a0]
mov rdi, qword [rsp + 0xa8]
mov rbx, qword [rsp + rbx*8 + 0x1a0]
mov rbp, qword [rsp + r14*8 + 0x1a0]
mov r10, rax
shl rax, 4
mov rdi, qword [rsp + rdi*8 + 0x1a0]
mov r14, qword [rsp + 0xb8]
shr r10, 0x3c
mov r8, qword [rsp + 0xd0]
mov r11, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0x100]
mov r12, qword [rsp + r14*8 + 0x1a0]
mov r15, qword [rsp + r8*8 + 0x1a0]
mov r8, qword [rsp + 0xd8]
mov r11, qword [rsp + r11*8 + 0x1a0]
mov r14, qword [rsp + 0xc0]
mov r8, qword [rsp + r8*8 + 0x1a0]
mov qword [rsp + 0x30], r11
mov r13, qword [rsp + r14*8 + 0x1a0]
mov qword [rsp + 0x28], r8
mov r8, qword [rsp + 0xe8]
mov r14, qword [rsp + 0xc8]
mov r8, qword [rsp + r8*8 + 0x1a0]
mov r14, qword [rsp + r14*8 + 0x1a0]
mov qword [rsp + 0x48], r8
mov r8, qword [rsp + 0xf0]
mov r8, qword [rsp + r8*8 + 0x1a0]
mov r11, r8
shl r11, 0x3c
xor r11, qword [rsp + rsi*8 + 0x1a0]
mov rsi, qword [rsp + 0x48]
xor rax, r11
mov r11, r9
shr r9, 0x38
shl r11, 8
xor r11, rax
mov rax, rcx
shl rax, 0xc
xor rax, r11
mov r11, rdx
shl r11, 0x10
xor rax, r11
mov r11, rbx
shl r11, 0x14
xor r11, rax
mov rax, rdi
shl rax, 0x18
xor r11, rax
mov rax, rbp
shl rax, 0x1c
xor rax, r11
mov r11, r12
shl r11, 0x20
xor rax, r11
mov r11, r13
shl r11, 0x24
xor r11, rax
mov rax, r14
shl rax, 0x28
xor r11, rax
mov rax, r15
shl rax, 0x2c
xor rax, r11
mov r11, qword [rsp + 0x28]
shl r11, 0x30
xor rax, r11
mov r11, qword [rsp + 0x30]
shl r11, 0x34
xor r11, rax
mov rax, rsi
shl rax, 0x38
xor rax, r11
xor r9, r10
shr r8, 4
shr rcx, 0x34
xor r9, r8
shr rdx, 0x30
shr rbx, 0x2c
xor r9, rcx
shr rdi, 0x28
shr rbp, 0x24
xor r9, rdx
shr r12, 0x20
shr r13, 0x1c
xor r9, rbx
shr r14, 0x18
xor r9, rdi
shr r15, 0x14
xor r9, rbp
xor r9, r12
xor r9, r13
xor r9, r14
xor r9, r15
mov r15, qword [rsp + 0x28]
shr r15, 0x10
xor r9, r15
mov r15, qword [rsp + 0x30]
shr r15, 0xc
xor r9, r15
mov r15, rsi
shr r15, 8
xor r9, r15
cmp qword [rsp + 0x58], 0
je 0x6bc6b3
xor rax, qword [rsp + 0x130]
xor r9, qword [rsp + 0x138]
cmp qword [rsp + 0x60], 0
je 0x6bc6cb
xor rax, qword [rsp + 0x140]
xor r9, qword [rsp + 0x148]
cmp qword [rsp + 0x68], 0
je 0x6bc6e3
xor rax, qword [rsp + 0x150]
xor r9, qword [rsp + 0x158]
movq xmm0, rax
movq xmm1, r9
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
punpcklqdq xmm0, xmm1
movups xmmword [rsp + 0x190], xmm0
call sym.bn_GF2m_mul_1x1
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x120]
mov r9, qword [rsp + 0xf8]
call sym.bn_GF2m_mul_1x1
mov rax, qword [rsp + 0x178]
mov r8, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
mov rdx, qword [rsp + 0x180]
xor rcx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x70]
xor rcx, rax
xor rax, r8
add dword [rsp + 0x160], 2
xor rcx, r8
xor rax, rdx
xor rax, qword [rsp + 0x1a0]
add qword [rsp + 0x40], 0x10
xor rax, rcx
mov qword [rsp + 0x190], rcx
mov qword [rsp + 0x188], rax
mov rax, qword [rsp + 0x128]
mov rax, qword [rax]
xor qword [rax + rsi], rdx
mov rdx, qword [rsp + 0x188]
xor qword [rax + rsi + 8], rdx
lea rdx, [rsi + 0x10]
mov rcx, qword [rsp + 0x190]
xor qword [rax + rdx], rcx
mov rcx, qword [rsp + 0x198]
xor qword [rax + rsi + 0x18], rcx
mov rax, qword [rsp + 0x278]
mov esi, dword [rsp + 0x160]
mov eax, dword [rax + 8]
cmp eax, esi
jle 0x6bc8a0
mov qword [rsp + 0x70], rdx
mov ecx, esi
mov rdi, qword [rsp + 0x278]
mov rbx, qword [rsp + 0x40]
add ecx, 1
mov rdx, qword [rdi]
mov rdi, qword [rdx + rbx]
mov qword [rsp + 0x38], rdi
cmp ecx, eax
jne 0x6bc350
mov qword [rsp + 0x50], rdi
xor ebp, ebp
xor r12d, r12d
xor r13d, r13d
mov qword [rsp + 0x68], 0
xor r14d, r14d
xor ebx, ebx
xor edx, edx
mov qword [rsp + 0x60], 0
xor r15d, r15d
xor ecx, ecx
xor eax, eax
xor r10d, r10d
xor r11d, r11d
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
jmp 0x6bc3ef
xor r12d, r12d
mov rcx, qword [rsp + 0x290]
call sym.BN_CTX_end
mov eax, r12d
add rsp, 0x228
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x280]
mov ecx, dword [rdx + 8]
add dword [rsp + 0x164], 2
mov edi, dword [rsp + 0x164]
add qword [rsp + 0x168], 0x10
cmp ecx, edi
jg 0x6bc130
mov rsi, qword [rsp + 0x128]
xor r12d, r12d
mov rcx, rsi
call sym.bn_correct_top
mov r8, qword [rsp + 0x288]
mov rcx, qword [rsp + 0x270]
mov rdx, rsi
call sym.BN_GF2m_mod_arr
test eax, eax
setne r12b
jmp 0x6bc876
mov r8, r9
mov r9, qword [rsp + 0x290]
call sym.BN_GF2m_mod_sqr_arr
mov r12d, eax
jmp 0x6bc883