Function at 0x140046100
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov r11, rdx
mov rbx, rcx
xor eax, eax
test al, al
jne 0x140046187
mov ecx, dword [0x141dc3350]
sub ecx, dword [0x141dc3354]
and ecx, 0x8b0118b
add ecx, 0x9696f63b
and ecx, 0x982562ad
mov eax, 0xa0
call fcn.1400ed360
sub rsp, rax
mov rdi, rsp
xorps xmm0, xmm0
movups xmmword [rdi + 0x90], xmm0
movups xmmword [rdi + 0x80], xmm0
movups xmmword [rdi + 0x70], xmm0
movups xmmword [rdi + 0x60], xmm0
movups xmmword [rdi + 0x50], xmm0
movups xmmword [rdi + 0x40], xmm0
movups xmmword [rdi + 0x30], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi], xmm0
cmp ecx, 0x9324690f
jbe 0x1400461cc
mov eax, 0xa0
call fcn.1400ed360
sub rsp, rax
mov rax, rsp
xorps xmm0, xmm0
movups xmmword [rax + 0x90], xmm0
movups xmmword [rax + 0x80], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
jmp 0x140046121
mov eax, dword [0x141dc3358]
xor edx, edx
div dword [0x141dc335c]
nop word [rax + rax]
mov eax, dword [0x141dc3360]
add eax, dword [0x141dc3364]
imul eax, eax, 0x355f7a74
add eax, 0xec806332
cmp eax, 0x5233c489
ja 0x1400461e0
mov r9, qword [rbx + 0xa0]
cmp r9, r8
jae 0x14004658e
mov eax, 0x866bc667
nop word cs:[rax + rax]
mov ecx, dword [0x141dc3408]
xor ecx, dword [0x141dc340c]
add ecx, 0x91c6aa9e
xor ecx, 0xb6b39b23
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x6f0f699f
je 0x140046220
cmp r9, 0x29
jae 0x140046974
nop word cs:[rax + rax]
mov eax, dword [0x141dc3418]
xor eax, dword [0x141dc341c]
imul eax, eax, 0x58a4f0e3
and eax, 0x6dcab95a
imul eax, eax, 0x7292dc2c
cmp eax, 0xa7464461
je 0x140046260
nop word cs:[rax + rax]
mov eax, dword [0x141dc3420]
and eax, dword [0x141dc3424]
add eax, 0xdef3680a
and eax, 0x62b888ce
cmp eax, 0xa2db6fd6
je 0x140046290
lea rax, [r8 + 1]
mov qword [rbp - 8], rax
lea rcx, [rbx + r9*4]
nop dword [rax]
mov eax, dword [0x141dc3428]
or eax, dword [0x141dc342c]
xor eax, 0xb0333b8
add eax, 0x177e36f5
or eax, 0xc7597a2d
cmp eax, 0x3e0056de
je 0x1400462c0
lea rax, [r8*4]
mov qword [rbp - 0x20], rax
xor r13d, r13d
mov r12, rbx
xor eax, eax
mov qword [rbp], rax
mov rax, r12
nop dword [rax]
mov r15, r13
nop word cs:[rax + rax]
mov edx, dword [0x141dc3430]
add edx, dword [0x141dc3434]
or edx, 0x80c327c0
and edx, 0x98f337e0
cmp edx, 0xe7d18320
je 0x140046310
cmp rax, rcx
je 0x1400468c9
mov edx, dword [0x141dc3438]
imul edx, dword [0x141dc343c]
shr edx, 2
imul rdx, rdx, 0xa1dc89b
shr rdx, 0x39
add edx, 0x4779ab81
and edx, 0x41718102
cmp edx, 0xa5749f0b
ja 0x140046339
lea r12, [rax + 4]
mov edx, dword [0x141dc3440]
sub edx, dword [0x141dc3444]
add edx, 0x7be181d4
shr edx, 4
imul rdx, rdx, 0x11544fd9
shr rdx, 0x37
imul edx, edx, 0x1815940c
cmp edx, 0x4c563422
ja 0x14004636c
lea r13, [r15 + 1]
mov r14d, dword [rax]
mov eax, dword [0x141dc3448]
xor edx, edx
div dword [0x141dc344c]
add eax, 0xfb900de9
or eax, 0x5992c307
cmp eax, 0xbc0e1103
je 0x1400463a1
mov rax, r12
test r14, r14
je 0x140046300
mov qword [rbp - 0x10], rcx
mov qword [rbp - 0x18], r8
xor eax, eax
mov rdx, r15
xor r10d, r10d
xor esi, esi
mov r9, r11
nop word cs:[rax + rax]
cmp rdx, 0x28
jae 0x140046ab2
mov r8d, dword [0x141dc3480]
or r8d, dword [0x141dc3484]
add r8d, 0x518d2924
xor r8d, 0xb531a7dc
imul r8, r8, 0x332aa1d7
shr r8, 0x3d
cmp r8d, 0x9d410d30
ja 0x1400463fa
add r9, 4
mov r8d, dword [r11 + rax]
mov ecx, dword [rdi + rdx*4]
add r10, rcx
imul r8, r14
add r8, r10
mov r10, r8
shr r10, 0x20
mov dword [rdi + rdx*4], r8d
inc rdx
add rax, 4
inc rsi
cmp qword [rbp - 0x20], rax
jne 0x1400463f0
mov eax, dword [0x141dc3450]
xor edx, edx
div dword [0x141dc3454]
xor eax, 0x803ec856
imul eax, eax, 0x9b4e9397
cmp eax, 0xe6fadca3
ja 0x14004645a
mov r8, qword [rbp - 0x18]
mov rax, r8
test r10d, r10d
mov ecx, 0
je 0x140046546
lea r9, [r15 + r8]
nop word cs:[rax + rax]
test cl, cl
jne 0x1400464a0
nop word cs:[rax + rax]
test cl, cl
jne 0x1400464b0
cmp r9, 0x28
jae 0x1400469ea
mov eax, dword [0x141dc3460]
xor edx, edx
div dword [0x141dc3464]
imul rax, rax, 0x7d7d8afb
shr rax, 0x3a
or eax, 0x20c25b88
cmp eax, 0x3eaa564
jne 0x1400464f0
mov dword [rdi + r9*4], r10d
nop word [rax + rax]
mov eax, dword [0x141dc3468]
sub eax, dword [0x141dc346c]
add eax, 0x7de6c092
xor eax, 0x3144c2a3
mov dword [rdi + r9*4], r10d
cmp eax, 0xbf381fdb
ja 0x1400464f0
nop word cs:[rax + rax]
mov eax, dword [0x141dc3470]
and eax, dword [0x141dc3474]
or eax, 0x3c9f0a02
add eax, 0x94d37866
or eax, 0x73fc4039
cmp eax, 0xba87a192
je 0x140046520
mov rax, qword [rbp - 8]
mov rcx, qword [rbp]
mov r9d, dword [0x141dc3458]
add r9d, dword [0x141dc345c]
xor r9d, 0x85844c1
and r9d, 0xd5c4ef5
xor r9d, 0x135a6ca9
lea rdx, [rax + r15]
cmp rcx, rdx
cmova rdx, rcx
cmp r9d, 0x472e7df4
ja 0x14004654a
mov qword [rbp], rdx
mov rcx, qword [rbp - 0x10]
jmp 0x1400462fa
cmp r9, 0x29
jae 0x140046a48
lea rdx, [r11 + r8*4]
mov eax, 0xb4afa293
lea rcx, [r9 + 1]
mov qword [rbp - 0x28], rcx
lea rcx, [rbx + r9*4]
mov qword [rbp - 0x20], rcx
nop word cs:[rax + rax]
mov ecx, dword [0x141dc3380]
add ecx, dword [0x141dc3384]
and ecx, 0xc612054b
imul rcx, rax
shr rcx, 0x3f
imul ecx, ecx, 0x5d2ef3eb
cmp ecx, 0xe3cdb65
ja 0x1400465c0
nop dword [rax + rax]
mov eax, dword [0x141dc3388]
imul eax, dword [0x141dc338c]
imul rax, rax, 0x1a0927a1
shr rax, 0x3b
imul eax, eax, 0x87097830
cmp eax, 0x4e37c730
ja 0x1400465f0
mov r15d, 0x88e617f3
mov r12d, 0x9003d523
mov r13d, 0x9611f833
xor ecx, ecx
xor eax, eax
mov qword [rbp], rax
mov rax, r11
nop word cs:[rax + rax]
cmp rax, rdx
je 0x1400468c9
mov r10, rcx
nop dword [rax]
mov ecx, dword [0x141dc3390]
add ecx, dword [0x141dc3394]
shr ecx, 1
imul rcx, r15
shr rcx, 0x3e
imul ecx, ecx, 0xe16c2a00
or ecx, 0xef2906ad
cmp ecx, 0x948d6468
jb 0x140046650
lea r8, [rax + 4]
mov ecx, dword [0x141dc3398]
xor ecx, dword [0x141dc339c]
and ecx, 0x181c3059
imul ecx, ecx, 0xfa32832f
cmp ecx, 0x2c2a36e3
jb 0x14004667e
lea rcx, [r10 + 1]
mov r11d, dword [rax]
mov rax, r8
test r11, r11
je 0x140046640
mov qword [rbp - 8], rdx
mov eax, dword [0x141dc33a0]
xor edx, edx
div dword [0x141dc33a4]
mov qword [rbp - 0x18], r9
mov qword [rbp - 0x10], r8
nop word [rax + rax]
mov eax, dword [0x141dc33a8]
xor edx, edx
div dword [0x141dc33ac]
imul eax, eax, 0x1bd8f054
or eax, 0xffffdfbe
cmp eax, 0x1ffa229f
jb 0x1400466d0
xor r14d, r14d
xor r8d, r8d
mov rsi, rbx
nop dword [rax]
mov eax, dword [0x141dc33b8]
xor edx, edx
div dword [0x141dc33bc]
nop
mov eax, dword [0x141dc33c0]
sub eax, dword [str.__a]
imul rax, r12
shr rax, 0x3f
or eax, 0xc99bb8e4
imul rax, rax, 0x2710c3ed
shr rax, 0x3a
cmp eax, 0x68d0c014
ja 0x140046710
lea rax, [r8 + r10]
cmp rax, 0x28
jae 0x140046a19
inc r8
mov edx, dword [rsi]
add rsi, 4
nop word cs:[rax + rax]
mov r9d, dword [0x141dc33f8]
add r9d, dword [0x141dc33fc]
xor r9d, 0xf047ba66
shr r9d, 1
imul r9, r13
shr r9, 0x3d
imul r9d, r9d, 0x521dc281
cmp r9d, 0x82c707ff
je 0x140046760
mov r9d, dword [rdi + rax*4]
imul rdx, r11
add r14, rdx
add r14, r9
mov dword [rdi + rax*4], r14d
shr r14, 0x20
cmp rsi, qword [rbp - 0x20]
jne 0x140046700
xor edx, edx
mov r9, qword [rbp - 0x18]
mov r8d, 0x9c5b8f51
nop dword [rax]
mov eax, dword [0x141dc33b0]
and eax, dword [0x141dc33b4]
imul rax, r8
shr rax, 0x3f
imul eax, eax, 0xb4b0925b
cmp eax, 0xc3896b48
je 0x1400467c0
mov rax, r9
test r14d, r14d
je 0x1400468aa
lea r8, [r10 + r9]
test dl, dl
jne 0x1400467f1
nop word cs:[rax + rax]
mov eax, dword [0x141dc33c8]
imul eax, dword [0x141dc33cc]
imul eax, eax, 0x43fdf178
or eax, 0x8d626dfa
imul eax, eax, 0x65166d50
cmp eax, 0x29d14e7a
jb 0x140046800
cmp r8, 0x28
jae 0x1400469b1
mov eax, dword [0x141dc33d0]
xor edx, edx
div dword [0x141dc33d4]
nop dword [rax]
mov eax, dword [0x141dc33d8]
imul eax, dword [0x141dc33dc]
cmp eax, 0xf8eba1f8
je 0x140046840
mov eax, dword [0x141dc33e0]
xor eax, dword [0x141dc33e4]
or eax, 0xbe7b3ffe
imul eax, eax, 0x8b18039d
cmp eax, 0xfa89d2ed
jbe 0x140046880
mov dword [rdi + r8*4], r14d
nop word cs:[rax + rax]
mov eax, dword [0x141dc33e8]
sub eax, dword [0x141dc33ec]
add eax, 0x1101f8b2
and eax, 0x6a063357
xor eax, 0xb4ffb0e4
mov dword [rdi + r8*4], r14d
cmp eax, 0xcb1f5e73
jae 0x140046880
mov rax, qword [rbp - 0x28]
add rax, r10
mov rdx, qword [rbp]
cmp rdx, rax
cmovbe rdx, rax
mov qword [rbp], rdx
mov r11, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
jmp 0x14004662f
mov eax, dword [0x141dc3488]
sub eax, dword [0x141dc348c]
add eax, 0xb43c1c9f
mov ecx, 0xc8f8747f
imul rcx, rax
shr rcx, 0x3c
or ecx, 0x4af15429
cmp ecx, 0x4cf395ee
mov r14, qword [rbp]
jbe 0x140046920
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, rbx
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov qword [rbx + 0xa0], r14
nop dword [rax]
mov eax, dword [0x141dc3490]
or eax, dword [0x141dc3494]
imul esi, eax, 0x55c0c5b6
xor esi, 0x72679b9c
sub rsp, 0x20
mov r8d, 0xa0
mov rcx, rbx
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov qword [rbx + 0xa0], r14
cmp esi, 0x177d57ed
jb 0x140046920
mov rax, rbx
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2
ud2
ud2
mov eax, dword [0x141dc3400]
sub eax, dword [0x141dc3404]
add eax, 0xf7af4d13
xor eax, 0xb5ca7c05
add eax, 0x5fbf46b8
cmp eax, 0x30deaa57
jae 0x140046a3d
ud2
xor eax, eax
nop
ud2
mov eax, dword [0x141dc3368]
or eax, dword [0x141dc336c]
and eax, 0xd880e1af
xor eax, 0xb51fee33
add eax, 0x90e87d0b
cmp eax, 0x72fba2ab
jae 0x140046a70
ud2
mov eax, dword [0x141dc3370]
or eax, dword [0x141dc3374]
imul eax, eax, 0xcef8dbc6
ud2
ud2