Function at 0x140073820
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov eax, dword [rcx + 0x40]
mov r10d, eax
sar r10d, 0x1f
and r10d, eax
mov rsi, rax
test esi, esi
jle 0x14007385e
mov r11, qword [rcx + 0x38]
lea rdi, [rsi - 1]
cmp qword [r11 + rsi*8 - 8], 0
mov rsi, rdi
je 0x140073840
inc edi
mov r10d, edi
jmp 0x14007386e
test eax, eax
js 0x14007386a
xor r10d, r10d
jmp 0x140073922
mov r11, qword [rcx + 0x38]
movsxd rax, r10d
shl r10d, 6
mov r11, qword [r11 + rax*8 - 8]
xor eax, eax
test r11, r11
setne al
or eax, r10d
xor r10d, r10d
mov rsi, r11
shr rsi, 0x20
setne r10b
cmove rsi, r11
shl r10d, 5
mov rdi, rsi
shr rdi, 0x10
xor r11d, r11d
cmp rsi, 0x10000
setae r11b
cmovb rdi, rsi
shl r11d, 4
mov rbx, rdi
shr rbx, 8
xor esi, esi
cmp rdi, 0x100
setae sil
cmovb rbx, rdi
mov rdi, rbx
shr rdi, 4
xor r14d, r14d
cmp rbx, 0x10
setae r14b
cmovb rdi, rbx
mov rbx, rdi
shr rbx, 2
xor ebp, ebp
cmp rdi, 4
cmovb rbx, rdi
setae bpl
add ebp, ebp
or r10d, eax
or r10d, r11d
lea eax, [r10 + rsi*8]
lea r10d, [rax + r14*4]
add r10d, 0xffffffc0
or r10d, ebp
cmp rbx, 2
sbb r10d, 0xffffffff
add r10d, 7
shr r10d, 3
mov eax, 0x156
cmp r10, r9
jne 0x140073aeb
pxor xmm0, xmm0
movdqu xmmword [rdx + 0x30], xmm0
movdqu xmmword [rdx + 0x20], xmm0
movdqu xmmword [rdx + 0x10], xmm0
movdqu xmmword [rdx], xmm0
mov qword [rdx + 0x40], 0
test r9, r9
je 0x140073a01
cmp r9, 8
jb 0x140073978
lea rax, [r8 + r9]
cmp rax, rdx
jbe 0x140073b1d
lea rax, [rdx + r9]
cmp rax, r8
jbe 0x140073b1d
xor eax, eax
mov r10, rax
not r10
add r10, r9
mov r11, r9
and r11, 3
je 0x1400739b6
lea rsi, [rdx + rax]
neg rax
lea rdi, [r9 + r8]
dec rdi
xor ebx, ebx
nop dword [rax]
movzx ebp, byte [rdi + rax]
mov byte [rsi + rbx], bpl
inc rbx
dec rax
cmp r11, rbx
jne 0x1400739a0
neg rax
cmp r10, 3
jb 0x140073a01
sub r9, rax
add rax, rdx
add rax, 3
nop word cs:[rax + rax]
movzx r10d, byte [r8 + r9 - 1]
mov byte [rax - 3], r10b
movzx r10d, byte [r8 + r9 - 2]
mov byte [rax - 2], r10b
movzx r10d, byte [r8 + r9 - 3]
mov byte [rax - 1], r10b
movzx r10d, byte [r8 + r9 - 4]
mov byte [rax], r10b
add rax, 4
add r9, 0xfffffffffffffffc
jne 0x1400739d0
movsxd r9, dword [rcx + 0x40]
mov eax, 0x160
test r9, r9
je 0x140073aeb
mov r10, qword [rcx + 0x38]
mov ecx, 0xffffffff
cmp r9d, 1
jne 0x140073a2a
xor r8d, r8d
xor r11d, r11d
jmp 0x140073aa4
mov rsi, r9
and rsi, 0xfffffffffffffffe
xor r8d, r8d
xor r11d, r11d
nop word [rax + rax]
mov rbx, qword [r10 + r11*8]
mov r14, qword [r10 + r11*8 + 8]
mov r15, qword [rdx + r11*8]
mov rdi, qword [rdx + r11*8 + 8]
mov r12, r15
xor r12, rbx
mov r13, r15
sub r13, rbx
xor r13, r15
or r13, r12
xor r13, r15
sar r13, 0x3f
and r13d, ecx
mov ebx, r8d
test r12, r12
cmovne rbx, r13
mov r15, rdi
xor r15, r14
mov r8, rdi
sub r8, r14
xor r8, rdi
or r8, r15
xor r8, rdi
sar r8, 0x3f
and r8d, ecx
test r15, r15
cmove r8, rbx
add r11, 2
cmp rsi, r11
jne 0x140073a40
test r9b, 1
je 0x140073ada
mov r9, qword [r10 + r11*8]
mov rdx, qword [rdx + r11*8]
mov r10, rdx
xor r10, r9
mov r11, rdx
sub r11, r9
xor r11, rdx
or r11, r10
xor r11, rdx
sar r11, 0x3f
mov edx, 0xffffffff
and edx, r11d
test r10, r10
cmovne r8, rdx
add rcx, 0xffffffff80000001
mov esi, 1
cmp r8, rcx
jae 0x140073b0a
mov dword [rsp + 0x20], eax
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_ec_simple.c
xor esi, esi
mov ecx, reloc.WS2_32.dll_ntohs
xor edx, edx
mov r8d, 0x80
call fcn.140049240
mov eax, esi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r9, 0x20
jae 0x140073b2a
xor eax, eax
jmp 0x140073bd8
mov rax, r9
and rax, 0xffffffffffffffe0
lea r10, [r9 + r8]
add r10, 0xfffffffffffffff0
xor r11d, r11d
pxor xmm0, xmm0
movdqu xmm1, xmmword [r10 - 0x10]
movdqu xmm2, xmmword [r10]
movdqa xmm3, xmm2
punpcklbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm2, xmm0
pshufd xmm2, xmm2, 0x4e
pshuflw xmm2, xmm2, 0x1b
pshufhw xmm2, xmm2, 0x1b
packuswb xmm2, xmm3
movdqa xmm3, xmm1
punpcklbw xmm3, xmm0
pshufd xmm3, xmm3, 0x4e
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpckhbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqu xmmword [rdx + r11], xmm2
movdqu xmmword [rdx + r11 + 0x10], xmm1
add r11, 0x20
add r10, 0xffffffffffffffe0
cmp rax, r11
jne 0x140073b40
cmp rax, r9
je 0x140073a01
test r9b, 0x18
je 0x14007397a
mov r10, rax
mov rax, r9
and rax, 0xfffffffffffffff8
mov r11, r9
sub r11, r10
add r11, r8
add r11, 0xfffffffffffffff8
pxor xmm0, xmm0
nop word cs:[rax + rax]
movq xmm1, qword [r11]
punpcklbw xmm1, xmm0
pshufd xmm1, xmm1, 0x4e
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm1
movq qword [rdx + r10], xmm1
add r10, 8
add r11, 0xfffffffffffffff8
cmp rax, r10
jne 0x140073c00
cmp rax, r9
je 0x140073a01
jmp 0x14007397a