Function at 0x140248430
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.1402563a0
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.1400b2520
mov rcx, rbx
mov qword [rsp + 0x88], rax
call fcn.1400a20b0
mov rcx, rax
mov rdi, rax
call fcn.14023d140
mov rcx, rbx
mov r15, rax
call fcn.14017f630
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.1400c6ce0
mov rcx, rbx
mov qword [rsp + 0x98], r14
mov r12d, eax
mov dword [rsp + 0x70], eax
call fcn.140111030
mov rcx, rbx
mov rsi, rax
mov qword [rsp + 0xd8], rax
call fcn.140111040
mov qword [rsp + 0xe0], rax
xor eax, eax
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xc0], rax
cmp qword [rsp + 0x88], rax
je 0x140248b3d
test r12d, r12d
jle 0x140248b3d
mov rcx, rdi
call fcn.140248220
mov rbx, rax
test rax, rax
jne 0x14024853f
call fcn.1400baef0
mov edx, __WSAFDIsSet
jmp 0x140248b47
mov rcx, rdi
call fcn.14011c190
mov rcx, rdi
mov qword [rsp + 0x78], rax
call fcn.14011c190
mov rcx, rsi
mov qword [rsp + 0x80], rax
call fcn.14016be60
mov qword [rsp + 0x68], rax
cmp qword [rsp + 0x78], r14
je 0x140248b19
cmp qword [rsp + 0x80], r14
je 0x140248b19
test rax, rax
je 0x140248b19
mov rcx, rax
call fcn.14016bfd0
mov r13, qword [rsp + 0x68]
mov rcx, r13
call fcn.14016c0c0
mov rcx, r13
mov rsi, rax
call fcn.14016c0c0
mov rcx, r13
mov qword [rsp + 0xa0], rax
call fcn.14016c0c0
mov rcx, r13
mov r12, rax
call fcn.14016c0c0
mov rcx, r13
mov qword [rsp + 0xa8], rax
call fcn.14016c0c0
mov r13, rax
test rax, rax
jne 0x140248605
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xa8
call fcn.1400baf60
mov edx, 0x80003
jmp 0x140248b5f
lea r14, [rbx + rbx]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xac
mov rcx, r14
call fcn.1400b4570
movsxd rcx, dword [rsp + 0x70]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xad
mov qword [rsp + 0x60], rax
call fcn.1400b4570
cmp qword [rsp + 0x60], 0
mov qword [rsp + 0x58], rax
je 0x140248adf
test rax, rax
je 0x140248adf
mov rax, qword [rsp + 0x158]
mov rcx, qword [rsp + 0x150]
xor edx, edx
mov r8, qword [rax]
call fcn.1402547c0
mov r9, qword [rsp + 0x68]
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call fcn.1401777f0
test eax, eax
jne 0x1402486ac
call fcn.1400baef0
mov edx, 0xb7
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1400baf60
mov edx, 0xc0103
jmp 0x140248b01
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.14011ca40
test eax, eax
je 0x140248abb
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.14011db80
test eax, eax
je 0x140248abb
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.14011ca40
test eax, eax
je 0x140248abb
mov r9, r13
mov r8, r12
mov rdx, rsi
mov rcx, rdi
mov qword [rsp + 0x20], r15
call fcn.14011db80
test eax, eax
je 0x140248abb
mov rdi, qword [rsp + 0x60]
mov r8d, ebx
mov rcx, r12
mov rdx, rdi
call fcn.14011b280
test eax, eax
js 0x140248aac
add rdi, rbx
mov r8d, ebx
mov rcx, r13
mov rdx, rdi
call fcn.14011b280
test eax, eax
js 0x140248aac
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0xc9
mov rcx, rbp
call fcn.1400b4570
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1402487b4
call fcn.1400baef0
mov edx, 0xcb
jmp 0x140248ae9
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.1401c2780
test eax, eax
jne 0x140248825
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xd2
call fcn.1400baf60
mov edx, 0x80006
jmp 0x140248b01
mov r14, qword [rsp + 0x140]
test rbp, rbp
je 0x140248860
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 0x140248850
mov rcx, r12
call fcn.1400c7610
mov r8, r13
mov rcx, rsi
mov rdx, rax
call fcn.1400b3c60
mov qword [rsp + 0x98], rax
test rax, rax
jne 0x140248892
call fcn.1400baef0
mov edx, 0xdb
jmp 0x14024868f
mov r15, qword [rsp + 0x88]
mov rdx, rax
mov rcx, r15
call fcn.1400b4380
test eax, eax
je 0x140248a6f
mov rdx, qword [rsp + 0x60]
mov r8, rbx
mov rcx, r15
call fcn.1400b2550
test eax, eax
je 0x140248a6f
mov r8, rbp
mov rdx, r14
mov rcx, r15
call fcn.1400b2550
test eax, eax
je 0x140248a6f
mov rdx, rdi
mov r8, rbx
mov rcx, r15
mov rdi, r15
call fcn.1400b2550
mov r14, qword [rsp + 0x58]
test eax, eax
je 0x140248a74
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call fcn.1400b30d0
test eax, eax
je 0x140248a74
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xb8], rax
call fcn.1400c81c0
mov qword [rsp + 0xc0], rax
call fcn.1400c81c0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rax
test rcx, rcx
je 0x140248a37
test rax, rax
je 0x140248a37
mov r8d, dword [rsp + 0x70]
mov rdx, r14
call fcn.140132cd0
mov rbx, qword [rsp + 0x50]
test eax, eax
je 0x140248a04
mov rcx, qword [rsp + 0xc8]
mov r8d, ebp
mov rdx, rbx
call fcn.140132cd0
test eax, eax
je 0x140248a04
lea r8, [0x1403915b0]
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0xb0]
call fcn.1400f9ad0
test eax, eax
jns 0x1402489e7
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xf9
call fcn.1400baf60
xor r8d, r8d
mov edx, 0xc0103
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
jmp 0x140248b6e
mov rcx, qword [rsp + 0x158]
cdqe
mov dword [rsp + 0x90], 1
mov qword [rcx], rax
jmp 0x140248b6e
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xf2
call fcn.1400baf60
xor r8d, r8d
mov edx, 0xc0103
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
jmp 0x140248b6e
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xed
call fcn.1400baf60
xor r8d, r8d
mov edx, 0xc0100
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov rbx, qword [rsp + 0x50]
jmp 0x140248b6e
mov r14, qword [rsp + 0x58]
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xe3
call fcn.1400baf60
xor r8d, r8d
mov edx, 0x80006
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov rbx, qword [rsp + 0x50]
jmp 0x140248b6e
call fcn.1400baef0
mov edx, 0xc5
jmp 0x14024868f
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0xbf
call fcn.1400baf60
mov edx, 0x80010
jmp 0x140248b01
call fcn.1400baef0
mov edx, 0xb0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1400baf60
mov edx, 0xc0100
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
jmp 0x140248b6e
call fcn.1400baef0
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
mov edx, 0x9c
call fcn.1400baf60
mov edx, 0xc0100
jmp 0x140248b5f
call fcn.1400baef0
mov edx, 0x8e
lea r8, str.ossl_sm2_encrypt
lea rcx, str.crypto_sm2_sm2_crypt.c
call fcn.1400baf60
mov edx, 0xc0103
xor r8d, r8d
lea ecx, [r8 + 0x35]
call fcn.1400bb1b0
mov rbx, r14
mov rcx, qword [rsp + 0x98]
call fcn.1400b2e60
mov rcx, qword [rsp + 0xc8]
call fcn.1400c8250
mov rcx, qword [rsp + 0xc0]
call fcn.1400c8250
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x104
mov rcx, rbx
call fcn.1400b45f0
mov rcx, qword [rsp + 0x60]
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x105
call fcn.1400b45f0
lea rdx, str.crypto_sm2_sm2_crypt.c
mov r8d, 0x106
mov rcx, r14
call fcn.1400b45f0
mov rcx, qword [rsp + 0x88]
call fcn.1400b3090
mov rcx, qword [rsp + 0x68]
call fcn.14016bf70
mov rcx, qword [rsp + 0x78]
call fcn.14011c2c0
mov rcx, qword [rsp + 0x80]
call fcn.14011c2c0
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