Function at 0x140248480
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.1402563f0
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.1400b2570
mov rcx, rbx
mov qword [rsp + 0x88], rax
call fcn.1400a2100
mov rcx, rax
mov rdi, rax
call fcn.14023d190
mov rcx, rbx
mov r15, rax
call fcn.14017f680
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.1400c6d30
mov rcx, rbx
mov qword [rsp + 0x98], r14
mov r12d, eax
mov dword [rsp + 0x70], eax
call fcn.140111080
mov rcx, rbx
mov rsi, rax
mov qword [rsp + 0xd8], rax
call fcn.140111090
mov qword [rsp + 0xe0], rax
xor eax, eax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], rax
cmp qword [rsp + 0x88], rax
je 0x140248b8d
test r12d, r12d
jle 0x140248b8d
mov rcx, rdi
call fcn.140248270
mov rbx, rax
test rax, rax
jne 0x14024858f
call fcn.1400baf40
mov edx, __WSAFDIsSet
jmp 0x140248b97
mov rcx, rdi
call fcn.14011c1e0
mov rcx, rdi
mov qword [rsp + 0x78], rax
call fcn.14011c1e0
mov rcx, rsi
mov qword [rsp + 0x80], rax
call fcn.14016beb0
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x78], r14
je 0x140248b69
cmp qword [rsp + 0x80], r14
je 0x140248b69
test rax, rax
je 0x140248b69
mov rcx, rax
call fcn.14016c020
mov r13, qword [rsp + 0x68]
mov rcx, r13
call fcn.14016c110
mov rcx, r13
mov rsi, rax
call fcn.14016c110
mov rcx, r13
mov qword [rsp + 0xa0], rax
call fcn.14016c110
mov rcx, r13
mov r12, rax
call fcn.14016c110
mov rcx, r13
mov qword [rsp + 0xa8], rax
call fcn.14016c110
mov r13, rax
test rax, rax
jne 0x140248655
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xa8
call fcn.1400bafb0
mov edx, 0x80003
jmp 0x140248baf
lea r14, [rbx + rbx]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xac
mov rcx, r14
call fcn.1400b45c0
movsxd rcx, dword [rsp + 0x70]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xad
mov qword [rsp + 0x60], rax
call fcn.1400b45c0
cmp qword [rsp + 0x60], 0
mov qword [rsp + 0x58], rax
je 0x140248b2f
test rax, rax
je 0x140248b2f
mov rax, qword [rsp + 0x158]
mov rcx, qword [rsp + 0x150]
xor edx, edx
mov r8, qword [rax]
call fcn.140254810
mov r9, qword [rsp + 0x68]
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call fcn.140177840
test eax, eax
jne 0x1402486fc
call fcn.1400baf40
mov edx, 0xb7
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1400bafb0
mov edx, 0xc0103
jmp 0x140248b51
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.14011ca90
test eax, eax
je 0x140248b0b
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.14011dbd0
test eax, eax
je 0x140248b0b
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.14011ca90
test eax, eax
je 0x140248b0b
mov r9, r13
mov r8, r12
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], r15
call fcn.14011dbd0
test eax, eax
je 0x140248b0b
mov rdi, qword [rsp + 0x60]
mov r8d, ebx
mov rcx, r12
mov rdx, rdi
call fcn.14011b2d0
test eax, eax
js 0x140248afc
add rdi, rbx
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.14011b2d0
test eax, eax
js 0x140248afc
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xc9
mov rcx, rbp
call fcn.1400b45c0
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x140248804
call fcn.1400baf40
mov edx, 0xcb
jmp 0x140248b39
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.1401c27d0
test eax, eax
jne 0x140248875
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xd2
call fcn.1400bafb0
mov edx, 0x80006
jmp 0x140248b51
mov r14, qword [rsp + 0x140]
test rbp, rbp
je 0x1402488b0
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 0x1402488a0
mov rcx, r12
call fcn.1400c7660
mov r8, r13
mov rcx, rsi
mov rdx, rax
call fcn.1400b3cb0
mov qword [rsp + 0x98], rax
test rax, rax
jne 0x1402488e2
call fcn.1400baf40
mov edx, 0xdb
jmp 0x1402486df
mov r15, qword [rsp + 0x88]
mov rdx, rax
mov rcx, r15
call fcn.1400b43d0
test eax, eax
je 0x140248abf
mov rdx, qword [rsp + 0x60]
mov r8, rbx
mov rcx, r15
call fcn.1400b25a0
test eax, eax
je 0x140248abf
mov r8, rbp
mov rdx, r14
mov rcx, r15
call fcn.1400b25a0
test eax, eax
je 0x140248abf
mov rdx, rdi
mov r8, rbx
mov rcx, r15
mov rdi, r15
call fcn.1400b25a0
mov r14, qword [rsp + 0x58]
test eax, eax
je 0x140248ac4
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call fcn.1400b3120
test eax, eax
je 0x140248ac4
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xb8], rax
call fcn.1400c8210
mov qword [rsp + 0xc0], rax
call fcn.1400c8210
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rax
test rcx, rcx
je 0x140248a87
test rax, rax
je 0x140248a87
mov r8d, dword [rsp + 0x70]
mov rdx, r14
call fcn.140132d20
mov rbx, qword [rsp + 0x50]
test eax, eax
je 0x140248a54
mov rcx, qword [rsp + 0xc8]
mov r8d, ebp
mov rdx, rbx
call fcn.140132d20
test eax, eax
je 0x140248a54
lea r8, [0x1403915b0]
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xb0]
call fcn.1400f9b20
test eax, eax
jns 0x140248a37
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xf9
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0xc0103
lea ecx, [r8 + 0x35]
call fcn.1400bb200
jmp 0x140248bbe
mov rcx, qword [rsp + 0x158]
cdqe
mov dword [rsp + 0x90], 1
mov qword [rcx], rax
jmp 0x140248bbe
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xf2
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0xc0103
lea ecx, [r8 + 0x35]
call fcn.1400bb200
jmp 0x140248bbe
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xed
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov rbx, qword [rsp + 0x50]
jmp 0x140248bbe
mov r14, qword [rsp + 0x58]
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xe3
call fcn.1400bafb0
xor r8d, r8d
mov edx, 0x80006
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov rbx, qword [rsp + 0x50]
jmp 0x140248bbe
call fcn.1400baf40
mov edx, 0xc5
jmp 0x1402486df
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xbf
call fcn.1400bafb0
mov edx, 0x80010
jmp 0x140248b51
call fcn.1400baf40
mov edx, 0xb0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1400bafb0
mov edx, 0xc0100
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
jmp 0x140248bbe
call fcn.1400baf40
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x9c
call fcn.1400bafb0
mov edx, 0xc0100
jmp 0x140248baf
call fcn.1400baf40
mov edx, 0x8e
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1400bafb0
mov edx, 0xc0103
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1400bb200
mov rbx, r14
mov rcx, qword [rsp + 0x98]
call fcn.1400b2eb0
mov rcx, qword [rsp + 0xc8]
call fcn.1400c82a0
mov rcx, qword [rsp + 0xc0]
call fcn.1400c82a0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x104
mov rcx, rbx
call fcn.1400b4640
mov rcx, qword [rsp + 0x60]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x105
call fcn.1400b4640
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x106
mov rcx, r14
call fcn.1400b4640
mov rcx, qword [rsp + 0x88]
call fcn.1400b30e0
mov rcx, qword [rsp + 0x68]
call fcn.14016bfc0
mov rcx, qword [rsp + 0x78]
call fcn.14011c310
mov rcx, qword [rsp + 0x80]
call fcn.14011c310
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