Function at 0x140177790
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0x58
mov rsi, rcx
nop dword [rax]
mov eax, dword [0x140229c10]
mov ecx, dword [0x140229c14]
mov r9d, eax
not r9d
and r9d, ecx
mov r10d, ecx
not r10d
and r10d, eax
imul r10d, r9d
mov r9d, eax
and r9d, ecx
or eax, ecx
imul eax, r9d
add eax, r10d
mov ecx, eax
xor ecx, 0xcd6eae
add ecx, eax
and eax, 0x3f329151
sub ecx, eax
not ecx
and ecx, 0x24602d60
mov r10, rdx
add r10, r8
setb al
cmp ecx, 0xa651f9b7
je 0x1401777a0
test al, al
jne 0x140177ae1
movabs r9, 0x3fffffffffffffff
mov r8d, 4
nop word cs:[rax + rax]
mov eax, dword [0x140229c18]
xor edx, edx
div dword [0x140229c1c]
and eax, 0xb720eb6f
add eax, 0xcd663d0f
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xa307f243
and ecx, 0x5cf00d3c
imul ecx, edx
mov edx, eax
and edx, 0x5ce00d3c
or eax, 0x5cf00d3c
imul eax, edx
add eax, ecx
mov r11, qword [rsi]
lea rcx, [r11 + r11]
cmp rcx, r10
mov rdi, r10
cmova rdi, rcx
cmp rdi, 5
cmovb rdi, r8
cmp eax, 0x8fd9051a
je 0x140177820
lea r8, [rdi + rdi]
nop word cs:[rax + rax]
mov eax, dword [0x140229c20]
sub eax, dword [0x140229c24]
not eax
or eax, 0x984f75b4
cmp eax, 0xd5bc185f
je 0x140177890
xor edx, edx
cmp rdi, r9
setbe dl
add rdx, rdx
test r11, r11
je 0x140177996
nop
mov eax, dword [0x140229c28]
mov r9d, dword [0x140229c2c]
xor r9d, eax
not r9d
and r9d, eax
imul rax, r9, 0x663b9b8f
shr rax, 0x3e
not eax
and eax, 0x7a2a37c5
imul eax, eax, 0xa96fa3b0
cmp eax, 0x95dc68f2
je 0x1401778c0
nop word cs:[rax + rax]
mov eax, dword [0x140229c30]
xor eax, dword [0x140229c34]
imul rax, rax, 0x5781badd
shr rax, 0x38
cmp eax, 0xf7bb0b59
je 0x140177900
mov r9d, dword [0x140229c38]
add r9d, dword [0x140229c3c]
mov rax, qword [rsi + 8]
shr r9d, 1
mov r10d, 0x9e95b221
imul r10, r9
shr r10, 0x3a
mov r9d, r10d
not r9d
or r9d, 0xa708f143
add r9d, r10d
inc r9d
not r9d
and r9d, 0xf13e266f
cmp r9d, 0xbf59a879
jae 0x140177971
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rcx
xor r9d, r9d
nop word cs:[rax + rax]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x38], rcx
test r9b, r9b
jne 0x140177980
mov eax, 2
jmp 0x140177998
xor eax, eax
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x28]
call fcn.1400ac0c0
cmp qword [rsp + 0x40], 0
jne 0x140177a77
mov rax, qword [rsp + 0x48]
mov ecx, dword [0x140229c68]
mov edx, dword [0x140229c6c]
mov r8d, ecx
not r8d
and r8d, edx
mov r9d, edx
not r9d
and r9d, ecx
imul r9d, r8d
mov r8d, ecx
and r8d, edx
or ecx, edx
imul ecx, r8d
add ecx, r9d
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xd67f0c53
and edx, 0x2980f3ac
imul edx, r8d
mov r8d, ecx
and r8d, 0x2980f3ac
or ecx, 0x2980f3ac
imul ecx, r8d
add ecx, edx
imul ecx, ecx, 0x289b8270
cmp ecx, 0x63117455
jbe 0x140177a31
mov qword [rsi + 8], rax
mov qword [rsi], rdi
mov ecx, 0xb671ebc1
nop word cs:[rax + rax]
mov edx, dword [0x140229c70]
imul edx, dword [0x140229c74]
add edx, 0xa11ddf14
or edx, 0x3ba12af6
imul rdx, rcx
shr rdx, 0x3f
mov qword [rsi + 8], rax
mov qword [rsi], rdi
cmp edx, 0x48ac61e4
ja 0x140177a40
add rsp, 0x58
pop rdi
pop rsi
ret
mov eax, 0xa40a5db1
nop dword [rax]
mov ecx, dword [0x140229c40]
sub ecx, dword [0x140229c44]
imul rcx, rax
shr rcx, 0x3d
not ecx
and ecx, 0x9498d283
mov edx, 0x20262800
sub edx, ecx
cmp edx, 0xc0ae6c6
jb 0x140177a80
nop dword [rax + rax]
mov eax, dword [0x140229c48]
xor eax, dword [0x140229c4c]
and eax, 0xd8df5368
add eax, 0x798965aa
imul rcx, rax, 0x1671bf33
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x5654688
je 0x140177ab0
mov eax, dword [0x140229c50]
mov ecx, dword [0x140229c54]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
not eax
or eax, 0x3ce9e61e
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0x43061160
and eax, 0xa098ae9b
imul eax, edx
mov edx, ecx
and edx, 0x80100881
or ecx, 0xa098ae9b
imul ecx, edx
add ecx, eax
mov eax, ecx
xor eax, 0x3c12face
and eax, ecx
cmp eax, 0x511b2b92
ja 0x140177b80
mov eax, dword [0x140229c58]
xor eax, dword [0x140229c5c]
mov ecx, eax
not ecx
mov edx, eax
or edx, 0x904dc073
and ecx, 0x2c900284
mov r8d, edx
and r8d, 0xd3637d28
imul r8d, ecx
and edx, 0x2c9c82d7
or eax, 0xbcddc2f7
imul eax, edx
add eax, r8d
add eax, 0x5d590537
ud2
ud2