Function at 0x1801bbd40
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0xa0
call fcn.1800b9c10
sub rsp, rax
xor edi, edi
mov rbx, r9
mov rbp, rdx
mov r13d, edi
mov rsi, rcx
call fcn.18012b3b0
mov rcx, rax
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x78], rdi
mov r12, rax
mov qword [rsp + 0x60], rdi
call fcn.1801bb330
mov rcx, rbp
mov r15, rax
call fcn.1800cbf00
mov rcx, rsi
mov qword [rsp + 0x70], rdi
movsxd rbp, eax
call fcn.180136360
mov rcx, rsi
mov r14, rax
mov qword [rsp + 0x90], rax
call fcn.180136370
mov qword [rsp + 0x80], rax
test r15, r15
je 0x1801bbe49
test ebp, ebp
jle 0x1801bbe49
mov r8, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
mov edx, 0xff
mov r8, qword [r8]
call fcn.1800b45b0
lea r9, [0x1802a0680]
lea rdx, [rsp + 0xf0]
mov r8d, ebx
xor ecx, ecx
call fcn.180108330
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x1801bbef8
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x12f
call fcn.1800cb230
xor r8d, r8d
lea edx, [rdi + 0x64]
mov ecx, getservbyname
call fcn.1800cb480
mov rbp, rdi
xor r12d, r12d
mov rax, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
xor edx, edx
mov r8, qword [rax]
call fcn.1800b45b0
mov r14, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18d
call fcn.1800ca8e0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18e
mov rcx, r14
call fcn.1800ca8e0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18f
mov rcx, rbp
call fcn.1800ca8e0
mov rcx, qword [rsp + 0x68]
call fcn.1801376d0
mov rcx, r13
call fcn.1801447b0
mov rcx, qword [rsp + 0x78]
lea rdx, [0x1802a0680]
call fcn.1800f6100
mov rcx, rdi
call fcn.1800def40
mov rbx, qword [rsp + 0xf8]
mov eax, r12d
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [rax + 0x10]
cmp dword [rcx], ebp
je 0x1801bbf29
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x134
call fcn.1800cb230
xor r8d, r8d
lea edx, [r8 + 0x68]
jmp 0x1801bbe3f
mov rax, qword [rax + 0x18]
mov rcx, qword [rcx + 8]
movsxd rsi, dword [rax]
mov rbx, qword [rax + 8]
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x98], rcx
cmp qword [rax], rsi
jae 0x1801bbf76
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x13c
call fcn.1800cb230
xor r8d, r8d
lea edx, [r8 + 0x6b]
jmp 0x1801bbe3f
mov rcx, r14
call fcn.1801446a0
mov r13, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x1801bbfbe
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x142
call fcn.1800cb230
lea ecx, [r13 + 0x35]
xor r8d, r8d
mov edx, 0xc0100
call fcn.1800cb480
jmp 0x1801bbe49
mov rcx, rax
call fcn.180144810
mov rcx, r13
call fcn.180144900
mov rcx, r13
mov r14, rax
call fcn.180144900
mov r13, rax
test rax, rax
jne 0x1801bc019
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x14b
call fcn.1800cb230
lea ecx, [r13 + 0x35]
xor r8d, r8d
mov edx, 0x80003
call fcn.1800cb480
mov r13, qword [rsp + 0x58]
jmp 0x1801bbe49
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x14f
mov rcx, rsi
call fcn.1800ca860
lea rcx, [r15 + r15]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x150
mov qword [rsp + 0x70], rax
call fcn.1800ca860
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x151
mov rcx, rbp
mov qword [rsp + 0x88], rbp
mov qword [rsp + 0x60], rax
call fcn.1800ca860
mov rbp, rax
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x70], rdi
je 0x1801bc3e3
cmp qword [rsp + 0x60], rdi
je 0x1801bc3e3
test rax, rax
je 0x1801bc3e3
mov rcx, r12
call fcn.1801375a0
mov rcx, rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x1801bc0df
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x15a
call fcn.1800cb230
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov r13, qword [rsp + 0x58]
jmp 0x1801bbe4c
mov rax, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x58]
mov rdx, rcx
mov r9, qword [rax + 8]
mov r8, qword [rax]
mov rcx, r12
mov qword [rsp + 0x20], rbp
call fcn.180138e50
test eax, eax
je 0x1801bc3a8
mov rcx, qword [rsp + 0xe0]
call fcn.1801323e0
mov qword [rsp + 0x28], rbp
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x68]
mov rcx, r12
mov r9, rax
mov rdx, rax
call fcn.180137e50
test eax, eax
je 0x1801bc3a8
mov rdx, qword [rsp + 0x68]
mov r9, r13
mov r8, r14
mov rcx, r12
mov qword [rsp + 0x20], rbp
call fcn.180138f90
test eax, eax
je 0x1801bc3a8
mov rdx, qword [rsp + 0x60]
mov r8d, r15d
mov rcx, r14
call fcn.1800e40c0
test eax, eax
js 0x1801bc37e
mov r14, qword [rsp + 0x60]
mov r8d, r15d
mov rcx, r13
lea rbp, [r15 + r14]
mov rdx, rbp
call fcn.1800e40c0
xor r12d, r12d
test eax, eax
js 0x1801bc381
mov rax, qword [rsp + 0x80]
mov r13, qword [rsp + 0x70]
lea r9, [r15 + r15]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x90]
mov r8, r14
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xe8]
mov rdx, rsi
mov qword [rsp + 0x30], rax
mov rcx, r13
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.18013c350
test eax, eax
je 0x1801bc381
test rsi, rsi
je 0x1801bc214
mov r8, qword [rsp + 0x100]
sub rbx, r13
mov rcx, r13
sub r8, r13
mov rdx, rsi
movzx eax, byte [rbx + rcx]
inc rcx
xor al, byte [rcx - 1]
dec rdx
mov byte [r8 + rcx - 1], al
jne 0x1801bc200
call fcn.1800de700
mov rdi, rax
test rax, rax
jne 0x1801bc25e
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x174
call fcn.1800cb230
mov edx, 0xc0100
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
jmp 0x1801bbe4f
mov rdx, qword [rsp + 0xe8]
mov rcx, rax
call fcn.1800e01d0
test eax, eax
je 0x1801bc341
mov r8, r15
mov rdx, r14
mov rcx, rdi
call fcn.1800de730
test eax, eax
je 0x1801bc341
mov rdx, qword [rsp + 0x100]
mov r8, rsi
mov rcx, rdi
call fcn.1800de730
test eax, eax
je 0x1801bc341
mov r8, r15
mov rdx, rbp
mov rcx, rdi
call fcn.1800de730
mov rbp, qword [rsp + 0x50]
test eax, eax
je 0x1801bc346
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call fcn.1800defb0
test eax, eax
je 0x1801bc346
mov r8, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x98]
mov rcx, rbp
call fcn.1800d8df0
test eax, eax
je 0x1801bc326
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x182
call fcn.1800cb230
xor r8d, r8d
lea edx, [r8 + 0x66]
lea ecx, [rdx - 0x31]
call fcn.1800cb480
mov r13, qword [rsp + 0x58]
jmp 0x1801bbe4f
mov rax, qword [rsp + 0x108]
mov r13, qword [rsp + 0x58]
mov r12d, 1
mov qword [rax], rsi
jmp 0x1801bbe6e
mov rbp, qword [rsp + 0x50]
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x17d
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x80006
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov r13, qword [rsp + 0x58]
jmp 0x1801bbe4f
xor r12d, r12d
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x16b
call fcn.1800cb230
mov edx, 0xc0103
jmp 0x1801bc243
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x163
call fcn.1800cb230
xor r8d, r8d
mov edx, 0x80010
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov r13, rbp
mov rbp, qword [rsp + 0x50]
jmp 0x1801bbe4c
call fcn.1800cb1c0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x154
call fcn.1800cb230
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1800cb480
mov r13, qword [rsp + 0x58]
jmp 0x1801bbe4c