Function at 0x14011d190
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rcx
nop word cs:[rax + rax]
mov eax, dword [0x140227c98]
mov ecx, dword [0x140227c9c]
mov edx, eax
not edx
and edx, ecx
mov r8d, ecx
not r8d
and r8d, eax
imul r8d, edx
mov edx, eax
and edx, ecx
or eax, ecx
imul eax, edx
add eax, r8d
add eax, 0x46aa2800
or eax, 0xede8702d
cmp eax, 0xe4da5632
je 0x14011d1b0
mov rax, qword [rsi]
mov ecx, 0x8ea48d4b
nop word cs:[rax + rax]
mov edx, dword [0x140227ca0]
or edx, dword [0x140227ca4]
xor edx, 0x74d7b71e
imul rdx, rcx
shr rdx, 0x3e
imul edx, edx, 0xcf7b8211
cmp edx, 0x80b6a761
jb 0x14011d200
test rax, rax
je 0x14011d900
cmp eax, 1
jne 0x14011d6b0
lea r10, [rsi + 0x10]
nop
mov eax, dword [0x140227cf0]
xor edx, edx
div dword [0x140227cf4]
add eax, 0xae1af839
and eax, 0x953ab98f
cmp eax, 0x560cb487
jb 0x14011d240
nop
mov eax, dword [0x140227cf8]
and eax, dword [0x140227cfc]
mov ecx, 0xb8b25df1
sub ecx, eax
add eax, 0x474da20e
and ecx, 0x65eb92bf
and eax, 0x9a146d40
or eax, ecx
cmp eax, 0xc5ec8dff
je 0x14011d260
mov r11, qword [rsi + 8]
test r11, r11
je 0x14011d900
nop dword [rax]
mov eax, dword [0x140227d00]
xor edx, edx
div dword [0x140227d04]
xor eax, 0x514ba16f
imul rcx, rax, 0x6a64d1
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x2cf6d673
ja 0x14011d2a0
mov rax, qword [rsi + 0x18]
nop word cs:[rax + rax]
mov ecx, dword [0x140227d08]
add ecx, dword [0x140227d0c]
mov edx, ecx
not edx
and edx, 0xe89883f5
mov r8d, ecx
and r8d, 0x17677c0a
imul r8d, edx
mov edx, ecx
and edx, 0xe89883f5
or ecx, 0xe89883f5
imul ecx, edx
add ecx, r8d
add ecx, 0x8934e851
cmp ecx, 0xc2eefe7
jb 0x14011d2e0
mov qword [rsp + 0x28], r10
nop dword [rax + rax]
mov ecx, dword [0x140227d10]
mov edx, dword [0x140227d14]
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
imul ecx, ecx, 0x77347c29
mov edx, ecx
not edx
and edx, 0x83f6090
and ecx, 0x17c09f6f
sub ecx, edx
and ecx, 0x17e9567e
cmp ecx, 0xacc931d5
jne 0x14011d3b0
mov rcx, qword [r11 + 0x18]
lea rdx, [rcx + 0x20]
test rcx, rcx
cmove rdx, r10
mov qword [rsi + 8], rcx
mov qword [rdx], 0
lea rcx, [rax - 1]
mov qword [rsi + 0x18], rcx
nop dword [rax]
mov ecx, dword [0x140227d18]
add ecx, dword [0x140227d1c]
not ecx
and ecx, 0x6e4d94f6
mov r13, qword [r11 + 0x18]
lea rdx, [r13 + 0x20]
test r13, r13
cmove rdx, r10
lea r12, [rax - 1]
mov qword [rsi + 8], r13
mov qword [rdx], 0
mov qword [rsi + 0x18], r12
cmp ecx, 0x592b63be
je 0x14011d3b0
mov rax, qword [r11 + 8]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], r11
mov rbp, qword [r11 + 0x10]
test rbp, rbp
je 0x14011d4d0
mov rbx, 0xffffffffffffffff
mov r14, qword [rsp + 0x20]
xor r15d, r15d
jmp 0x14011d436
inc r15
dec rbx
add r14, 0x158
cmp rbp, r15
je 0x14011d4d0
mov eax, dword [0x140227d20]
mov ecx, dword [0x140227d24]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
or ecx, 0xbe14afba
add ecx, 0xcd5d8d55
and ecx, 0xc8affc53
cmp ecx, 0xa2614ac5
je 0x14011d4bb
nop dword [rax + rax]
mov edi, dword [0x140227d28]
sub edi, dword [0x140227d2c]
mov eax, edi
xor eax, 0x1f487024
and edi, 0x60b78fdb
add edi, edi
sub edi, eax
imul rax, rdi, 0x4aa3b22b
shr rax, 0x20
sub edi, eax
shr edi, 1
add edi, eax
shr edi, 0x1b
xor edi, 0x8bb71dcf
mov rcx, r14
call fcn.140114c90
cmp edi, 0x6ded449a
jne 0x14011d420
mov rcx, r14
call fcn.140114c90
jmp 0x14011d470
mov rdi, qword [rsp + 0x30]
cmp qword [rdi], 0
mov r14, qword [sym.imp.KERNEL32.dll_HeapFree]
je 0x14011d5cb
mov eax, dword [0x140227d30]
add eax, dword [0x140227d34]
imul rcx, rax, 0x3d106ab
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
add eax, 0xd261b779
or eax, 0x7d53e585
cmp eax, 0x2ec68545
jae 0x14011d520
mov rax, qword [0x14022cb48]
nop
mov eax, dword [0x140227d38]
xor eax, dword [0x140227d3c]
mov ecx, eax
xor ecx, 0x99eb5a74
or eax, 0x6614a58b
and eax, ecx
mov ecx, eax
not ecx
or ecx, 0x3448220b
and ecx, 0xbedb222f
and eax, 0x124c1d0
or eax, ecx
mov rcx, qword [0x14022cb48]
cmp eax, 0x640f351c
je 0x14011d520
xor edx, edx
mov r8, qword [rsp + 0x20]
call fcn.14014eed0
nop dword [rax]
mov eax, dword [0x140227d40]
mov ecx, dword [0x140227d44]
mov edx, ecx
not edx
and edx, eax
xor ecx, eax
add ecx, eax
sub ecx, edx
mov eax, ecx
not eax
mov edx, ecx
and edx, 0xcdb9c48f
and eax, 0x32463b70
imul eax, edx
mov edx, ecx
and edx, 0x32463b70
or ecx, 0x32463b70
imul ecx, edx
add ecx, eax
imul eax, ecx, 0xa557b6fb
mov ecx, eax
xor ecx, 0x9279337b
and eax, 0x92793370
or eax, ecx
cmp eax, 0x44d96d70
jb 0x14011d570
mov rbx, qword [0x14022cb48]
mov eax, dword [0x140227d48]
and eax, dword [0x140227d4c]
mov ecx, eax
not ecx
or eax, 0x8004106
and ecx, 0x200
and eax, 0x8810450e
or eax, ecx
xor eax, 0x300408
cmp eax, 0x8ddffb43
ja 0x14011d6a0
nop word cs:[rax + rax]
mov eax, dword [0x140227d50]
xor edx, edx
div dword [0x140227d54]
mov ebp, eax
add ebp, 0x41e53faa
xor ebp, 0xfe6b9589
mov eax, ebp
and eax, 0x4d9f3ba4
or ebp, 0x4d9f3ba4
add ebp, eax
mov rcx, rbx
xor edx, edx
mov r8, rdi
call r14
cmp ebp, 0xc0c7171b
ja 0x14011d6a0
mov r10, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov eax, dword [0x140227d58]
xor eax, dword [0x140227d5c]
xor eax, 0xacb79097
add eax, 0xb3c5887a
cmp eax, 0x1eea1777
jb 0x14011d660
mov r11, r13
mov rax, r12
test r13, r13
jne 0x14011d330
jmp 0x14011d900
mov rcx, rbx
xor edx, edx
mov r8, rdi
call r14
jmp 0x14011d610
mov eax, dword [0x140227ca8]
add eax, dword [0x140227cac]
xor eax, 0x6a76ebd9
imul eax, eax, 0x46071e0c
add eax, 0xdb7fc1e9
cmp eax, 0xff13771
jb 0x14011d6b0
mov rdi, qword [rsi + 8]
mov rsi, qword [rsi + 0x10]
xor eax, eax
nop dword [rax]
test al, al
jne 0x14011d6e0
mov rax, qword [rsi]
test rax, rax
je 0x14011d70c
mov rcx, rdi
call rax
nop word cs:[rax + rax]
mov eax, 0xffffffff
add eax, 0x45aaae46
jae 0x14011d700
mov eax, 0x98f1dbfb
nop word cs:[rax + rax]
mov ecx, dword [0x140227cb0]
or ecx, dword [0x140227cb4]
mov edx, ecx
and edx, 0x8c995d7e
and ecx, 0x81012c
add ecx, ecx
sub edx, ecx
add edx, 0xb1a181ad
imul rdx, rax
shr rdx, 0x3f
cmp edx, 0x6d542f00
je 0x14011d720
nop word cs:[rax + rax]
mov eax, dword [0x140227cb8]
and eax, dword [0x140227cbc]
add eax, 0x7eb7047d
not eax
and eax, 0x23f88088
cmp eax, 0x83ef38ee
ja 0x14011d760
mov rcx, qword [rsi + 8]
mov rax, qword [rsi + 0x10]
nop word [rax + rax]
mov edx, dword [0x140227cc0]
or edx, dword [0x140227cc4]
add edx, 0xaf81ff1
cmp edx, 0xd8126435
ja 0x14011d790
test rcx, rcx
je 0x14011d900
nop word cs:[rax + rax]
mov ecx, dword [0x140227cc8]
xor ecx, dword [0x140227ccc]
add ecx, 0x676d1772
xor ecx, 0x859a0ca3
imul rcx, rcx, 0x17e6bc89
shr rcx, 0x3c
cmp ecx, 0xc113b26d
je 0x14011d7c0
cmp rax, 0x11
jb 0x14011d83c
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x14011d800
nop word cs:[rax + rax]
mov eax, dword [0x140227cd0]
and eax, dword [0x140227cd4]
or eax, 0x2f4ddf10
imul rax, rax, 0x4fa18067
shr rax, 0x3b
or eax, 0x3e606b92
cmp eax, 0xdad34c93
je 0x14011d810
mov rdi, qword [rdi - 8]
mov eax, dword [0x140227cd8]
xor eax, dword [0x140227cdc]
or eax, 0xf1b6bfa1
mov ecx, eax
xor ecx, 0x298c599e
and ecx, eax
mov eax, ecx
not eax
or eax, 0x913b569
add eax, ecx
inc eax
cmp eax, 0x91c7bc7b
jbe 0x14011d87d
mov rcx, qword [0x14022cb48]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov eax, dword [0x140227ce0]
mov ebx, dword [0x140227ce4]
mov ecx, eax
xor ecx, ebx
not ebx
and ebx, eax
add ebx, ebx
sub ebx, ecx
imul rax, rbx, 0x472c4ed
shr rax, 0x20
sub ebx, eax
shr ebx, 1
add ebx, eax
shr ebx, 0x1e
add ebx, 0xf62c00f7
mov eax, ebx
not eax
and eax, 0x841100a
mov ecx, ebx
and ecx, 0x4000085
imul ecx, eax
mov eax, ebx
and eax, 0xf22c007a
or ebx, 0xfa6d107a
imul ebx, eax
add ebx, ecx
mov rcx, qword [0x14022cb48]
xor edx, edx
mov r8, rdi
call rsi
cmp ebx, 0x6be272bd
je 0x14011d890
nop
mov eax, dword [0x140227ce8]
or eax, dword [0x140227cec]
and eax, 0xf96c29ea
add eax, 0xe3e0e6cd
imul rax, rax, 0x31f354cb
shr rax, 0x3d
cmp eax, 0xe93b9d1b
je 0x14011d900
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret