Function at 0x140248c30
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.1402563a0
sub rsp, rax
xor edi, edi
mov rbx, r9
mov rbp, rdx
mov r13d, edi
mov rsi, rcx
call fcn.1400a20b0
mov rcx, rax
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x78], rdi
mov r12, rax
mov qword [rsp + 0x60], rdi
call fcn.140248220
mov rcx, rbp
mov r15, rax
call fcn.1400c6ce0
mov rcx, rsi
mov qword [rsp + 0x70], rdi
movsxd rbp, eax
call fcn.140111030
mov rcx, rsi
mov r14, rax
mov qword [rsp + 0x90], rax
call fcn.140111040
mov qword [rsp + 0x80], rax
test r15, r15
je 0x140248d39
test ebp, ebp
jle 0x140248d39
mov r8, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
mov edx, 0xff
mov r8, qword [r8]
call fcn.1402547c0
lea r9, [0x1403915b0]
lea rdx, [rsp + 0xf0]
mov r8d, ebx
xor ecx, ecx
call fcn.1400f8bd0
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x140248de8
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x12f
call fcn.1400baf60
xor r8d, r8d
lea edx, [rdi + 0x64]
mov ecx, getservbyport
call fcn.1400bb1b0
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.1402547c0
mov r14, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18d
call fcn.1400b45f0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18e
mov rcx, r14
call fcn.1400b45f0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18f
mov rcx, rbp
call fcn.1400b45f0
mov rcx, qword [rsp + 0x68]
call fcn.14011c2c0
mov rcx, r13
call fcn.14016bf70
mov rcx, qword [rsp + 0x78]
lea rdx, [0x1403915b0]
call fcn.1400fa930
mov rcx, rdi
call fcn.1400b3090
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 0x140248e19
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x134
call fcn.1400baf60
xor r8d, r8d
lea edx, [r8 + 0x68]
jmp 0x140248d2f
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 0x140248e66
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x13c
call fcn.1400baf60
xor r8d, r8d
lea edx, [r8 + 0x6b]
jmp 0x140248d2f
mov rcx, r14
call fcn.14016be60
mov r13, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x140248eae
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x142
call fcn.1400baf60
lea ecx, [r13 + 0x35]
xor r8d, r8d
mov edx, 0xc0100
call fcn.1400bb1b0
jmp 0x140248d39
mov rcx, rax
call fcn.14016bfd0
mov rcx, r13
call fcn.14016c0c0
mov rcx, r13
mov r14, rax
call fcn.14016c0c0
mov r13, rax
test rax, rax
jne 0x140248f09
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x14b
call fcn.1400baf60
lea ecx, [r13 + 0x35]
xor r8d, r8d
mov edx, 0x80003
call fcn.1400bb1b0
mov r13, qword [rsp + 0x58]
jmp 0x140248d39
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x14f
mov rcx, rsi
call fcn.1400b4570
lea rcx, [r15 + r15]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x150
mov qword [rsp + 0x70], rax
call fcn.1400b4570
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.1400b4570
mov rbp, rax
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x70], rdi
je 0x1402492d3
cmp qword [rsp + 0x60], rdi
je 0x1402492d3
test rax, rax
je 0x1402492d3
mov rcx, r12
call fcn.14011c190
mov rcx, rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x140248fcf
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x15a
call fcn.1400baf60
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov r13, qword [rsp + 0x58]
jmp 0x140248d3c
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.14011da40
test eax, eax
je 0x140249298
mov rcx, qword [rsp + 0xe0]
call fcn.1401979a0
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.14011ca40
test eax, eax
je 0x140249298
mov rdx, qword [rsp + 0x68]
mov r9, r13
mov r8, r14
mov rcx, r12
mov qword [rsp + 0x20], rbp
call fcn.14011db80
test eax, eax
je 0x140249298
mov rdx, qword [rsp + 0x60]
mov r8d, r15d
mov rcx, r14
call fcn.14011b280
test eax, eax
js 0x14024926e
mov r14, qword [rsp + 0x60]
mov r8d, r15d
mov rcx, r13
lea rbp, [r15 + r14]
mov rdx, rbp
call fcn.14011b280
xor r12d, r12d
test eax, eax
js 0x140249271
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.1401c2780
test eax, eax
je 0x140249271
test rsi, rsi
je 0x140249104
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 0x1402490f0
call fcn.1400b2520
mov rdi, rax
test rax, rax
jne 0x14024914e
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x174
call fcn.1400baf60
mov edx, 0xc0100
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
jmp 0x140248d3f
mov rdx, qword [rsp + 0xe8]
mov rcx, rax
call fcn.1400b4380
test eax, eax
je 0x140249231
mov r8, r15
mov rdx, r14
mov rcx, rdi
call fcn.1400b2550
test eax, eax
je 0x140249231
mov rdx, qword [rsp + 0x100]
mov r8, rsi
mov rcx, rdi
call fcn.1400b2550
test eax, eax
je 0x140249231
mov r8, r15
mov rdx, rbp
mov rcx, rdi
call fcn.1400b2550
mov rbp, qword [rsp + 0x50]
test eax, eax
je 0x140249236
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call fcn.1400b30d0
test eax, eax
je 0x140249236
mov r8, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x98]
mov rcx, rbp
call fcn.14013a590
test eax, eax
je 0x140249216
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x182
call fcn.1400baf60
xor r8d, r8d
lea edx, [r8 + 0x66]
lea ecx, [rdx - 0x31]
call fcn.1400bb1b0
mov r13, qword [rsp + 0x58]
jmp 0x140248d3f
mov rax, qword [rsp + 0x108]
mov r13, qword [rsp + 0x58]
mov r12d, 1
mov qword [rax], rsi
jmp 0x140248d5e
mov rbp, qword [rsp + 0x50]
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x17d
call fcn.1400baf60
xor r8d, r8d
mov edx, 0x80006
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov r13, qword [rsp + 0x58]
jmp 0x140248d3f
xor r12d, r12d
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x16b
call fcn.1400baf60
mov edx, 0xc0103
jmp 0x140249133
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x163
call fcn.1400baf60
xor r8d, r8d
mov edx, 0x80010
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov r13, rbp
mov rbp, qword [rsp + 0x50]
jmp 0x140248d3c
call fcn.1400baef0
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x154
call fcn.1400baf60
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov r13, qword [rsp + 0x58]
jmp 0x140248d3c