Function at 0x180103740
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.180188f30
sub rsp, rax
mov rbp, r9
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x50], 0
call fcn.180104dd0
mov rcx, rbx
mov qword [rsp + 0x78], rax
call fcn.18011b720
mov rcx, rax
mov rdi, rax
call fcn.1800ed370
mov rcx, rbx
mov r14, rax
call fcn.18011b7a0
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.1800b94f0
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 0x180103d74
test ecx, ecx
jle 0x180103d74
mov rcx, rdi
call fcn.180103540
mov rbx, rax
test rax, rax
jne 0x18010380d
mov dword [rsp + 0x20], 0x8a
jmp 0x180103d7c
mov rcx, rdi
call fcn.1800ff280
mov rcx, rdi
mov qword [rsp + 0x58], rax
call fcn.1800ff280
mov qword [rsp + 0x70], rax
call fcn.180143990
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x58], r15
je 0x180103d64
cmp qword [rsp + 0x70], r15
je 0x180103d64
test rax, rax
je 0x180103d64
mov rcx, rax
call fcn.180143a90
mov r13, qword [rsp + 0x50]
mov rcx, r13
call fcn.180143b80
mov rcx, r13
mov rsi, rax
call fcn.180143b80
mov rcx, r13
mov qword [rsp + 0x90], rax
call fcn.180143b80
mov rcx, r13
mov r12, rax
call fcn.180143b80
mov rcx, r13
mov qword [rsp + 0x88], rax
call fcn.180143b80
mov r13, rax
test rax, rax
jne 0x1801038b4
mov dword [rsp + 0x20], 0x9e
lea r8d, [rax + 3]
jmp 0x180103d82
lea r15, [rbx + rbx]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xa2
mov rcx, r15
call fcn.1800b7230
movsxd rcx, dword [rsp + 0x60]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xa3
mov qword [rsp + 0x68], rax
call fcn.1800b7230
cmp qword [rsp + 0x68], 0
mov qword [rsp + 0x48], rax
je 0x180103d3d
test rax, rax
je 0x180103d3d
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0x120]
xor edx, edx
mov r8, qword [rax]
call fcn.180189610
mov rdx, r14
mov rcx, rsi
call fcn.180144070
test eax, eax
jne 0x180103954
lea r9, str.crypto_sm2_sm2_crypt.c
lea edx, [rax + 0x67]
lea ecx, [rax + 0x35]
lea r8d, [rax + 0x44]
mov dword [rsp + 0x20], 0xad
call fcn.1800b8900
mov r15, qword [rsp + 0x48]
jmp 0x180103d96
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.1800ffc20
test eax, eax
je 0x180103d16
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.1801008e0
test eax, eax
je 0x180103d16
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.1800ffc20
test eax, eax
je 0x180103d16
mov rax, qword [rsp + 0x50]
mov r9, r13
mov r8, r12
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1801008e0
test eax, eax
je 0x180103d16
mov rdi, qword [rsp + 0x68]
mov r8d, ebx
mov rcx, r12
mov rdx, rdi
call fcn.1800d3b20
test eax, eax
js 0x180103cec
add rdi, rbx
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.1800d3b20
test eax, eax
js 0x180103cec
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xbf
mov rcx, rbp
call fcn.1800b7230
mov rcx, rax
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x180103a88
lea r9, str.crypto_sm2_sm2_crypt.c
lea edx, [rax + 0x67]
lea ecx, [rax + 0x35]
lea r8d, [r14 + 0x41]
mov dword [rsp + 0x20], 0xc1
call fcn.1800b8900
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
jmp 0x180103d9c
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.18011bde0
test eax, eax
jne 0x180103ae5
lea r9, str.crypto_sm2_sm2_crypt.c
lea edx, [rax + 0x67]
lea ecx, [rax + 0x35]
lea r8d, [rax + 6]
mov dword [rsp + 0x20], 0xc8
call fcn.1800b8900
mov rbx, qword [rsp + 0x40]
mov r15, qword [rsp + 0x48]
jmp 0x180103d9c
mov r12, qword [rsp + 0x110]
test rbp, rbp
je 0x180103b20
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 0x180103b10
mov r14, qword [rsp + 0x78]
mov rdx, rsi
mov rcx, r14
call fcn.180105510
test eax, eax
je 0x180103cba
mov r8, rbx
mov rdx, r13
mov rcx, r14
call fcn.1801050b0
test eax, eax
je 0x180103cba
mov r8, rbp
mov rdx, r12
mov rcx, r14
call fcn.1801050b0
test eax, eax
je 0x180103cba
mov r8, rbx
mov rdx, rdi
mov rcx, r14
call fcn.1801050b0
mov r15, qword [rsp + 0x48]
test eax, eax
je 0x180103cbf
xor r8d, r8d
mov rdx, r15
mov rcx, r14
call fcn.180105550
test eax, eax
je 0x180103cbf
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xa0], rax
call fcn.1800d1570
mov qword [rsp + 0xa8], rax
call fcn.1800d1570
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xb0], rax
test rcx, rcx
je 0x180103c8d
test rax, rax
je 0x180103c8d
mov r8d, dword [rsp + 0x60]
mov rdx, r15
call fcn.18015b9e0
mov rbx, qword [rsp + 0x40]
test eax, eax
je 0x180103c65
mov rcx, qword [rsp + 0xb0]
mov r8d, ebp
mov rdx, rbx
call fcn.18015b9e0
test eax, eax
je 0x180103c65
lea r8, [0x1801de0d0]
lea rdx, [rsp + 0x120]
lea rcx, [rsp + 0x98]
call fcn.1800f8bd0
test eax, eax
jns 0x180103c40
mov dword [rsp + 0x20], 0xea
jmp 0x180103c6d
mov rcx, qword [rsp + 0x128]
cdqe
mov dword [rsp + 0x80], 1
mov r14, qword [rsp + 0x80]
mov qword [rcx], rax
jmp 0x180103d9c
mov dword [rsp + 0x20], 0xe3
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x23]
call fcn.1800b8900
xor r14d, r14d
jmp 0x180103d9c
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xde
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x26]
call fcn.1800b8900
mov rbx, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x180103d9c
mov r15, qword [rsp + 0x48]
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xd4
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x61]
call fcn.1800b8900
mov rbx, qword [rsp + 0x40]
xor r14d, r14d
jmp 0x180103d9c
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xbb
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x23]
call fcn.1800b8900
mov r15, qword [rsp + 0x48]
jmp 0x180103d99
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xb5
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x57]
call fcn.1800b8900
mov r15, qword [rsp + 0x48]
jmp 0x180103d99
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
mov dword [rsp + 0x20], 0xa6
lea ecx, [rdx - 0x32]
lea r8d, [rdx - 0x26]
call fcn.1800b8900
mov r15, qword [rsp + 0x48]
jmp 0x180103d96
mov dword [rsp + 0x20], 0x92
mov r8d, 0x41
jmp 0x180103d82
mov dword [rsp + 0x20], 0x84
mov r8d, 0x44
mov edx, 0x67
lea r9, str.crypto_sm2_sm2_crypt.c
lea ecx, [rdx - 0x32]
call fcn.1800b8900
xor r14d, r14d
mov rbx, r14
mov rcx, qword [rsp + 0xb0]
call fcn.1800d1600
mov rcx, qword [rsp + 0xa8]
call fcn.1800d1600
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xf4
mov rcx, rbx
call fcn.1800b72b0
mov rcx, qword [rsp + 0x68]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xf5
call fcn.1800b72b0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xf6
mov rcx, r15
call fcn.1800b72b0
mov rcx, qword [rsp + 0x78]
call fcn.180104e00
mov rcx, qword [rsp + 0x50]
call fcn.180143a30
mov rcx, qword [rsp + 0x58]
call fcn.1800ff390
mov rcx, qword [rsp + 0x70]
call fcn.1800ff390
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