Function at 0x14020a020
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0x98
mov rax, qword [0x1403ad830]
xor rax, rsp
mov qword [rbp - 0x11], rax
mov rax, qword [rbp + 0x8f]
mov r13d, r9d
mov r9, qword [rbp + 0x6f]
mov r12d, r13d
mov qword [rbp - 0x21], rax
xor r14d, r14d
mov eax, r13d
shr r12d, 4
and eax, 0xf
mov qword [rbp - 0x49], rcx
mov dword [rbp - 0x51], eax
mov rsi, r8
mov eax, dword [rbp + 0x77]
mov rdi, rdx
mov r15, rcx
cmp eax, 0xc
jne 0x1402070eb
movsd xmm0, qword [r9]
mov eax, dword [r9 + 8]
movsd qword [rbp - 0x31], xmm0
mov dword [rbp - 0x29], eax
mov dword [rbp - 0x25], 0x1000000
jmp 0x140207121
mov ebx, dword [rcx + 0x144]
xor r8d, r8d
mov dword [rcx + 0x144], r14d
xor edx, edx
lea rcx, [rbp - 0x31]
mov dword [rsp + 0x30], reloc.ODBC32.dll_SQLFreeStmt
mov qword [rsp + 0x28], rcx
mov rcx, r15
mov dword [rsp + 0x20], eax
call fcn.140207730
mov dword [r15 + 0x144], ebx
mov ebx, dword [rbp + 0x97]
lea rax, [rbp - 0x41]
mov rdx, qword [rbp - 0x21]
mov r9, rsi
mov dword [rsp + 0x30], reloc.ODBC32.dll_SQLFreeStmt
mov r8d, ebx
mov qword [rsp + 0x28], rax
mov rcx, r15
mov dword [rsp + 0x20], r13d
call fcn.140207730
lea r8, [rbp - 0x21]
mov rcx, r15
lea rdx, [rbp - 0x31]
call fcn.1402090e0
test eax, eax
jne 0x14020744b
lea rax, [rbp - 0x21]
lea rcx, [rbp - 0x41]
or rax, rcx
test al, 7
jne 0x14020718b
movdqu xmm1, xmmword [rbp - 0x41]
movdqu xmm0, xmmword [rbp - 0x21]
pxor xmm1, xmm0
movdqu xmmword [rbp - 0x41], xmm1
jmp 0x1402071d8
lea rcx, [rbp - 0x41]
lea rax, [rbp - 0x12]
cmp rcx, rax
ja 0x1402071c5
lea rcx, [rbp - 0x32]
lea rax, [rbp - 0x21]
cmp rcx, rax
jb 0x1402071c5
mov rcx, r14
mov edx, reloc.ODBC32.dll_SQLFreeStmt
nop dword [rax]
movzx eax, byte [rbp + rcx - 0x21]
xor byte [rbp + rcx - 0x41], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1402071b0
jmp 0x1402071d8
movdqu xmm1, xmmword [rbp - 0x41]
movdqu xmm0, xmmword [rbp - 0x21]
pxor xmm1, xmm0
movdqu xmmword [rbp - 0x41], xmm1
test rdi, rdi
jne 0x1402071e4
mov dword [r15 + 0x144], ebx
mov r8d, dword [rbp + 0x87]
mov r10d, r14d
test r8d, r8d
jle 0x1402072f6
mov r9, qword [rbp + 0x7f]
cmp r8d, 8
jb 0x1402072b6
mov ecx, r8d
xorps xmm4, xmm4
xorps xmm3, xmm3
and ecx, 0x80000007
jge 0x14020721d
dec ecx
or ecx, 0xfffffff8
inc ecx
mov eax, r8d
sub eax, ecx
mov rcx, r9
movsxd rdx, eax
lea rax, [rbp - 0x41]
sub rcx, rax
nop
xorps xmm0, xmm0
lea rax, [rbp - 0x41]
add rax, r14
add r10d, 8
add r14, 8
movd xmm2, dword [rax + rcx]
movd xmm1, dword [rax]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
punpcklbw xmm1, xmm0
punpcklwd xmm1, xmm0
pxor xmm2, xmm1
movd xmm1, dword [rax + 4]
punpcklbw xmm1, xmm0
por xmm2, xmm4
punpcklwd xmm1, xmm0
movdqa xmm4, xmm2
movd xmm2, dword [rax + rcx + 4]
punpcklbw xmm2, xmm0
punpcklwd xmm2, xmm0
pxor xmm2, xmm1
por xmm2, xmm3
movdqa xmm3, xmm2
cmp r14, rdx
jl 0x140207230
por xmm3, xmm4
movdqa xmm0, xmm3
psrldq xmm0, 8
por xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd r14d, xmm3
cmp r10d, r8d
jge 0x1402072e7
movsxd rax, r10d
lea rdx, [rbp - 0x41]
add rdx, rax
lea rax, [rbp - 0x41]
sub r9, rax
sub r8d, r10d
nop
movzx ecx, byte [rdx + r9]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
xor ecx, eax
or r14d, ecx
sub r8, 1
jne 0x1402072d0
test r14d, r14d
je 0x1402072f6
mov eax, 0xffffff4c
jmp 0x14020744b
mov r14d, reloc.WS2_32.dll_ntohs
test r12d, r12d
je 0x1402073ff
mov r13, rsi
lea rax, [rbp - 0x41]
sub r13, rdi
lea rbx, [rdi + 0xf]
mov r15, r13
sub r15, rax
nop dword [rax]
dec r12d
mov rax, r14
add byte [rbp + rax - 0x31], 1
jne 0x140207336
dec rax
cmp rax, 0xc
jge 0x140207326
mov rcx, qword [rbp - 0x49]
lea r8, [rbp - 0x41]
lea rdx, [rbp - 0x31]
call fcn.1402090e0
test eax, eax
jne 0x14020744b
mov rax, rdi
lea rcx, [rbp - 0x41]
or rax, rsi
or rax, rcx
test al, 7
jne 0x140207379
mov rax, qword [rsi]
xor rax, qword [rbp - 0x41]
mov qword [rdi], rax
mov rax, qword [rbx + r13 - 7]
xor rax, qword [rbp - 0x39]
mov qword [rbx - 7], rax
jmp 0x1402073e6
lea rax, [rbp - 0x32]
cmp rdi, rax
ja 0x14020738b
lea rax, [rbp - 0x41]
cmp rbx, rax
jae 0x140207399
lea rax, [rbx + r13]
cmp rdi, rax
ja 0x1402073d5
cmp rbx, rsi
jb 0x1402073d5
lea rax, [rbp - 0x41]
mov r8d, reloc.ODBC32.dll_SQLFreeStmt
nop dword [rax]
nop word [rax + rax]
lea rcx, [r15 + rbx]
movzx edx, byte [rcx + rax - 0xf]
lea r9, [rbp - 0x32]
xor dl, byte [rax]
lea rax, [rax + 1]
mov rcx, rbx
sub rcx, r9
mov byte [rcx + rax - 1], dl
sub r8, 1
jne 0x1402073b0
jmp 0x1402073e6
movdqu xmm1, xmmword [rsi]
movdqu xmm0, xmmword [rbp - 0x41]
pxor xmm1, xmm0
movdqu xmmword [rdi], xmm1
add rdi, 0x10
add rbx, 0x10
add rsi, 0x10
test r12d, r12d
jne 0x140207320
mov r15, qword [rbp - 0x49]
mov ebx, dword [rbp - 0x51]
test ebx, ebx
je 0x140207449
add byte [rbp + r14 - 0x31], 1
jne 0x140207417
dec r14
cmp r14, 0xc
jge 0x140207406
lea r8, [rbp - 0x41]
mov rcx, r15
lea rdx, [rbp - 0x31]
call fcn.1402090e0
test eax, eax
jne 0x14020744b
mov r8d, ebx
lea rcx, [rbp - 0x41]
mov rdx, rsi
call fcn.1401d3bc0
mov r8, rbx
lea rdx, [rbp - 0x41]
mov rcx, rdi
call fcn.140284ff0
xor eax, eax
mov rcx, qword [rbp - 0x11]
xor rcx, rsp
call fcn.140283120
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 8], rbx
push rdi
mov r11, r8
mov rbx, rdx
mov rdi, rcx
test rcx, rcx
je 0x14020a086
mov r10, qword [rsp + 0x30]
test r10, r10
je 0x14020a086
test r9d, r9d
je 0x14020a04d
test r8, r8
je 0x14020a086
test rdx, rdx
je 0x14020a086
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14020a086
mov r8d, dword [rsp + 0x48]
lea eax, [r8 - 1]
cmp eax, 0xf
ja 0x14020a086
mov edx, dword [rsp + 0x38]
test edx, edx
je 0x14020a086
mov r8, r11
mov rcx, rdi
mov rdx, rbx
mov qword [rsp + 0x30], r10
mov rbx, qword [rsp + 0x10]
pop rdi
jmp 0x140207070
mov rbx, qword [rsp + 0x10]
mov eax, 0xffffff53
pop rdi
ret