Function at 0x140016a30
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
nop dword [rax]
mov eax, dword [0x14020ef40]
mov ecx, eax
not ecx
or ecx, dword [0x14020ef44]
add eax, ecx
inc eax
or eax, 0x738b4791
imul eax, eax, 0x7fa3ce0
mov ecx, eax
not ecx
and ecx, 0xe3c1314f
mov edx, eax
and edx, 0x1c3ece80
imul edx, ecx
mov ecx, eax
and ecx, 0xe3c13160
or eax, 0xe3c1316f
imul eax, ecx
add eax, edx
cmp eax, 0x2419ea6b
jb 0x140016a40
movzx eax, byte [rsi]
mov ecx, dword [0x14020ef48]
add ecx, dword [0x14020ef4c]
mov edx, ecx
xor edx, 0x97f6edfd
or ecx, 0x68091202
and ecx, edx
mov edx, ecx
not edx
or ecx, 0x10202095
and edx, 0xc010308
and ecx, 0x716870b7
sub ecx, edx
cmp ecx, 0xe7082206
ja 0x140016a90
nop dword [rax]
mov ecx, dword [0x14020ef50]
imul ecx, dword [0x14020ef54]
imul ecx, ecx, 0xec73840e
mov edx, ecx
not edx
or edx, 0x81087e8c
or ecx, 0x7ef78172
and ecx, edx
mov edx, ecx
xor edx, 0xb0ffb147
and ecx, 0xb0ffb146
or ecx, edx
cmp ecx, 0xd0d3761e
jb 0x140016ad0
cmp rax, 0xf
ja case.default.0x140016b21
lea rcx, [0x140207cb4]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, dword [0x14020ef60]
add eax, dword [0x14020ef64]
mov ecx, eax
not ecx
or ecx, 0x2304b000
or eax, 0xa0245018
and eax, ecx
and eax, 0xa324f018
cmp eax, 0x393707e5
ja case.0x140016b21.0
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov eax, dword [0x14020ef58]
mov ecx, dword [0x14020ef5c]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
or ecx, 0x9effff77
add ecx, 0xe41ceebe
cmp ecx, 0x25678eec
jb case.default.0x140016b21
mov rcx, qword [rsi + 8]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp case.0x140016b21.0
mov rax, qword [rsi + 8]
nop
mov ecx, dword [0x14020ef68]
mov edx, dword [0x14020ef6c]
xor edx, ecx
not edx
and edx, ecx
mov ecx, edx
and ecx, 0x62fbc6e
add ecx, ecx
neg ecx
add ecx, edx
add ecx, 0x862fbc6e
or ecx, 0x2181582
and ecx, 0xe258b5a2
cmp ecx, 0xe4732b4d
ja 0x140016bb0
test rax, rax
je case.0x140016b21.0
mov r8, qword [rsi + 0x10]
mov rcx, qword [0x14022cb48]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov eax, dword [0x14020ef70]
mov ecx, dword [0x14020ef74]
mov edx, eax
not edx
or eax, ecx
not ecx
and ecx, edx
not ecx
and ecx, eax
imul eax, ecx, 0x91c8481a
add eax, 0xfbae4a3c
xor eax, 0x48dbc350
cmp eax, 0xf47ce55c
jae 0x140016c10
jmp case.0x140016b21.0
mov eax, dword [0x14020ef78]
xor edx, edx
div dword [0x14020ef7c]
nop word cs:[rax + rax]
mov eax, dword [0x14020ef80]
add eax, dword [0x14020ef84]
xor eax, 0x1cb0831
add eax, 0x19dc6e22
xor eax, 0xfd3a223
cmp eax, 0x2d52d610
jb 0x140016c60
mov eax, dword [0x14020ef88]
xor edx, edx
div dword [0x14020ef8c]
mov eax, dword [0x14020ef90]
add eax, dword [0x14020ef94]
mov ecx, eax
xor ecx, 0x16e7e112
and eax, 0x69181eed
add eax, eax
sub eax, ecx
imul rcx, rax, 0x4211cdd3
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
not eax
or eax, 0xd03252c5
cmp eax, 0x8111e254
jb 0x140016c90
mov rdi, qword [rsi + 0x10]
nop word cs:[rax + rax]
mov eax, dword [0x14020ef98]
sub eax, dword [0x14020ef9c]
mov ecx, eax
and ecx, 0x7d6632f
mov edx, ecx
not edx
mov r8d, eax
and r8d, 0x4162122
and edx, 0x7bc14e1d
imul edx, r8d
and eax, 0x3c0420d
or ecx, 0x7bc14e1d
imul ecx, eax
add ecx, edx
or ecx, 0xb89d5de9
cmp ecx, 0x3d0fc22c
jb 0x140016ce0
mov rbx, qword [rsi + 0x18]
test rbx, rbx
je 0x140016ddc
xor r14d, r14d
nop word [rax + rax]
mov eax, dword [0x14020efa0]
xor edx, edx
div dword [0x14020efa4]
mov ecx, eax
xor ecx, 0x54018a01
xor eax, 0x5e9baab1
and ecx, 0x5441db09
add ecx, ecx
sub ecx, eax
not ecx
or ecx, 0x110853ef
cmp ecx, 0xcba9ef30
jbe 0x140016d90
mov rcx, r14
shl rcx, 5
add rcx, rdi
call fcn.140016a30
nop word cs:[rax + rax]
mov eax, dword [0x14020efa8]
mov ebp, dword [0x14020efac]
not eax
not ebp
or ebp, eax
mov eax, ebp
not eax
and eax, 0x200a0100
xor ebp, 0x8108420
or ebp, eax
or ebp, 0xd7e57adf
mov rcx, r14
shl rcx, 5
add rcx, rdi
call fcn.140016a30
cmp ebp, 0x1d5c7a42
je 0x140016d90
inc r14
cmp r14, rbx
jne 0x140016d40
xor eax, eax
nop
test al, al
jne 0x140016de0
mov rax, qword [rsi + 8]
nop dword [rax + rax]
mov ecx, dword [0x14020efb0]
sub ecx, dword [0x14020efb4]
cmp ecx, 0x3a88a6c3
je 0x140016df0
test rax, rax
je case.0x140016b21.0
mov eax, dword [0x14020efb8]
or eax, dword [0x14020efbc]
mov ecx, 0xa9da0ac3
imul rcx, rax
shr rcx, 0x3f
or ecx, 0x35bf5a02
cmp ecx, 0xc4b4ac21
jne 0x140016e40
mov rax, qword [0x14022cb48]
nop dword [rax + rax]
mov eax, dword [0x14020efc0]
add eax, dword [0x14020efc4]
mov edx, eax
not edx
or eax, 0x4cfcb2f1
or edx, 0xb3034d0e
and edx, eax
xor edx, 0x3fd90c6e
mov rcx, qword [0x14022cb48]
cmp edx, 0x99297021
jb 0x140016e40
xor edx, edx
mov r8, rdi
call fcn.14014eed0
jmp case.0x140016b21.0
mov eax, dword [0x14020efc8]
xor edx, edx
div dword [0x14020efcc]
mov eax, 0x8d4e513f
nop word cs:[rax + rax]
mov ecx, dword [0x14020efd0]
mov edx, dword [0x14020efd4]
mov r8d, edx
not r8d
mov r9d, ecx
and r9d, r8d
or r8d, ecx
not r8d
imul r8d, r9d
mov r9d, ecx
and r9d, edx
or ecx, edx
imul ecx, r9d
add ecx, r8d
shr ecx, 1
imul rcx, rax
shr rcx, 0x3e
imul ecx, ecx, 0x3fa31923
not ecx
or ecx, 0x4d308659
cmp ecx, 0x2690a644
jb 0x140016ea0
mov rsi, qword [rsi + 8]
mov rdi, qword [rsi]
mov eax, dword [0x14020efd8]
or eax, dword [0x14020efdc]
cmp eax, 0x58d4bbd8
je 0x140016f62
mov eax, dword [0x14020efe0]
mov ecx, dword [0x14020efe4]
add eax, ecx
add eax, 0x9007479b
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xd55434b2
and ecx, 0x2aabcb4d
imul ecx, edx
mov edx, eax
and edx, 0x2aabcb4d
or eax, 0x2aabcb4d
imul eax, edx
add eax, ecx
mov ecx, eax
not ecx
or ecx, 0xfac51828
lea ebx, [rcx + rax]
inc ebx
mov rcx, rsi
call qword [rdi + 0x10]
cmp ebx, 0x2bbdafb6
jae 0x140016f70
mov rcx, rsi
call qword [rdi + 0x10]
jmp 0x140016f0b
mov eax, dword [0x14020efec]
add eax, dword [str.sT_3Y]
or eax, 0xd3008c4b
mov ecx, eax
not ecx
or ecx, 0xc4c4848c
add ecx, eax
imul eax, ecx, 0x747cc056
add eax, 0x747cc056
cmp eax, 0x4fadcca9
ja 0x140016f70
jmp case.0x140016b21.0