Function at 0x140248c80
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.1402563f0
sub rsp, rax
xor edi, edi
mov rbx, r9
mov rbp, rdx
mov r13d, edi
mov rsi, rcx
call fcn.1400a2100
mov rcx, rax
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x78], rdi
mov r12, rax
mov qword [rsp + 0x60], rdi
call fcn.140248270
mov rcx, rbp
mov r15, rax
call fcn.1400c6d30
mov rcx, rsi
mov qword [rsp + 0x70], rdi
movsxd rbp, eax
call fcn.140111080
mov rcx, rsi
mov r14, rax
mov qword [rsp + 0x90], rax
call fcn.140111090
mov qword [rsp + 0x80], rax
test r15, r15
je 0x140248d89
test ebp, ebp
jle 0x140248d89
mov r8, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x100]
mov edx, 0xff
mov r8, qword [r8]
call fcn.140254810
lea r9, [0x1403915b0]
lea rdx, [rsp + 0xf0]
mov r8d, ebx
xor ecx, ecx
call fcn.1400f8c20
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x140248e38
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x12f
call fcn.1400bafb0
xor r8d, r8d
lea edx, [rdi + 0x64]
mov ecx, getservbyport
call fcn.1400bb200
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.140254810
mov r14, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18d
call fcn.1400b4640
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18e
mov rcx, r14
call fcn.1400b4640
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x18f
mov rcx, rbp
call fcn.1400b4640
mov rcx, qword [rsp + 0x68]
call fcn.14011c310
mov rcx, r13
call fcn.14016bfc0
mov rcx, qword [rsp + 0x78]
lea rdx, [0x1403915b0]
call fcn.1400fa980
mov rcx, rdi
call fcn.1400b30e0
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 0x140248e69
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x134
call fcn.1400bafb0
xor r8d, r8d
lea edx, [r8 + 0x68]
jmp 0x140248d7f
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 0x140248eb6
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x13c
call fcn.1400bafb0
xor r8d, r8d
lea edx, [r8 + 0x6b]
jmp 0x140248d7f
mov rcx, r14
call fcn.14016beb0
mov r13, rax
mov qword [rsp + 0x58], rax
test rax, rax
jne 0x140248efe
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x142
call fcn.1400bafb0
lea ecx, [r13 + 0x35]
xor r8d, r8d
mov edx, 0xc0100
call fcn.1400bb200
jmp 0x140248d89
mov rcx, rax
call fcn.14016c020
mov rcx, r13
call fcn.14016c110
mov rcx, r13
mov r14, rax
call fcn.14016c110
mov r13, rax
test rax, rax
jne 0x140248f59
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x14b
call fcn.1400bafb0
lea ecx, [r13 + 0x35]
xor r8d, r8d
mov edx, 0x80003
call fcn.1400bb200
mov r13, qword [rsp + 0x58]
jmp 0x140248d89
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x14f
mov rcx, rsi
call fcn.1400b45c0
lea rcx, [r15 + r15]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x150
mov qword [rsp + 0x70], rax
call fcn.1400b45c0
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.1400b45c0
mov rbp, rax
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x70], rdi
je 0x140249323
cmp qword [rsp + 0x60], rdi
je 0x140249323
test rax, rax
je 0x140249323
mov rcx, r12
call fcn.14011c1e0
mov rcx, rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x14024901f
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x15a
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov r13, qword [rsp + 0x58]
jmp 0x140248d8c
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.14011da90
test eax, eax
je 0x1402492e8
mov rcx, qword [rsp + 0xe0]
call fcn.1401979f0
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.14011ca90
test eax, eax
je 0x1402492e8
mov rdx, qword [rsp + 0x68]
mov r9, r13
mov r8, r14
mov rcx, r12
mov qword [rsp + 0x20], rbp
call fcn.14011dbd0
test eax, eax
je 0x1402492e8
mov rdx, qword [rsp + 0x60]
mov r8d, r15d
mov rcx, r14
call fcn.14011b2d0
test eax, eax
js 0x1402492be
mov r14, qword [rsp + 0x60]
mov r8d, r15d
mov rcx, r13
lea rbp, [r15 + r14]
mov rdx, rbp
call fcn.14011b2d0
xor r12d, r12d
test eax, eax
js 0x1402492c1
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.1401c27d0
test eax, eax
je 0x1402492c1
test rsi, rsi
je 0x140249154
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 0x140249140
call fcn.1400b2570
mov rdi, rax
test rax, rax
jne 0x14024919e
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x174
call fcn.1400bafb0
mov edx, 0xc0100
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov r13, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x50]
jmp 0x140248d8f
mov rdx, qword [rsp + 0xe8]
mov rcx, rax
call fcn.1400b43d0
test eax, eax
je 0x140249281
mov r8, r15
mov rdx, r14
mov rcx, rdi
call fcn.1400b25a0
test eax, eax
je 0x140249281
mov rdx, qword [rsp + 0x100]
mov r8, rsi
mov rcx, rdi
call fcn.1400b25a0
test eax, eax
je 0x140249281
mov r8, r15
mov rdx, rbp
mov rcx, rdi
call fcn.1400b25a0
mov rbp, qword [rsp + 0x50]
test eax, eax
je 0x140249286
xor r8d, r8d
mov rdx, rbp
mov rcx, rdi
call fcn.1400b3120
test eax, eax
je 0x140249286
mov r8, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x98]
mov rcx, rbp
call fcn.14013a5e0
test eax, eax
je 0x140249266
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x182
call fcn.1400bafb0
xor r8d, r8d
lea edx, [r8 + 0x66]
lea ecx, [rdx - 0x31]
call fcn.1400bb200
mov r13, qword [rsp + 0x58]
jmp 0x140248d8f
mov rax, qword [rsp + 0x108]
mov r13, qword [rsp + 0x58]
mov r12d, 1
mov qword [rax], rsi
jmp 0x140248dae
mov rbp, qword [rsp + 0x50]
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x17d
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0x80006
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov r13, qword [rsp + 0x58]
jmp 0x140248d8f
xor r12d, r12d
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x16b
call fcn.1400bafb0
mov edx, 0xc0103
jmp 0x140249183
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x163
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0x80010
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov r13, rbp
mov rbp, qword [rsp + 0x50]
jmp 0x140248d8c
call fcn.1400baf40
lea r8, str.ossl_sm2_decrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x154
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov r13, qword [rsp + 0x58]
jmp 0x140248d8c