Function at 0x1801bb540
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, 0xf0
call fcn.1800b9c10
sub rsp, rax
xor r12d, r12d
mov rbp, r9
mov rsi, rdx
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x68], r12
mov rbx, rcx
call fcn.1800de700
mov rcx, rbx
mov qword [rsp + 0x88], rax
call fcn.18012b3b0
mov rcx, rax
mov rdi, rax
call fcn.180137260
mov rcx, rbx
mov r15, rax
call fcn.1800cc0d0
mov rcx, rsi
mov qword [rsp + 0x78], r12
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x50], r12
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x60], r12
mov r14d, r12d
call fcn.1800cbf00
mov rcx, rbx
mov qword [rsp + 0x98], r14
mov r12d, eax
mov dword [rsp + 0x70], eax
call fcn.180136360
mov rcx, rbx
mov rsi, rax
mov qword [rsp + 0xd8], rax
call fcn.180136370
mov qword [rsp + 0xe0], rax
xor eax, eax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], rax
cmp qword [rsp + 0x88], rax
je 0x1801bbc4d
test r12d, r12d
jle 0x1801bbc4d
mov rcx, rdi
call fcn.1801bb330
mov rbx, rax
test rax, rax
jne 0x1801bb64f
call fcn.1800cb1c0
mov edx, 0x94
jmp 0x1801bbc57
mov rcx, rdi
call fcn.1801375a0
mov rcx, rdi
mov qword [rsp + 0x78], rax
call fcn.1801375a0
mov rcx, rsi
mov qword [rsp + 0x80], rax
call fcn.1801446a0
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x78], r14
je 0x1801bbc29
cmp qword [rsp + 0x80], r14
je 0x1801bbc29
test rax, rax
je 0x1801bbc29
mov rcx, rax
call fcn.180144810
mov r13, qword [rsp + 0x68]
mov rcx, r13
call fcn.180144900
mov rcx, r13
mov rsi, rax
call fcn.180144900
mov rcx, r13
mov qword [rsp + 0xa0], rax
call fcn.180144900
mov rcx, r13
mov r12, rax
call fcn.180144900
mov rcx, r13
mov qword [rsp + 0xa8], rax
call fcn.180144900
mov r13, rax
test rax, rax
jne 0x1801bb715
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xa8
call fcn.1800cb230
mov edx, 0x80003
jmp 0x1801bbc6f
lea r14, [rbx + rbx]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xac
mov rcx, r14
call fcn.1800ca860
movsxd rcx, dword [rsp + 0x70]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xad
mov qword [rsp + 0x60], rax
call fcn.1800ca860
cmp qword [rsp + 0x60], 0
mov qword [rsp + 0x58], rax
je 0x1801bbbef
test rax, rax
je 0x1801bbbef
mov rax, qword [rsp + 0x158]
mov rcx, qword [rsp + 0x150]
xor edx, edx
mov r8, qword [rax]
call fcn.1800b45b0
mov r9, qword [rsp + 0x68]
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call fcn.1801a2b30
test eax, eax
jne 0x1801bb7bc
call fcn.1800cb1c0
mov edx, 0xb7
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1800cb230
mov edx, 0xc0103
jmp 0x1801bbc11
mov r15, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x78]
xor r9d, r9d
mov r8, rsi
mov rcx, rdi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], 0
call fcn.180137e50
test eax, eax
je 0x1801bbbcb
mov r9, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x78]
mov rcx, rdi
mov qword [rsp + 0x20], r15
call fcn.180138f90
test eax, eax
je 0x1801bbbcb
mov r9, qword [rsp + 0xd0]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
mov rsi, qword [rsp + 0x80]
xor r8d, r8d
mov rcx, rdi
mov rdx, rsi
call fcn.180137e50
test eax, eax
je 0x1801bbbcb
mov r9, r13
mov r8, r12
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], r15
call fcn.180138f90
test eax, eax
je 0x1801bbbcb
mov rdi, qword [rsp + 0x60]
mov r8d, ebx
mov rcx, r12
mov rdx, rdi
call fcn.1800e40c0
test eax, eax
js 0x1801bbbbc
add rdi, rbx
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.1800e40c0
test eax, eax
js 0x1801bbbbc
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xc9
mov rcx, rbp
call fcn.1800ca860
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1801bb8c4
call fcn.1800cb1c0
mov edx, 0xcb
jmp 0x1801bbbf9
mov r13, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xd8]
mov r12, qword [rsp + 0x138]
mov r8, qword [rsp + 0x60]
mov qword [rsp + 0x40], r13
xor ecx, ecx
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
mov r9, r14
mov rdx, rbp
mov rcx, rax
call fcn.18013c350
test eax, eax
jne 0x1801bb935
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xd2
call fcn.1800cb230
mov edx, 0x80006
jmp 0x1801bbc11
mov r14, qword [rsp + 0x140]
test rbp, rbp
je 0x1801bb970
mov rax, qword [rsp + 0x50]
mov r8, r14
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 0x1801bb960
mov rcx, r12
call fcn.1800cc750
mov r8, r13
mov rcx, rsi
mov rdx, rax
call fcn.1800dfaf0
mov qword [rsp + 0x98], rax
test rax, rax
jne 0x1801bb9a2
call fcn.1800cb1c0
mov edx, 0xdb
jmp 0x1801bb79f
mov r15, qword [rsp + 0x88]
mov rdx, rax
mov rcx, r15
call fcn.1800e01d0
test eax, eax
je 0x1801bbb7f
mov rdx, qword [rsp + 0x60]
mov r8, rbx
mov rcx, r15
call fcn.1800de730
test eax, eax
je 0x1801bbb7f
mov r8, rbp
mov rdx, r14
mov rcx, r15
call fcn.1800de730
test eax, eax
je 0x1801bbb7f
mov rdx, rdi
mov r8, rbx
mov rcx, r15
mov rdi, r15
call fcn.1800de730
mov r14, qword [rsp + 0x58]
test eax, eax
je 0x1801bbb84
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call fcn.1800defb0
test eax, eax
je 0x1801bbb84
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xb8], rax
call fcn.1800e2290
mov qword [rsp + 0xc0], rax
call fcn.1800e2290
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rax
test rcx, rcx
je 0x1801bbb47
test rax, rax
je 0x1801bbb47
mov r8d, dword [rsp + 0x70]
mov rdx, r14
call fcn.180145240
mov rbx, qword [rsp + 0x50]
test eax, eax
je 0x1801bbb14
mov rcx, qword [rsp + 0xc8]
mov r8d, ebp
mov rdx, rbx
call fcn.180145240
test eax, eax
je 0x1801bbb14
lea r8, [0x1802a0680]
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xb0]
call fcn.180109230
test eax, eax
jns 0x1801bbaf7
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xf9
call fcn.1800cb230
xor r8d, r8d
mov edx, 0xc0103
lea ecx, [r8 + 0x35]
call fcn.1800cb480
jmp 0x1801bbc7e
mov rcx, qword [rsp + 0x158]
cdqe
mov dword [rsp + 0x90], 1
mov qword [rcx], rax
jmp 0x1801bbc7e
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xf2
call fcn.1800cb230
xor r8d, r8d
mov edx, 0xc0103
lea ecx, [r8 + 0x35]
call fcn.1800cb480
jmp 0x1801bbc7e
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xed
call fcn.1800cb230
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov rbx, qword [rsp + 0x50]
jmp 0x1801bbc7e
mov r14, qword [rsp + 0x58]
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xe3
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x80006
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov rbx, qword [rsp + 0x50]
jmp 0x1801bbc7e
call fcn.1800cb1c0
mov edx, 0xc5
jmp 0x1801bb79f
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xbf
call fcn.1800cb230
mov edx, 0x80010
jmp 0x1801bbc11
call fcn.1800cb1c0
mov edx, 0xb0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1800cb230
mov edx, 0xc0100
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
jmp 0x1801bbc7e
call fcn.1800cb1c0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x9c
call fcn.1800cb230
mov edx, 0xc0100
jmp 0x1801bbc6f
call fcn.1800cb1c0
mov edx, 0x8e
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1800cb230
mov edx, 0xc0103
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov rbx, r14
mov rcx, qword [rsp + 0x98]
call fcn.1800dedf0
mov rcx, qword [rsp + 0xc8]
call fcn.1800e2350
mov rcx, qword [rsp + 0xc0]
call fcn.1800e2350
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x104
mov rcx, rbx
call fcn.1800ca8e0
mov rcx, qword [rsp + 0x60]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x105
call fcn.1800ca8e0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x106
mov rcx, r14
call fcn.1800ca8e0
mov rcx, qword [rsp + 0x88]
call fcn.1800def40
mov rcx, qword [rsp + 0x68]
call fcn.1801447b0
mov rcx, qword [rsp + 0x78]
call fcn.1801376d0
mov rcx, qword [rsp + 0x80]
call fcn.1801376d0
mov eax, dword [rsp + 0x90]
mov rbx, qword [rsp + 0x130]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret