Function at 0x140152310
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea r13, [r8 + 1]
nop dword [rax]
mov eax, dword [0x1415c3028]
mov ecx, dword [0x1415c302c]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov eax, ecx
and eax, 0x25d9cc7d
add eax, eax
sub ecx, eax
cmp ecx, 0x15d4d120
je 0x140152330
nop dword [rax + rax]
mov eax, dword [0x1415c3030]
mov ecx, dword [0x1415c3034]
mov edx, ecx
not edx
mov r8d, eax
and r8d, edx
or edx, eax
not edx
imul edx, r8d
mov r8d, eax
and r8d, ecx
or eax, ecx
imul eax, r8d
add eax, edx
imul rcx, rax, 0x32815c01
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1e
imul eax, eax, 0x365d6ebd
mov ecx, eax
and ecx, 0xc2ade8ed
or eax, 0xc2ade8ed
add eax, ecx
cmp eax, 0x13e7b7bd
jb 0x140152360
test r13, r13
je 0x140152464
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x1401523d0
mov rax, r13
shr rax, 0x3e
jne 0x140152ab3
lea rdx, [r13*2]
movzx eax, byte [0x1415d3950]
xor ecx, ecx
call fcn.140219830
mov r14, rax
nop word [rax + rax]
mov eax, dword [0x1415c3048]
or eax, dword [0x1415c304c]
or eax, 0x266475e4
mov ecx, eax
not ecx
or ecx, 0xf2ef428f
add eax, ecx
add eax, 0x6b903b5c
cmp eax, 0x453801fb
jb 0x140152400
test r14, r14
je 0x140152ad4
nop word cs:[rax + rax]
mov eax, dword [0x1415c3060]
xor eax, dword [0x1415c3064]
or eax, 0xbe72e3
add eax, 0xbb77a08c
or eax, 0x396350f7
cmp eax, 0x9c4346dc
jb 0x140152440
jmp 0x14015246a
mov r14d, 2
mov eax, dword [0x1415c3068]
xor edx, edx
div dword [0x1415c306c]
add eax, 0x480eeca
and eax, 0xb513a508
cmp eax, 0xafb6f751
jne 0x1401524c0
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 0
lea rax, [rbx + rdi]
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rax
mov word [rsp + 0x50], 0
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x40]
call fcn.140152d10
add rdi, rbx
lea r15, [rsp + 0x28]
lea r12, [rsp + 0x40]
nop dword [rax]
mov ebp, dword [0x1415c3070]
sub ebp, dword [0x1415c3074]
and ebp, 0x3522c16
add ebp, 0xdc23cbca
not ebp
and ebp, 0x23da2c1b
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x50], 0
mov rcx, r15
mov rdx, r12
call fcn.14021bba0
cmp ebp, 0xaa1f36b1
ja 0x1401524d0
mov r8, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov r9, rdi
mov rcx, r8
cmp rdi, 8
jb 0x1401528c8
mov r10d, 0x86ab44a5
mov rcx, r8
mov r9, rdi
cmp word [rcx], 0
je 0x140152a8d
mov eax, dword [0x1415c3090]
add eax, dword [str.Z_u_]
or eax, 0xf7febfff
cmp eax, 0xa87114d3
jb 0x140152557
movzx eax, word [rcx + 2]
nop word cs:[rax + rax]
mov edx, dword [0x1415c3098]
sub edx, dword [0x1415c309c]
mov r11d, edx
xor r11d, 0xd7eb915c
and r11d, edx
add r11d, 0x8851bf40
mov edx, r11d
xor edx, 0x117c6830
or r11d, 0xee8397cf
and r11d, edx
cmp r11d, 0x8c511d7c
je 0x140152580
test ax, ax
je 0x140152a8d
cmp word [rcx + 4], 0
je 0x140152a8d
movzx eax, word [rcx + 6]
mov edx, dword [0x1415c30a0]
or edx, dword [0x1415c30a4]
imul edx, edx, 0x4f94a424
add edx, 0x3a4c3194
mov r11d, edx
not r11d
mov ebx, edx
and ebx, 0xda5ef268
and r11d, 0x25a10d95
imul r11d, ebx
mov ebx, edx
and ebx, 0x25a10d94
or edx, 0x25a10d95
imul edx, ebx
add edx, r11d
cmp edx, 0x542d9a0e
je 0x1401525d4
nop word cs:[rax + rax]
mov edx, dword [0x1415c30a8]
and edx, dword [0x1415c30ac]
mov r11d, edx
not r11d
or edx, 0x975cc058
and r11d, 0x48233f22
mov ebx, edx
and ebx, 0x24808085
or ebx, r11d
xor ebx, 0x69724407
and edx, 0xb20d3b7d
or edx, ebx
cmp edx, 0x2585e3dd
je 0x140152630
test ax, ax
je 0x140152a8d
mov eax, dword [0x1415c30b0]
or eax, dword [0x1415c30b4]
add eax, 0x6e612df9
imul rax, r10
shr rax, 0x3f
mov edx, eax
xor edx, 0xb4cb2bb5
add edx, eax
cmp edx, 0x98c248e6
jb 0x140152679
mov eax, dword [0x1415c30b8]
mov edx, dword [0x1415c30bc]
mov r11d, eax
and r11d, edx
add r11d, r11d
add eax, edx
sub eax, r11d
mov edx, eax
xor edx, 0x9c9a8714
or eax, 0x636578eb
and eax, edx
imul rax, rax, 0x1249d0d9
shr rax, 0x3b
add eax, 0xc86e9883
cmp eax, 0x55c9cb4e
jb 0x1401526a4
movzx r11d, word [rcx + 8]
nop dword [rax]
mov eax, dword [0x1415c30c0]
xor edx, edx
div dword [0x1415c30c4]
add eax, 0x7266b9f
mov edx, eax
or edx, 0xa140822
not eax
and eax, 0x14c2c318
and edx, 0xea1c0c62
or edx, eax
cmp edx, 0xf2b8c64e
je 0x1401526f0
test r11w, r11w
je 0x140152a8d
mov eax, dword [0x1415c30c8]
xor edx, edx
div dword [0x1415c30cc]
imul eax, eax, 0xfbaf3244
or eax, 0xa62856d0
imul eax, eax, 0xc2ef0e5e
cmp eax, 0xf4e2708
jb 0x14015272c
mov eax, dword [0x1415c30d0]
mov edx, dword [0x1415c30d4]
mov r11d, edx
and r11d, eax
add eax, edx
sub eax, r11d
mov edx, eax
xor edx, 0xc7c7fe9
and eax, 0x13838016
add eax, eax
sub eax, edx
add eax, 0xf94bff55
and eax, 0x330c9625
cmp eax, 0x391f2dfa
ja 0x140152752
cmp word [rcx + 0xa], 0
je 0x140152a8d
cmp word [rcx + 0xc], 0
je 0x140152a8d
nop word cs:[rax + rax]
mov eax, dword [0x1415c30d8]
or eax, dword [0x1415c30dc]
add eax, 0xa7a23eae
mov edx, eax
not edx
and edx, 0x369c6e38
mov r11d, eax
and r11d, 0xc96391c7
imul r11d, edx
mov edx, eax
and edx, 0x369c6e38
or eax, 0x369c6e38
imul eax, edx
add eax, r11d
add eax, 0x66a5d3cc
cmp eax, 0x18cafee9
jb 0x1401527b0
nop dword [rax + rax]
mov eax, dword [0x1415c30e0]
xor eax, dword [0x1415c30e4]
mov edx, eax
or edx, 0x8020025
xor edx, 0x380b0425
or eax, 0x82100010
and eax, edx
not eax
and eax, 0xba1b0435
add eax, 0x5336d694
jae 0x140152800
movzx eax, word [rcx + 0xe]
nop word cs:[rax + rax]
mov edx, dword [0x1415c30e8]
imul edx, dword [0x1415c30ec]
imul rdx, rdx, 0x4d7a334b
shr rdx, 0x3d
add edx, 0xa90fdb81
xor edx, 0x2f810723
cmp edx, 0xfece1d8
jb 0x140152840
test ax, ax
je 0x140152a8d
nop word cs:[rax + rax]
mov eax, dword [0x1415c30f0]
xor edx, edx
div dword [0x1415c30f4]
mov edx, eax
xor edx, 0x12a84c34
and edx, eax
and edx, 0x96a8eefd
add edx, 0xb1a89d4
cmp edx, 0xaefc8e0
jb 0x140152880
mov rax, r9
and rax, 0xfffffffffffffff8
or r9, 0xfffffffffffffff8
add r9, rax
add rcx, 0x10
cmp r9, 7
ja 0x14015254d
mov eax, dword [0x1415c3078]
xor edx, edx
div dword [0x1415c307c]
lea r9, [rcx + r9*2]
nop word [rax + rax]
mov eax, dword [0x1415c3080]
imul eax, dword [0x1415c3084]
mov edx, eax
not edx
mov r10d, eax
and r10d, 0xdbb81244
and edx, 0x2447edbb
imul edx, r10d
mov r10d, eax
and r10d, 0x2447edbb
or eax, 0x2447edbb
imul eax, r10d
add eax, edx
imul rax, rax, 0x25ec498d
shr rax, 0x3d
or eax, 0x1153a7de
cmp eax, 0x2a0d6ead
ja 0x1401528e0
jmp 0x14015297b
mov eax, dword [0x1415c3088]
xor edx, edx
div dword [0x1415c308c]
mov edx, eax
xor edx, 0xcfd112b7
add edx, eax
and eax, 0x302eed48
sub edx, eax
xor edx, 0xdd843912
cmp edx, 0x43a6b755
je 0x140152940
cmp word [rcx], 0
lea rcx, [rcx + 2]
je 0x140152a8d
cmp rcx, r9
jne 0x140152940
mov eax, dword [0x1415c3130]
add eax, dword [0x1415c3134]
mov ecx, eax
not ecx
and ecx, 0xc0c3041a
mov edx, eax
and edx, 0x3f3cfbe5
imul edx, ecx
mov ecx, eax
and ecx, 0xc0c3041a
or eax, 0xc0c3041a
imul eax, ecx
add eax, edx
imul eax, eax, 0xc62c4ae6
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x3fdd7d74
and ecx, 0xc022828b
imul ecx, edx
mov edx, eax
and edx, 0xc0228288
or eax, 0xc022828b
imul eax, edx
add eax, ecx
cmp eax, 0x9e64456d
je 0x140152980
cmp rdi, qword [rsp + 0x28]
jne 0x140152a64
lea rcx, [rsp + 0x28]
call fcn.14021bbc0
mov eax, dword [0x1415c3138]
xor edx, edx
div dword [0x1415c313c]
nop word cs:[rax + rax]
mov eax, dword [0x1415c3140]
mov ecx, dword [0x1415c3144]
not eax
not ecx
or ecx, eax
mov eax, ecx
not eax
and ecx, 0xef0cbbdc
mov edx, eax
and edx, 0x10f34423
or edx, ecx
xor edx, 0xbde8ab78
and eax, 0x52e410a4
or eax, edx
lea ecx, [rax + 0x561257c7]
not ecx
or ecx, 0xef351f31
add eax, ecx
add eax, 0x561257c8
cmp eax, 0xaa2bd1e9
ja 0x140152a10
mov r8, qword [rsp + 0x30]
mov word [r8 + rdi*2], 0
mov eax, edi
and eax, 1
or rdi, 1
add rdi, rax
mov qword [rsp + 0x38], rdi
mov qword [rsi + 0x10], rdi
movups xmm0, xmmword [rsp + 0x28]
movups xmmword [rsi], xmm0
jmp 0x140152cfe
mov eax, dword [0x1415c30f8]
xor eax, dword [0x1415c30fc]
and eax, 0x29280f80
add eax, 0xc99e5d10
cmp eax, 0xb0771a3
jae 0x140152b67
jmp 0x140152bb2
mov eax, dword [0x1415c3038]
mov ecx, dword [0x1415c303c]
add eax, ecx
add eax, 0x9257103d
and eax, 0x83c0a421
cmp eax, 0x496b338b
jne 0x140152adc
jmp 0x140152afb
xor eax, eax
test al, al
je 0x140152b01
jmp 0x140152b33
mov eax, dword [0x1415c3040]
add eax, dword [0x1415c3044]
xor eax, 0x148
or eax, 0xffffbe37
ud2
ud2
mov eax, dword [0x1415c3050]
mov ecx, dword [0x1415c3054]
add eax, ecx
add eax, 0x3957331d
mov ecx, eax
and ecx, 0x4b529b24
add ecx, ecx
sub eax, ecx
add eax, 0xcb529b24
or eax, 0x4a82836d
ud2
ud2
mov eax, dword [0x1415c3100]
add eax, dword [0x1415c3104]
mov ecx, eax
xor ecx, 0x8b78a2a8
or eax, 0x74875d57
and eax, ecx
mov ecx, eax
xor ecx, 0xf87cbdf6
or eax, 0x7834209
and eax, ecx
mov ecx, eax
xor ecx, 0x6de07f4
or eax, 0xf921f80b
and eax, ecx
lea rcx, [0x14159efd0]
mov qword [rsi + 8], rcx
cmp eax, 0x94b87c32
jbe 0x140152bbf
lea rax, [0x14159efd0]
mov qword [rsi + 8], rax
jmp 0x140152b67
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov rax, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov ecx, dword [0x1415c3108]
sub ecx, dword [0x1415c310c]
or ecx, 0x766d4fd7
mov edx, ecx
and edx, 0x21bc6dc6
add edx, edx
neg edx
add ecx, edx
add ecx, 0x21bc6dc6
or ecx, 0x3c21ac7c
cmp ecx, 0x21dc4327
je 0x140152be0
test rax, rax
je 0x140152cd0
mov eax, dword [0x1415c3110]
or eax, dword [0x1415c3114]
mov ecx, eax
xor ecx, 0xd285fe00
or eax, 0x2d7a01ff
and eax, ecx
xor eax, 0xa13740d3
cmp eax, 0x59b39415
je 0x140152c82
mov eax, dword [0x1415c3118]
mov ecx, dword [0x1415c311c]
mov edx, eax
xor edx, ecx
not edx
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
imul eax, ecx, 0x1669399b
add eax, 0x5cce335
imul rax, rax, 0x3ed3e63f
shr rax, 0x3d
mov rcx, qword [0x1415d3918]
cmp eax, 0x5bbd574d
jbe 0x140152c8b
mov rax, qword [0x1415d3918]
jmp 0x140152c44
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov eax, dword [0x1415c3120]
or eax, dword [0x1415c3124]
mov ecx, eax
xor ecx, 0x4c28fb0d
or eax, 0xb3d704f2
and eax, ecx
cmp eax, 0x2656e662
je 0x140152ca0
nop word cs:[rax + rax]
mov eax, dword [0x1415c3128]
sub eax, dword [0x1415c312c]
add eax, 0x4b998a8b
mov ecx, eax
xor ecx, 0x5803f0e
and eax, 0x7a7fc0f1
add eax, eax
sub eax, ecx
add eax, 0x5ea2a041
cmp eax, 0x93535102
jbe 0x140152cd0
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret