Function at 0x140152100
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov r11, rdx
nop
mov eax, dword [0x14020f3c8]
mov edx, dword [0x14020f3cc]
mov r10d, eax
not r10d
and r10d, edx
not edx
and edx, eax
sub edx, r10d
add edx, 0x4a7f164e
imul rax, rdx, 0x40ada43d
shr rax, 0x38
not eax
and eax, 0x9c21ffa5
cmp eax, 0xa228c1f3
ja 0x140152110
test r9b, r9b
je 0x140152163
xor r10d, r10d
mov eax, r10d
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
inc r11
mov r9, qword [rcx]
mov eax, dword [0x14020f3d0]
xor edx, edx
div dword [0x14020f3d4]
nop word [rax + rax]
mov eax, dword [0x14020f3d8]
mov edx, dword [0x14020f3dc]
mov r10d, edx
not r10d
mov esi, eax
and esi, r10d
or r10d, eax
not r10d
imul r10d, esi
mov esi, eax
and esi, edx
or eax, edx
imul eax, esi
add eax, r10d
or eax, 0x218b901c
add eax, 0x5e36e1b3
or eax, 0x46f723a5
cmp eax, 0xd94988a6
je 0x140152180
mov rsi, qword [rcx + 0x10]
mov rdi, qword [rcx + 0x18]
cmp rdi, 4
jae 0x14015250a
nop word cs:[rax + rax]
mov eax, dword [0x14020f3e0]
xor edx, edx
div dword [0x14020f3e4]
mov ecx, eax
or ecx, 0x478e1076
mov edx, ecx
not edx
and edx, 0x4e85a451
mov r10d, ecx
and r10d, 0xb17a5bae
imul r10d, edx
and ecx, 0x4e85a451
or eax, 0x4f8fb477
imul eax, ecx
add eax, r10d
cmp eax, 0x2c6c0c03
je 0x1401521e0
movabs rbx, 0x30ef18433c57c3a3
add r11, rbx
mov r14d, 0xabbfa3d3
nop dword [rax]
mov eax, dword [0x14020f3e8]
xor edx, edx
div dword [0x14020f3ec]
or eax, 0x897cda3d
mov ecx, eax
and ecx, 0x4530998c
xor eax, 0x4530998c
lea eax, [rax + rcx*2]
imul eax, eax, 0xb3bedd82
cmp eax, 0xdebe3b55
ja 0x140152240
mov r10b, 1
test rdi, rdi
je 0x140152153
tzcnt ecx, r8d
lea r15, [r11 + rcx]
sub r15, rbx
nop dword [rax + rax]
mov eax, dword [0x14020f3f0]
sub eax, dword [0x14020f3f4]
and eax, 0x7a0f3755
add eax, 0xe410365e
and eax, 0x461b71df
cmp eax, 0x2102056c
jb 0x140152290
movzx eax, byte [r9 + r15]
nop word [rax + rax]
mov edx, dword [0x14020f3fc]
mov r12d, edx
xor r12d, r12d
not r12d
and r12d, dword [0x14020f3f8]
xor r12d, edx
add r12d, 0x6ef1c7d0
imul r12, r14
shr r12, 0x3f
cmp r12d, 0x2dfe10a3
ja 0x1401522c0
movzx edx, byte [rsi]
mov r12d, dword [0x14020f400]
xor r12d, dword [0x14020f404]
mov r13d, r12d
and r13d, 0xb6cece5d
and r12d, 0x248ec401
xor r13d, 0x658fd4a3
lea ebp, [r13 + r12*2 - 0x399b6e8c]
cmp ebp, 0xa9a621d9
jb 0x1401522f4
cmp al, dl
jne 0x140152490
cmp rdi, 1
je 0x140152153
nop dword [rax]
mov eax, dword [0x14020f408]
xor edx, edx
div dword [0x14020f40c]
add eax, 0x67a5e2ce
mov edx, eax
or edx, 0x1d8770a5
mov ebp, eax
not ebp
and ebp, 0xe230825a
mov r12d, edx
and r12d, 0x18cd7d21
imul r12d, ebp
and edx, 0xe73282de
or eax, 0xffb7f2ff
imul eax, edx
add eax, r12d
cmp eax, 0xae70d6db
je 0x140152340
movzx eax, byte [r9 + r15 + 1]
movzx edx, byte [rsi + 1]
nop word cs:[rax + rax]
mov ebp, dword [0x14020f410]
sub ebp, dword [str.I_M]
or ebp, 0xc6272aa8
imul ebp, ebp, 0xb70e7a63
add ebp, 0x4d39530b
cmp ebp, 0x9ce23ff5
ja 0x1401523a0
cmp al, dl
jne 0x140152490
nop
mov eax, dword [0x14020f418]
xor edx, edx
div dword [0x14020f41c]
mov edx, eax
xor edx, 0xdf5eb54c
and eax, 0x20a14ab3
add eax, eax
sub eax, edx
add eax, 0xaeda7dd9
or eax, 0x5d5e53a2
cmp eax, 0x5b1456cd
je 0x1401523d0
cmp rdi, 2
je 0x140152153
mov eax, dword [0x14020f420]
xor edx, edx
div dword [0x14020f424]
nop dword [rax + rax]
mov eax, dword [0x14020f428]
imul eax, dword [0x14020f42c]
imul rax, rax, 0x77a4d101
shr rax, 0x3e
cmp eax, 0xff0a1c70
je 0x140152420
movzx ebp, byte [r9 + r15 + 2]
cmp rdi, 3
setne r15b
mov eax, dword [0x14020f430]
xor edx, edx
div dword [0x14020f434]
add eax, 0x68ae3318
mov edx, eax
not edx
or eax, 0xe29fd884
or edx, 0xc692d8ea
and edx, eax
and edx, 0xe69fd8ee
cmp bpl, byte [rsi + 2]
setne al
cmp edx, 0x8ed600bf
je 0x140152445
or al, r15b
je 0x140152153
nop
mov eax, dword [0x14020f438]
mov edx, dword [0x14020f43c]
mov r10d, eax
and r10d, edx
xor eax, edx
lea eax, [rax + r10*2]
or eax, 0x5e721086
imul rdx, rax, 0x179bfded
shr rdx, 0x3c
add edx, 0x8845f853
mov ax, 0xfffe
rol ax, cl
cmp edx, 0x51ffdf72
jb 0x140152490
nop dword [rax]
mov ecx, dword [0x14020f440]
or ecx, dword [0x14020f444]
and ecx, 0x541440c
add ecx, 0x45033b34
not ecx
or ecx, 0xf2036cbd
cmp ecx, 0x5ac25d8f
jb 0x1401524d0
and r8d, eax
test r8w, r8w
jne 0x140152240
jmp 0x140152150
mov rax, rdi
and rax, 0xfffffffffffffffc
or rdi, 0xfffffffffffffffc
add rdi, rax
nop dword [rax + rax]
mov eax, dword [0x14020f448]
xor edx, edx
div dword [0x14020f44c]
mov ecx, eax
not ecx
and ecx, 0xa9e1fd2d
mov edx, eax
and edx, 0x561e02d2
imul edx, ecx
mov ecx, eax
and ecx, 0xa9e1fd2d
or eax, 0xa9e1fd2d
imul eax, ecx
add eax, edx
add eax, 0x9746fa0b
imul rax, rax, 0x11a57bfb
shr rax, 0x3c
cmp eax, 0xd7d56a52
je 0x140152520
xor eax, eax
nop
test al, al
jne 0x140152570
test rdi, rdi
jle 0x14015284a
mov eax, 0x9fb21fbb
xor edx, edx
nop word cs:[rax + rax]
mov ecx, dword [0x14020f450]
mov r10d, dword [0x14020f454]
mov ebx, r10d
not ebx
and ebx, ecx
xor r10d, ecx
add r10d, ecx
sub r10d, ebx
mov ecx, r10d
xor ecx, 0x48010200
and ecx, r10d
and ecx, 0x48210201
cmp ecx, 0xee6b860f
ja 0x140152590
tzcnt ecx, r8d
lea r10, [r11 + rcx]
add r10, r9
lea rbx, [r10 + rdi]
mov r14, rsi
nop word [rax + rax]
mov ebp, dword [0x14020f458]
mov r15d, dword [0x14020f45c]
not ebp
not r15d
mov r12d, ebp
or r12d, r15d
not r12d
and r15d, ebp
or r15d, r12d
mov ebp, r15d
not ebp
or ebp, 0xb3f262f6
or r15d, 0x5575f2bc
and r15d, ebp
not r15d
or r15d, 0x8080d01
imul r15, rax
shr r15, 0x3e
cmp r15d, 0x81622a4a
ja 0x1401525e0
mov ebp, dword [r14]
cmp dword [r10], ebp
jne 0x1401527d8
test dl, dl
jne 0x14015263d
add r10, 4
add r14, 4
mov ebp, dword [0x14020f460]
mov r15d, dword [0x14020f464]
xor r15d, ebp
not r15d
and r15d, ebp
mov r12d, r15d
or r12d, 0x800d25
not r15d
and r15d, 0x28069010
and r12d, 0x83f94fe7
or r12d, r15d
mov r15d, r12d
and r15d, 0x9bc0265
xor r12d, 0x1dbc026d
lea ebp, [r12 + r15*2]
cmp ebp, 0xbc0cecc5
je 0x140152649
nop word [rax + rax]
mov ebp, dword [0x14020f468]
mov r15d, dword [0x14020f46c]
mov r12d, r15d
not r12d
mov r13d, ebp
and r13d, r12d
or r12d, ebp
not r12d
imul r12d, r13d
mov r13d, ebp
and r13d, r15d
or ebp, r15d
imul ebp, r13d
add ebp, r12d
mov r15d, ebp
not r15d
mov r12d, ebp
and r12d, 0xe2545fd7
and r15d, 0x1daba028
imul r15d, r12d
mov r12d, ebp
and r12d, 0x1daba028
or ebp, 0x1daba028
imul ebp, r12d
add ebp, r15d
mov r15d, ebp
xor r15d, 0xd1c1283a
or ebp, 0x2e3ed7c0
and ebp, r15d
add ebp, 0xa7a8558a
cmp ebp, 0x914f0762
jb 0x1401526a0
cmp r10, rbx
jb 0x1401525e0
mov r10d, dword [rbx]
nop word cs:[rax + rax]
mov ebx, dword [0x14020f478]
and ebx, dword [0x14020f47c]
xor ebx, 0x723fced2
imul rbx, rbx, 0x1d3786ef
shr rbx, 0x3b
or ebx, 0xa7049a40
cmp ebx, 0x7dbb6634
jb 0x140152740
mov ebx, dword [rsi + rdi]
nop
mov ebp, dword [0x14020f480]
mov r14d, dword [0x14020f484]
mov r15d, ebp
and r15d, r14d
or ebp, r14d
add ebp, r15d
mov r14d, ebp
not r14d
and r14d, 0xd50b0ab2
mov r15d, ebp
and r15d, 0x2af4f54d
imul r15d, r14d
mov r14d, ebp
and r14d, 0xd50b0ab2
or ebp, 0xd50b0ab2
imul ebp, r14d
add ebp, r15d
or ebp, 0x62e4a757
add ebp, 0x86db731d
cmp ebp, 0x30d954cf
jb 0x140152770
cmp r10d, ebx
je 0x14015293e
mov r10w, 0xfffe
rol r10w, cl
nop word cs:[rax + rax]
mov ecx, dword [0x14020f470]
sub ecx, dword [0x14020f474]
mov ebx, ecx
xor ebx, 0x188114fd
and ebx, ecx
mov ecx, ebx
and ecx, 0x724615e1
add ecx, ecx
neg ecx
add ecx, ebx
add ecx, 0x724615e1
imul rcx, rcx, 0xc95fe71
shr rcx, 0x3b
cmp ecx, 0xf3e099c4
ja 0x1401527f0
mov ecx, r8d
not ecx
or r10d, ecx
add r8d, r10d
inc r8d
test r8w, r8w
jne 0x140152590
jmp 0x140152150
add r9, rdi
nop dword [rax]
mov eax, dword [0x14020f488]
mov ecx, dword [0x14020f48c]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
xor eax, 0x9a5877c3
add eax, 0x83da2c40
and eax, 0xffbda2a6
cmp eax, 0xf77c395f
ja 0x140152850
mov esi, dword [rsi + rdi]
xor eax, eax
test al, al
jne 0x140152880
movabs rax, 0x878c44c8fc277726
sub r11, rax
add r11, rax
xor edi, edi
nop word cs:[rax + rax]
tzcnt ecx, r8d
lea rax, [r11 + rcx]
mov eax, dword [r9 + rax]
cmp eax, esi
sete r10b
test dil, dil
jne 0x1401528a0
cmp eax, esi
je 0x140152153
mov ebx, 1
shl ebx, cl
test dil, dil
jne 0x1401528c0
mov eax, dword [0x14020f490]
xor edx, edx
div dword [0x14020f494]
mov eax, dword [0x14020f498]
mov ecx, dword [0x14020f49c]
not eax
not ecx
or ecx, eax
xor ecx, 0xa452215
imul eax, ecx, 0xe6592b9d
add eax, 0x96af2068
cmp eax, 0xe348f216
ja 0x1401528da
xor ebx, r8d
and ebx, r8d
mov r8d, ebx
nop dword [rax]
mov eax, dword [0x14020f4a0]
xor edx, edx
div dword [0x14020f4a4]
add eax, 0x3672973f
or eax, 0x4c03a140
cmp eax, 0x7f06baca
ja 0x140152910
test r8w, r8w
jne 0x1401528a0
jmp 0x140152153
mov r10b, 1
jmp 0x140152153