Function at 0x1800521f0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x168
call fcn.1800c7940
sub rsp, rax
mov rax, qword [0x18010db20]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0x1d0]
lea esi, [r8 - 0x61]
mov qword [rsp + 0x38], rdx
mov r15d, ecx
lea rdx, str..cryptoecdsaecs_ossl.c
mov r8d, 0x7cb
mov ecx, esi
mov qword [rsp + 0x70], r9
mov qword [rsp + 0x58], rax
xor edi, edi
call fcn.180055b80
lea r8d, [rdi + 0x70]
mov r14, rax
xor eax, eax
lea rcx, [rsp + 0x80]
xor ebx, ebx
xor edx, edx
xor ebp, ebp
mov qword [rsp + 0x111], rax
mov qword [rsp + 0x119], rax
mov qword [rsp + 0x121], rax
mov qword [rsp + 0x129], rax
mov qword [rsp + 0x131], rax
mov qword [rsp + 0x139], rax
mov qword [rsp + 0x141], rax
mov dword [rsp + 0x149], eax
mov word [rsp + 0x14d], ax
mov byte [rsp + 0x14f], al
mov byte [rsp + 0xf0], al
mov qword [rsp + 0xf1], rax
mov qword [rsp + 0xf9], rax
mov qword [rsp + 0x101], rax
mov dword [rsp + 0x109], eax
mov word [rsp + 0x10d], ax
mov byte [rsp + 0x10f], al
xor r12d, r12d
xor r13d, r13d
mov byte [rsp + 0x110], bl
call fcn.180037390
call fcn.180057f40
mov qword [rsp + 0x68], rax
call fcn.1800531d0
mov qword [rsp + 0x40], rax
call fcn.1800531d0
mov qword [rsp + 0x48], rax
call fcn.1800531d0
mov qword [rsp + 0x30], rax
call fcn.1800531d0
mov qword [rsp + 0x50], rax
call fcn.1800531d0
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x38]
cmp byte [rax], 4
jne 0x180052613
mov r8, qword [rsp + 0x40]
lea rcx, [rax + 1]
lea edx, [rdi + 0x20]
call fcn.180053570
test rax, rax
je 0x180052613
mov rcx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x48]
lea edx, [rdi + 0x20]
add rcx, 0x21
call fcn.180053570
test rax, rax
je 0x180052613
mov ecx, r15d
call fcn.180056350
mov rbx, rax
test rax, rax
je 0x180052613
mov rcx, rax
call fcn.180056b50
mov rcx, rbx
mov rbp, rax
call fcn.180056b50
mov rcx, rbx
mov r12, rax
call fcn.180056b50
mov r13, rax
test rbp, rbp
je 0x180052613
test r12, r12
je 0x180052613
test rax, rax
je 0x180052613
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
mov rdx, rbp
mov rcx, rbx
mov qword [rsp + 0x20], rdi
call fcn.180056f00
test eax, eax
je 0x180052613
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call fcn.180057320
test eax, eax
je 0x180052613
mov r15, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rcx, rbx
mov rdx, r15
call fcn.1800565a0
mov edi, eax
test eax, eax
je 0x180052613
mov r9, rbp
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], r15
call fcn.180057530
test eax, eax
je 0x180052613
mov rdx, r12
mov rcx, rbx
call fcn.1800572a0
test eax, eax
jne 0x180052613
mov rax, qword [rsp + 0x70]
xor r15d, r15d
mov r9, rbp
xor r8d, r8d
mov rdx, r13
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.180057530
test eax, eax
je 0x180052613
mov r9, qword [rsp + 0x50]
mov qword [rsp + 0x20], r15
mov r15, qword [rsp + 0x30]
mov r8, r15
mov rdx, r13
mov rcx, rbx
call fcn.180057010
test eax, eax
je 0x180052618
lea rdx, [rsp + 0x110]
mov rcx, r15
call fcn.1800510a0
test eax, eax
je 0x180052618
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x130]
call fcn.1800510a0
test eax, eax
je 0x180052618
lea r8d, [rsi*8]
lea rcx, [rsp + 0x110]
mov r9, r14
mov edx, 0x40
call fcn.1800518f0
mov edi, eax
test eax, eax
je 0x180052618
xor ecx, ecx
test esi, esi
jle 0x180052618
mov rax, r14
cmp byte [rax], 0
jne 0x180052529
inc ecx
inc rax
cmp ecx, esi
jl 0x180052516
jmp 0x180052618
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0x38]
mov r11, r14
add r9, 0x41
mov edi, esi
mov r10d, esi
sub r11, rdx
mov rcx, rdx
nop word [rax + rax]
movzx eax, byte [r11 + rcx]
inc rcx
inc r9
xor al, byte [r9 - 1]
sub r10, 1
mov byte [rcx - 1], al
jne 0x180052550
lea rcx, [rsp + 0x80]
call fcn.180059770
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x80]
mov r8d, 0x20
call fcn.180059c60
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x80]
mov r8, rdi
call fcn.180059c60
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x80]
mov r8d, 0x20
call fcn.180059c60
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0xf0]
call fcn.180059d50
mov rcx, qword [rsp + 0x38]
movsxd rax, esi
lea rcx, [rax + rcx + 0x41]
xor r11d, r11d
nop word [rax + rax]
movzx eax, byte [rcx + r11]
cmp byte [rsp + r11 + 0xf0], al
jne 0x18005260f
inc r11
cmp r11, 0x20
jl 0x1800525f0
mov edi, 1
jmp 0x180052618
xor edi, edi
jmp 0x180052618
mov r15, qword [rsp + 0x30]
test r14, r14
je 0x180052625
mov rcx, r14
call fcn.180055e30
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x180052637
mov rcx, rax
call fcn.1800530f0
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x180052649
mov rcx, rax
call fcn.1800530f0
test r15, r15
je 0x180052656
mov rcx, r15
call fcn.1800530f0
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x180052668
mov rcx, rax
call fcn.1800530f0
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x18005267a
mov rcx, rax
call fcn.1800530f0
test rbp, rbp
je 0x180052687
mov rcx, rbp
call fcn.180056c50
test r12, r12
je 0x180052694
mov rcx, r12
call fcn.180056c50
test r13, r13
je 0x1800526a1
mov rcx, r13
call fcn.180056c50
test rbx, rbx
je 0x1800526ae
mov rcx, rbx
call fcn.1800575f0
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x1800526c0
mov rcx, rax
call fcn.180057fc0
mov eax, edi
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.180037360
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret