Function at 0x1800ff310
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0xc0
call fcn.18017e6d0
sub rsp, rax
mov rbp, r9
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x50], 0
call fcn.18005d310
mov rcx, rbx
mov qword [rsp + 0x78], rax
call fcn.1800cd530
mov rcx, rax
mov rdi, rax
call fcn.18006aa10
mov rcx, rbx
mov r14, rax
call fcn.1800035c0
mov rcx, rsi
mov qword [rsp + 0x80], rax
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rax
mov r15d, eax
call fcn.180056860
mov ecx, eax
mov dword [rsp + 0x60], eax
xor eax, eax
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xa8], rax
cmp qword [rsp + 0x78], rax
je 0x1800ff944
test ecx, ecx
jle 0x1800ff944
mov rcx, rdi
call fcn.1800ff0b0
mov rbx, rax
test rax, rax
jne 0x1800ff3dd
mov dword [rsp + 0x20], 0x93
jmp 0x1800ff94c
mov rcx, rdi
call fcn.18006c630
mov rcx, rdi
mov qword [rsp + 0x58], rax
call fcn.18006c630
mov qword [rsp + 0x70], rax
call fcn.1800af180
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x58], r15
je 0x1800ff934
cmp qword [rsp + 0x70], r15
je 0x1800ff934
test rax, rax
je 0x1800ff934
mov rcx, rax
call fcn.1800af280
mov r13, qword [rsp + 0x50]
mov rcx, r13
call fcn.1800af370
mov rcx, r13
mov rsi, rax
call fcn.1800af370
mov rcx, r13
mov qword [rsp + 0x90], rax
call fcn.1800af370
mov rcx, r13
mov r12, rax
call fcn.1800af370
mov rcx, r13
mov qword [rsp + 0x88], rax
call fcn.1800af370
mov r13, rax
test rax, rax
jne 0x1800ff484
mov dword [rsp + 0x20], 0xa7
lea r8d, [rax + 3]
jmp 0x1800ff952
lea r15, [rbx + rbx]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xab
mov rcx, r15
call fcn.180054de0
movsxd rcx, dword [rsp + 0x60]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xac
mov qword [rsp + 0x68], rax
call fcn.180054de0
cmp qword [rsp + 0x68], 0
mov qword [rsp + 0x48], rax
je 0x1800ff90d
test rax, rax
je 0x1800ff90d
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x120]
xor edx, edx
mov r8, qword [rax]
call fcn.18017e8a0
mov rdx, r14
mov rcx, rsi
call fcn.1800b2610
test eax, eax
jne 0x1800ff524
lea r9, str.crypto_sm2_sm2_crypt.c
lea edx, [rax + 0x67]
lea ecx, [rax + 0x35]
lea r8d, [rax + 0x44]
mov dword [rsp + 0x20], 0xb6
call fcn.1800493f0
mov r15, qword [rsp + 0x48]
jmp 0x1800ff966
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
xor r14d, r14d
mov qword [rsp + 0x28], rax
xor r9d, r9d
mov r8, rsi
mov rcx, rdi
mov qword [rsp + 0x20], r14
call fcn.18006cfd0
test eax, eax
je 0x1800ff8e6
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x88]
mov r8, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x58]
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.18006dc80
test eax, eax
je 0x1800ff8e6
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x80]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
mov rsi, qword [rsp + 0x70]
mov rdx, rsi
mov rcx, rdi
call fcn.18006cfd0
test eax, eax
je 0x1800ff8e6
mov rax, qword [rsp + 0x50]
mov r9, r13
mov r8, r12
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.18006dc80
test eax, eax
je 0x1800ff8e6
mov rdi, qword [rsp + 0x68]
mov r8d, ebx
mov rcx, r12
mov rdx, rdi
call fcn.1800701d0
test eax, eax
js 0x1800ff8bc
add rdi, rbx
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.1800701d0
test eax, eax
js 0x1800ff8bc
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xc8
mov rcx, rbp
call fcn.180054de0
mov rcx, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1800ff658
lea r9, str.crypto_sm2_sm2_crypt.c
lea edx, [rax + 0x67]
lea ecx, [rax + 0x35]
lea r8d, [r14 + 0x41]
mov dword [rsp + 0x20], 0xca
call fcn.1800493f0
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
jmp 0x1800ff96c
mov rsi, qword [rsp + 0x108]
mov r13, qword [rsp + 0x68]
xor eax, eax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
mov r9, r15
mov r8, r13
mov rdx, rbp
mov qword [rsp + 0x20], rax
call fcn.180104310
test eax, eax
jne 0x1800ff6b5
lea r9, str.crypto_sm2_sm2_crypt.c
lea edx, [rax + 0x67]
lea ecx, [rax + 0x35]
lea r8d, [rax + 6]
mov dword [rsp + 0x20], 0xd1
call fcn.1800493f0
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
jmp 0x1800ff96c
mov r12, qword [rsp + 0x110]
test rbp, rbp
je 0x1800ff6f0
mov rax, qword [rsp + 0x40]
mov r8, r12
mov rdx, rbp
mov rcx, rax
sub r8, rax
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
inc rcx
xor byte [rcx - 1], al
dec rdx
jne 0x1800ff6e0
mov r14, qword [rsp + 0x78]
mov rdx, rsi
mov rcx, r14
call fcn.18005da90
test eax, eax
je 0x1800ff88a
mov r8, rbx
mov rdx, r13
mov rcx, r14
call fcn.18005d5f0
test eax, eax
je 0x1800ff88a
mov r8, rbp
mov rdx, r12
mov rcx, r14
call fcn.18005d5f0
test eax, eax
je 0x1800ff88a
mov r8, rbx
mov rdx, rdi
mov rcx, r14
call fcn.18005d5f0
mov r15, qword [rsp + 0x48]
test eax, eax
je 0x1800ff88f
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call fcn.18005dad0
test eax, eax
je 0x1800ff88f
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xa0], rax
call fcn.180073ec0
mov qword [rsp + 0xa8], rax
call fcn.180073ec0
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xb0], rax
test rcx, rcx
je 0x1800ff85d
test rax, rax
je 0x1800ff85d
mov r8d, dword [rsp + 0x60]
mov rdx, r15
call fcn.1800ab330
mov rbx, qword [rsp + 0x40]
test eax, eax
je 0x1800ff835
mov rcx, qword [rsp + 0xb0]
mov r8d, ebp
mov rdx, rbx
call fcn.1800ab330
test eax, eax
je 0x1800ff835
lea r8, [0x180209f90]
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x98]
call fcn.180076ce0
test eax, eax
jns 0x1800ff810
mov dword [rsp + 0x20], 0xf3
jmp 0x1800ff83d
mov rcx, qword [rsp + 0x128]
cdqe
mov dword [rsp + 0x80], 1
mov r14, qword [rsp + 0x80]
mov qword [rcx], rax
jmp 0x1800ff96c
mov dword [rsp + 0x20], 0xec
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x23]
call fcn.1800493f0
xor r14d, r14d
jmp 0x1800ff96c
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xe7
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x26]
call fcn.1800493f0
mov rbx, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x1800ff96c
mov r15, qword [rsp + 0x48]
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xdd
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x61]
call fcn.1800493f0
mov rbx, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x1800ff96c
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xc4
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x23]
call fcn.1800493f0
mov r15, qword [rsp + 0x48]
jmp 0x1800ff969
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xbe
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x57]
call fcn.1800493f0
mov r15, qword [rsp + 0x48]
jmp 0x1800ff969
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xaf
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x26]
call fcn.1800493f0
mov r15, qword [rsp + 0x48]
jmp 0x1800ff966
mov dword [rsp + 0x20], 0x9b
mov r8d, 0x41
jmp 0x1800ff952
mov dword [rsp + 0x20], 0x8d
mov r8d, 0x44
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
lea ecx, [rdx - 0x32]
call fcn.1800493f0
xor r14d, r14d
mov rbx, r14
mov rcx, qword [rsp + 0xb0]
call fcn.180073fb0
mov rcx, qword [rsp + 0xa8]
call fcn.180073fb0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xfd
mov rcx, rbx
call fcn.180054e60
mov rcx, qword [rsp + 0x68]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xfe
call fcn.180054e60
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xff
mov rcx, r15
call fcn.180054e60
mov rcx, qword [rsp + 0x78]
call fcn.18005d340
mov rcx, qword [rsp + 0x50]
call fcn.1800af220
mov rcx, qword [rsp + 0x58]
call fcn.18006c740
mov rcx, qword [rsp + 0x70]
call fcn.18006c740
mov rbx, qword [rsp + 0x100]
mov eax, r14d
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret