Function at 0x140168090
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
mov rbx, r8
mov r14, rdx
mov rsi, rcx
lea rcx, [rsp + 0x80]
xor r9d, r9d
call fcn.14020cf80
mov rax, qword [rsp + 0x80]
nop word cs:[rax + rax]
mov ecx, dword [0x14159eab8]
mov edx, dword [0x14159eabc]
mov r8d, ecx
xor r8d, edx
not r8d
or ecx, edx
and ecx, r8d
mov edx, ecx
xor edx, 0xffff785e
or ecx, 0x87a1
and ecx, edx
add ecx, 0xe0b20bd7
cmp ecx, 0xe68d4b48
ja 0x1401680d0
cmp eax, 2
jne 0x1401682c4
nop word cs:[rax + rax]
mov eax, dword [0x14159eac0]
or eax, dword [0x14159eac4]
imul eax, eax, 0xbb906378
mov ecx, eax
not ecx
and ecx, 0x277152c1
and eax, 0xd88ead38
sub eax, ecx
imul rcx, rax, 0x1c4ee4c9
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x513cff7e
ja 0x140168120
mov rdi, qword [rsp + 0x88]
mov eax, dword [0x14159eac8]
xor edx, edx
div dword [0x14159eacc]
mov rax, rdi
xor rax, 0xfffffffffffffffc
and rax, rdi
xor ecx, ecx
test cl, cl
jne 0x140168180
cmp rax, 2
jg 0x140168260
jne 0x1401682c4
movabs rcx, 0xffffffff00000000
and rcx, rdi
nop word cs:[rax + rax]
mov eax, dword [0x14159eae8]
xor edx, edx
div dword [0x14159eaec]
mov edx, eax
xor edx, 0xb51d99c2
and eax, 0x4ae2663d
add eax, eax
sub eax, edx
imul eax, eax, 0x7a696941
add eax, 0x399c093f
cmp eax, 0xe17d5bdd
ja 0x1401681b0
movabs rax, 0x78000000000
nop dword [rax + rax]
mov edx, dword [0x14159eaf0]
mov r8d, dword [0x14159eaf4]
mov r9d, r8d
and r9d, edx
add edx, r8d
sub edx, r9d
imul rdx, rdx, 0x9b2fff3
shr rdx, 0x3b
or edx, 0x91b48cbc
xor edx, 0xac49e5cf
cmp edx, 0xeb530caa
ja 0x1401681f0
cmp rcx, rax
jne 0x1401682c4
mov eax, dword [0x14159eaf8]
or eax, dword [0x14159eafc]
imul eax, eax, 0x443321a4
add eax, 0x54df4943
and eax, 0x2d337e33
cmp eax, 0x7f41977a
jne 0x1401683a5
jmp 0x1401683c1
mov eax, dword [0x14159ead4]
add eax, dword [0x14159ead0]
or eax, 0xec017d1e
add eax, 0xa41feffb
imul rax, rax, 0x7656e2cd
shr rax, 0x3e
cmp eax, 0x599f3b8f
je 0x140168260
nop dword [rax + rax]
mov eax, dword [0x14159ead8]
sub eax, dword [0x14159eadc]
mov ecx, eax
not ecx
or ecx, 0xc5210002
and ecx, 0xd5af4422
and eax, 0x2a50b8cc
or eax, ecx
xor eax, 0xd8c3efb5
add eax, 0x9a3b3cc8
cmp eax, 0x2eead768
jb 0x140168290
mov eax, dword [0x14159eae0]
add eax, dword [0x14159eae4]
xor eax, 0x902321f9
mov ecx, eax
and ecx, 0x8f105b1d
or eax, 0x8f105b1d
add eax, ecx
add eax, 0x945afc67
cmp eax, 0x1ce85c6a
jae 0x140168337
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x50], rax
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movups xmm2, xmmword [rsp + 0xa0]
movups xmm3, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
xor eax, eax
nop dword [rax]
mov rcx, qword [rsp + 0xd0]
mov qword [rsi + 0x50], rcx
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsi + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movups xmm2, xmmword [rsp + 0xa0]
movups xmm3, xmmword [rsp + 0xb0]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
test al, al
jne 0x140168340
xor eax, eax
nop dword [rax]
test al, al
jne 0x140168390
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, [rsp + 0x28]
mov rdx, r14
mov r8, rbx
mov r9d, 0x200000
call fcn.14020cf80
xor eax, eax
test al, al
je 0x1401683d9
lea rcx, [rsp + 0x28]
mov rdx, r14
mov r8, rbx
mov r9d, 0x200000
call fcn.140168c20
jmp 0x1401683a5
mov eax, dword [0x14159eb00]
xor edx, edx
div dword [0x14159eb04]
nop word [rax + rax]
mov eax, dword [0x14159eb08]
imul eax, dword [0x14159eb0c]
or eax, 0xb6f858e4
add eax, 0xbd979259
imul rax, rax, 0x4f638745
shr rax, 0x3d
cmp eax, 0xc4cb2655
ja 0x1401683f0
mov rax, qword [rsp + 0x28]
nop
mov ecx, dword [0x14159eb10]
imul ecx, dword [0x14159eb14]
or ecx, 0xf8ea9d8b
add ecx, 0x7c2cd33b
mov edx, ecx
and edx, 0x5d2e7342
xor ecx, 0x5d2e7743
lea ecx, [rcx + rdx*2]
cmp ecx, 0x28b96864
jb 0x140168420
cmp eax, 2
jne 0x1401687e0
nop dword [rax + rax]
mov eax, dword [0x14159eb30]
xor edx, edx
div dword [0x14159eb34]
mov ecx, eax
xor ecx, 0x1b21575f
and eax, 0x64dea8a0
add eax, eax
sub eax, ecx
add eax, 0x55aa1153
and eax, 0x8faad6e7
cmp eax, 0x2c915a51
je 0x140168460
mov eax, dword [0x14159eb38]
sub eax, dword [0x14159eb3c]
and eax, 0x751f2cf3
add eax, 0xd9de49ed
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xca9a64a0
and ecx, 0x35259b5f
imul ecx, edx
mov edx, eax
and edx, 0x35651b5f
or eax, 0x35659b5f
imul eax, edx
add eax, ecx
cmp eax, 0x84443de4
jb 0x140168490
mov rax, qword [rsp + 0x30]
mov ecx, eax
not ecx
or rcx, 0xfffffffffffffffc
cmp rcx, 0xfffffffffffffffd
jl 0x140168930
not rcx
cmp ecx, 1
jne 0x140168a20
lea rbx, [rax - 1]
mov r14, qword [rax - 1]
mov r15, qword [rax + 7]
mov rax, qword [r15]
nop word cs:[rax + rax]
mov ecx, dword [0x14159eb58]
mov edx, dword [0x14159eb5c]
mov r8d, ecx
xor r8d, edx
not r8d
or ecx, edx
and ecx, r8d
mov edx, ecx
not edx
and edx, 0xec41a6be
mov r8d, ecx
and r8d, 0x13be5941
imul r8d, edx
mov edx, ecx
and edx, 0xec41a6be
or ecx, 0xec41a6be
imul ecx, edx
add ecx, r8d
add ecx, 0xfa856bdf
mov edx, ecx
xor edx, 0xd309aab2
and ecx, 0x2cf6554d
add ecx, ecx
sub ecx, edx
cmp ecx, 0xa6e9b220
ja 0x140168510
test rax, rax
je 0x1401685d0
mov rcx, r14
call rax
mov eax, dword [0x14159eb60]
mov ecx, dword [0x14159eb64]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add eax, ecx
add eax, 0x10d2c5a8
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xbc65e68c
and ecx, 0x439a1973
imul ecx, edx
mov edx, eax
and edx, 0x439a1973
or eax, 0x439a1973
imul eax, edx
add eax, ecx
cmp eax, 0xa4cc796
jb 0x140168580
nop dword [rax]
mov eax, dword [0x14159eb6c]
xor eax, dword [0x14159eb68]
mov ecx, eax
and ecx, 0x6e1882f3
add ecx, ecx
neg ecx
add eax, ecx
add eax, 0x6e1882f3
imul rax, rax, 0x1c50d42b
shr rax, 0x30
add eax, 0x8ad30165
cmp eax, 0xff82d8a1
ja 0x1401685d0
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
nop
mov edx, dword [0x14159eb70]
mov r8d, dword [0x14159eb74]
mov r9d, edx
not r9d
and r9d, r8d
mov r10d, r8d
not r10d
and r10d, edx
imul r10d, r9d
mov r9d, edx
and r9d, r8d
or edx, r8d
imul edx, r9d
add edx, r10d
imul edx, edx, 0xb8b978ad
mov r8d, edx
xor r8d, 0x9d966545
xor edx, 0x11164400
and edx, 0x515754ba
add edx, edx
sub r8d, edx
add r8d, 0x515754ba
cmp r8d, 0xb3b68433
jb 0x140168610
test rcx, rcx
je 0x14016875b
cmp rax, 0x11
jb 0x1401686ea
mov eax, dword [0x14159eb78]
xor edx, edx
div dword [0x14159eb7c]
mov eax, dword [0x14159eb80]
mov ecx, dword [0x14159eb84]
add eax, ecx
add eax, 0x81b07073
shr eax, 2
imul rax, rax, 0x413c6351
shr rax, 0x3c
cmp eax, 0x8e2b8686
je 0x140168691
mov eax, dword [0x14159eb88]
mov ecx, dword [0x14159eb8c]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
mov eax, ecx
xor eax, 0xa0edb571
and eax, ecx
add eax, 0x948d2042
cmp eax, 0x7210f9a4
jb 0x1401686b9
mov r14, qword [r14 - 8]
mov eax, dword [0x14159eb90]
xor eax, dword [0x14159eb94]
add eax, 0x7919b6dc
or eax, 0x9ffec6c7
xor eax, 0xa9d6c65
cmp eax, 0xb9bba12c
jae 0x14016871e
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, r14
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r15, qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [0x14159eb98]
and eax, dword [0x14159eb9c]
imul r12, rax, 0x6e136781
shr r12, 0x3d
or r12d, 0x33780e8
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, r14
call r15
cmp r12d, 0xef6bcbe3
je 0x140168725
mov eax, dword [0x14159eba0]
or eax, dword [0x14159eba4]
or eax, 0x574d6781
cmp eax, 0xd50b6eb2
jne 0x140168780
mov rax, qword [0x1415acb98]
nop word [rax + rax]
mov eax, dword [0x14159eba8]
imul eax, dword [0x14159ebac]
and eax, 0x52946090
add eax, 0x44cb1e02
mov rcx, qword [0x1415acb98]
cmp eax, 0xc3f5f65d
ja 0x140168780
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [0x14159ebb0]
or eax, dword [0x14159ebb4]
mov ecx, eax
not ecx
or eax, 0x14596108
or ecx, 0x23828610
and ecx, eax
and ecx, 0x37dbe718
cmp ecx, 0x9a74ca99
je 0x1401687b0
jmp 0x140168a20
mov eax, dword [0x14159eb18]
mov ecx, dword [0x14159eb1c]
xor ecx, eax
not ecx
and ecx, eax
not ecx
or ecx, 0xd892d264
mov eax, ecx
not eax
xor ecx, 0xb48c5e8f
or eax, 0x240c0c8b
and eax, ecx
xor eax, 0x5900305
cmp eax, 0x7ea60535
ja 0x1401687e0
nop word [rax + rax]
mov eax, dword [0x14159eb20]
xor eax, dword [0x14159eb24]
add eax, 0xe2428c7
mov ecx, eax
and ecx, 0x85ccc679
or eax, 0x85ccc679
add eax, ecx
imul rcx, rax, 0x113f7297
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x1517d732
je 0x140168820
mov r8d, dword [rsp + 0x74]
mov ecx, dword [rsp + 0x78]
mov edx, r8d
and edx, 0x400
mov eax, edx
shr eax, 0xa
mov r9d, ecx
not r9d
or r9d, 0xdfffffff
nop
mov r10d, dword [0x14159eb28]
add r10d, dword [0x14159eb2c]
mov r11d, r10d
not r11d
and r11d, 0x1879b605
mov ebx, r10d
and ebx, 0xe78649fa
imul ebx, r11d
mov r11d, r10d
and r11d, 0x1879b605
or r10d, 0x1879b605
imul r10d, r11d
add r10d, ebx
imul ebx, r10d, 0xb89dad96
xor ebx, 0x5cddd2e0
test edx, edx
sete r10b
cmp r9d, 0xffffffff
setne r11b
cmp ebx, 0x6f029680
je 0x140168880
or r10b, r11b
add r10b, al
inc r10b
test r10b, 1
jne 0x140168a20
mov eax, dword [0x14159ebe0]
mov edx, dword [str.z_fK]
not eax
not edx
or edx, eax
not edx
add edx, 0x6be27f68
xor edx, 0x4f6012d9
cmp edx, 0xcc048558
jne 0x140168b2d
jmp 0x140168b8d
mov eax, dword [0x14159eb40]
mov ecx, dword [0x14159eb44]
mov edx, eax
and edx, ecx
or eax, ecx
not edx
and edx, eax
add edx, 0x554e83ef
mov eax, edx
not eax
or edx, 0xd91e3ee4
or eax, 0x26e1c11b
and eax, edx
mov ecx, eax
not ecx
or eax, 0x3ef04c2b
or ecx, 0xc10fb3d4
and ecx, eax
cmp ecx, 0xd0c416f6
ja 0x140168930
nop word cs:[rax + rax]
mov eax, dword [0x14159eb48]
mov ecx, dword [0x14159eb4c]
mov edx, eax
not edx
mov r8d, ecx
not r8d
mov r9d, edx
and r9d, 0xc678cd6e
and eax, 0x39873291
or eax, r9d
or edx, r8d
and r8d, 0xc678cd6e
and ecx, 0x39873291
or ecx, r8d
xor ecx, eax
not edx
or edx, ecx
imul rax, rdx, 0x3c1dc239
shr rax, 0x3d
or eax, 0x2008028
cmp eax, 0xbc2b0602
je 0x140168980
nop dword [rax + rax]
mov eax, dword [0x14159eb50]
xor edx, edx
div dword [0x14159eb54]
imul eax, eax, 0x6432d189
mov ecx, eax
and ecx, 0xb2c9fb96
and eax, 0x1048b000
mov edx, ecx
xor edx, 0xea914ff7
add edx, ecx
sub edx, eax
cmp edx, 0x3f7febfd
je 0x1401689e0
nop word cs:[rax + rax]
mov eax, dword [0x14159ebb8]
mov ecx, dword [0x14159ebbc]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
xor eax, 0x49128
mov ecx, eax
and ecx, 0x1484ffab
mov edx, ecx
not edx
mov r8d, eax
and r8d, 0x140049a9
and edx, 0x8bb5b642
imul edx, r8d
and eax, 0x84b602
or ecx, 0x8bb5b642
imul ecx, eax
add ecx, edx
cmp ecx, 0x12ef69d3
jb 0x140168a20
mov eax, dword [0x14159ebc0]
mov ecx, eax
not ecx
or ecx, dword [0x14159ebc4]
add eax, ecx
add eax, 0xf05bc014
imul rax, rax, 0x5acfb5b5
shr rax, 0x3e
mov ecx, eax
xor ecx, 0xc533fb89
add ecx, eax
cmp ecx, 0x2cd4ff52
jae 0x140168aab
mov qword [rsi + 8], rdi
mov ecx, 0x8de6209d
mov eax, dword [0x14159ebc8]
xor edx, edx
div dword [0x14159ebcc]
mov edx, eax
not edx
and edx, 0x72240f56
mov r8d, eax
and r8d, 0x8ddbf0a9
imul r8d, edx
mov edx, eax
and edx, 0x72240f56
or eax, 0x72240f56
imul eax, edx
add eax, r8d
imul rax, rcx
shr rax, 0x3f
or eax, 0x9b5dcf6
mov qword [rsi + 8], rdi
cmp eax, 0xaa01c609
je 0x140168ab0
mov eax, dword [0x14159ebd4]
add eax, dword [0x14159ebd0]
imul rax, rax, 0x50832151
shr rax, 0x3c
or eax, 0xe5dfd912
cmp eax, 0xd441f851
jne 0x140168bd5
jmp 0x140168c0d
mov eax, dword [0x14159ebe8]
xor edx, edx
div dword [0x14159ebec]
or eax, 0x3deca402
imul rdx, rax, 0x4019539d
shr rdx, 0x3e
add edx, 0x98789be3
mov eax, dword [rsp + 0x7c]
movups xmm0, xmmword [rsp + 0x64]
movups xmmword [rsi + 0x3c], xmm0
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmm2, xmmword [rsp + 0x48]
movups xmm3, xmmword [rsp + 0x58]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov dword [rsi + 0x4c], r8d
cmp edx, 0x86b5d24a
jae 0x140168bc2
movups xmm0, xmmword [rsp + 0x64]
movups xmmword [rsi + 0x3c], xmm0
movups xmm0, xmmword [rsp + 0x28]
movups xmm1, xmmword [rsp + 0x38]
movups xmm2, xmmword [rsp + 0x48]
movups xmm3, xmmword [rsp + 0x58]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov dword [rsi + 0x4c], r8d
jmp 0x140168b2d
mov dword [rsi + 0x50], ecx
mov dword [rsi + 0x54], eax
mov rcx, rdi
call fcn.1401670a0
jmp 0x14016838b
mov eax, dword [0x14159ebd8]
add eax, dword [0x14159ebdc]
mov ecx, eax
and ecx, 0x2768e74e
xor eax, 0xa768e74e
lea eax, [rax + rcx*2]
add eax, 0xb3f865ad
xor eax, 0x39b1aab
mov qword [rsi], 2
cmp eax, 0xca1cb102
jbe 0x14016838b
mov qword [rsi], 2
jmp 0x140168bd5