Function at 0x14003d320
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov r14, r9
mov r15, r8
mov r12, rdx
mov rdi, rcx
mov eax, dword [0x141dc4640]
or eax, dword [0x141dc4644]
imul eax, eax, 0x7c5397c7
cmp eax, 0x6eb73781
je 0x14003d3a8
mov eax, dword [0x141dc4648]
mov ecx, dword [0x141dc464c]
add eax, ecx
add eax, 0x422af1df
mov ecx, 0x878dd31f
imul rcx, rax
shr rcx, 0x3e
imul ecx, ecx, 0xab7bfad8
mov eax, 0x40
call fcn.1400eeec0
sub rsp, rax
mov rdx, rsp
mov eax, 0x80
call fcn.1400eeec0
sub rsp, rax
mov rsi, rsp
cmp ecx, 0xaabaf6b9
jne 0x14003d3c4
mov eax, 0x40
call fcn.1400eeec0
sub rsp, rax
mov eax, 0x80
call fcn.1400eeec0
sub rsp, rax
jmp 0x14003d35a
mov qword [rbp - 0x30], rdx
mov eax, 0x50
call fcn.1400eeec0
sub rsp, rax
mov rbx, rsp
mov eax, 0xe0
call fcn.1400eeec0
sub rsp, rax
mov r13, rsp
mov rax, qword [0x141dda6a8]
test rax, rax
je 0x14003d489
and eax, 0x8000
xor edx, edx
nop
mov ecx, dword [0x141dc4658]
xor ecx, dword [0x141dc465c]
or ecx, 0x4c0a8409
and ecx, 0x4f2bb41f
add ecx, 0xd54dd3b9
cmp ecx, 0x7a2a8670
ja 0x14003d400
mov ecx, 0xaf2df59d
nop dword [rax + rax]
mov r8d, dword [0x141dc4660]
xor r8d, dword [0x141dc4664]
or r8d, 0x60b73d20
add r8d, 0x8aa92de
imul r8, rcx
shr r8, 0x3e
cmp r8d, 0xab988841
ja 0x14003d430
mov cl, 2
or rax, rdx
jne 0x14003d596
mov eax, dword [0x141dc4668]
imul eax, dword [0x141dc466c]
imul eax, eax, 0x1bd57890
or eax, 0xf5fd4fee
cmp eax, 0x3ca15e7e
jae 0x14003d4cb
jmp 0x14003d4f9
sub rsp, 0x20
call fcn.1400fba70
add rsp, 0x20
and eax, 0x8000
xor edx, edx
nop dword [rax]
mov ecx, dword [0x141dc4650]
add ecx, dword [0x141dc4654]
and ecx, 0x8fa02f4a
imul ecx, ecx, 0x2f0e6ca
add ecx, 0x7d991c48
cmp ecx, 0x6cfc7ef4
jb 0x14003d4a0
jmp 0x14003d426
mov eax, dword [0x141dc4670]
or eax, dword [0x141dc4674]
mov ecx, 0x83e6c9f3
imul rcx, rax
shr rcx, 0x3e
or ecx, 0xabb76ee8
mov rax, qword [0x141dda6a8]
cmp ecx, 0xcf2ec830
jne 0x14003d510
mov rax, qword [0x141dda6a8]
jmp 0x14003d4cb
mov ecx, dword [0x141dc4678]
and ecx, dword [0x141dc467c]
imul ecx, ecx, 0x35cfba88
or ecx, 0xb3b61ac7
cmp ecx, 0x832395cc
je 0x14003d510
test rax, rax
je 0x14003e005
nop dword [rax]
mov ecx, dword [0x141dc4680]
xor ecx, dword [0x141dc4684]
add ecx, 0xadefb907
cmp ecx, 0xb614b66d
jb 0x14003d540
and eax, 0x400
xor ecx, ecx
nop word cs:[rax + rax]
mov edx, dword [0x141dc4688]
sub edx, dword [0x141dc468c]
imul edx, edx, 0xa007054c
add edx, 0xb36d1a42
cmp edx, 0xe47f86ab
ja 0x14003d570
or rax, rcx
setne cl
lea rax, [r12 - 1]
nop dword [rax + rax]
mov edx, dword [0x141dc4690]
add edx, dword [0x141dc4694]
xor edx, 0x20004005
and edx, 0xb261709f
cmp edx, 0xe6bdf3b6
ja 0x14003d5a0
cmp rax, 0x40
jae 0x14003df5f
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x28], rdi
movabs rax, 0xbb67ae8584caa73b
movabs rdx, 0xa54ff53a5f1d36f1
movabs r8, 0x9b05688c2b3e6c1f
movabs r9, 0x6a09e667f2bdc908
movabs r10, 0x510e527fade682d1
mov edi, dword [0x141dc46a0]
and edi, dword [0x141dc46a4]
movabs r11, 0x3c6ef372fe94f82b
imul edi, edi, 0xe00ec2f1
add edi, 0x5be943bf
cmp edi, 0x9fb57767
jbe 0x14003d6a9
movzx edi, r12b
xorps xmm0, xmm0
movaps xmmword [rsi + 0x70], xmm0
movaps xmmword [rsi + 0x60], xmm0
movaps xmmword [rsi + 0x50], xmm0
movaps xmmword [rsi + 0x40], xmm0
movaps xmmword [rsi + 0x30], xmm0
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
xor rdi, r9
movaps xmmword [r13 + 0x70], xmm0
movaps xmmword [r13 + 0x60], xmm0
movaps xmmword [r13 + 0x50], xmm0
movaps xmmword [r13 + 0x40], xmm0
movaps xmmword [r13 + 0x30], xmm0
movaps xmmword [r13 + 0x20], xmm0
movaps xmmword [r13 + 0x10], xmm0
movaps xmmword [r13], xmm0
mov qword [r13 + 0x80], rdi
mov qword [r13 + 0x88], rax
mov qword [r13 + 0x90], r11
mov qword [r13 + 0x98], rdx
mov qword [r13 + 0xa0], r10
mov qword [r13 + 0xa8], r8
lea rdi, [r13 + 0x80]
mov qword [rbp], rdi
xorps xmm0, xmm0
nop word [rax + rax]
mov edi, dword [0x141dc46a8]
and edi, dword [0x141dc46ac]
xor edi, 0xc8080a09
and edi, 0xdc9fbb09
movzx ebx, r12b
xor rbx, r9
movaps xmmword [rsi + 0x70], xmm0
movaps xmmword [rsi + 0x60], xmm0
movaps xmmword [rsi + 0x50], xmm0
movaps xmmword [rsi + 0x40], xmm0
movaps xmmword [rsi + 0x30], xmm0
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
movaps xmmword [r13 + 0x70], xmm0
movaps xmmword [r13 + 0x60], xmm0
movaps xmmword [r13 + 0x50], xmm0
movaps xmmword [r13 + 0x40], xmm0
movaps xmmword [r13 + 0x30], xmm0
movaps xmmword [r13 + 0x20], xmm0
movaps xmmword [r13 + 0x10], xmm0
movaps xmmword [r13], xmm0
mov qword [r13 + 0x80], rbx
mov qword [r13 + 0x88], rax
mov qword [r13 + 0x90], r11
mov qword [r13 + 0x98], rdx
mov qword [r13 + 0xa0], r10
mov qword [r13 + 0xa8], r8
cmp edi, 0x1fee8d65
je 0x14003d6c0
movabs rax, 0x1f83d9abfb41bd6b
mov qword [r13 + 0xb0], rax
movabs rax, 0x5be0cd19137e2179
mov qword [r13 + 0xb8], rax
xorps xmm0, xmm0
movaps xmmword [r13 + 0xc0], xmm0
mov byte [r13 + 0xd0], 0
mov byte [r13 + 0xd1], r12b
mov byte [r13 + 0xd2], cl
mov word [r13 + 0xd3], 1
shl r14, 4
add r14, r15
mov qword [rbp - 0x38], r14
xor r14d, r14d
xor esi, esi
mov qword [rbp - 8], r12
nop dword [rax]
mov rbx, qword [r15]
mov rdx, qword [r15 + 8]
test sil, sil
mov qword [rbp - 0x10], r15
je 0x14003d950
movzx edi, sil
mov r15d, 0x80
sub r15, rdi
cmp r15, rdx
mov rsi, rdx
cmovb rsi, r15
lea rax, [rsi + rdi]
mov ecx, dword [0x141dc46e0]
sub ecx, dword [0x141dc46e4]
imul ecx, ecx, 0x2dfd3464
xor ecx, 0x80029002
or ecx, 0x77d907fd
cmp ecx, 0xa5b27aa6
je 0x14003d7ef
nop word cs:[rax + rax]
test r14b, r14b
jne 0x14003d820
cmp rax, rdi
jb 0x14003e069
cmp rax, 0x80
ja 0x14003e069
mov r12, rdx
test r14b, r14b
je 0x14003d860
lea rcx, [rdi + r13]
sub rsp, 0x20
mov rdx, rbx
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
nop dword [rax]
mov r14d, dword [0x141dc46e8]
imul r14d, dword [0x141dc46ec]
add r14d, 0x39150e7c
or r14d, 0xdc55ff32
lea rcx, [rdi + r13]
sub rsp, 0x20
mov rdx, rbx
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
cmp r14d, 0xb18e9634
je 0x14003d860
xor r14d, r14d
test r14b, r14b
je 0x14003d8b0
add byte [r13 + 0xd0], sil
nop dword [rax]
mov eax, dword [0x141dc46f0]
or eax, dword [0x141dc46f4]
imul ecx, eax, 0x1a691bd5
movzx eax, byte [r13 + 0xd0]
add al, sil
mov byte [r13 + 0xd0], al
cmp ecx, 0xc9e30ec8
je 0x14003d8b0
mov ecx, dword [0x141dc46f8]
xor ecx, dword [0x141dc46fc]
add ecx, 0xab614949
xor ecx, 0x8818aa66
imul rdx, rcx, 0x32f63b6d
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1e
cmp ecx, 0x6d96fe2
je 0x14003d8dc
mov rdi, r12
sub rdi, rsi
add rbx, rsi
cmp r15, r12
jae 0x14003d960
mov eax, dword [0x141dc4700]
xor eax, dword [0x141dc4704]
add eax, 0x944e25d8
or eax, 0x2b5a87a5
cmp eax, 0xadb3b2b1
mov r15, qword [rbp - 0x10]
mov r14, qword [rbp]
jne 0x14003d970
jmp 0x14003da30
xor eax, eax
jmp 0x14003dac0
mov rdx, rdi
mov r15, qword [rbp - 0x10]
mov r12, qword [rbp - 8]
jmp 0x14003dac0
mov eax, dword [0x141dc4708]
and eax, dword [0x141dc470c]
imul eax, eax, 0xd9d3cede
xor eax, 0xdae92134
imul esi, eax, 0x100dc767
movaps xmm0, xmmword [r13 + 0xc0]
movzx eax, byte [r13 + 0xd3]
movzx ecx, byte [r13 + 0xd2]
sub rsp, 0x40
mov byte [rsp + 0x30], al
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x38], 1
mov r8d, 0x80
mov rdx, r13
mov r9, r14
call fcn.14003f930
add rsp, 0x40
cmp esi, 0x342a66fe
jb 0x14003da30
mov rax, qword [r13 + 0xc8]
mov rcx, qword [r13 + 0xc0]
mov edx, 0x80
add rcx, rdx
adc rax, 0
mov edx, dword [0x141dc4710]
sub edx, dword [0x141dc4714]
imul edx, edx, 0xb97186d3
and edx, 0x406a8a01
add edx, 0xf9c36de8
cmp edx, 0x80196871
mov r12, qword [rbp - 8]
mov r14d, 0
jae 0x14003da80
jmp 0x14003dba0
movaps xmm0, xmmword [r13 + 0xc0]
movzx eax, byte [r13 + 0xd3]
movzx ecx, byte [r13 + 0xd2]
sub rsp, 0x40
mov byte [rsp + 0x30], al
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x38], 1
mov r8d, 0x80
mov rdx, r13
mov r9, r14
call fcn.14003f930
add rsp, 0x40
jmp 0x14003d970
mov edx, dword [0x141dc4718]
imul edx, dword [0x141dc471c]
add edx, 0xf836fc59
and edx, 0x2ecb00a
mov qword [r13 + 0xc8], rax
mov qword [r13 + 0xc0], rcx
mov byte [r13 + 0xd0], 0
cmp edx, 0xc7a43580
ja 0x14003dba0
xor eax, eax
mov rdx, rdi
mov rcx, rdx
sub rcx, 1
mov esi, 0
cmovae rsi, rcx
and rsi, 0xffffffffffffff80
je 0x14003dbc0
mov eax, dword [0x141dc4720]
and eax, dword [0x141dc4724]
xor eax, 0x6fd9f212
add eax, 0xc61a7ef2
and eax, 0x8846a7de
cmp eax, 0xe40beed7
je 0x14003dada
nop dword [rax]
mov eax, dword [0x141dc4728]
and eax, dword [0x141dc472c]
or eax, 0xed713d67
xor eax, 0x5ba605f4
imul eax, eax, 0x21ff4678
cmp eax, 0x5164534a
je 0x14003db00
sub rdx, rsi
jb 0x14003dfc2
mov qword [rbp - 0x40], rdx
mov eax, dword [0x141dc4750]
xor eax, dword [0x141dc4754]
add eax, 0xa97470f8
or eax, 0x770f3342
imul eax, eax, 0xcdb77686
cmp eax, 0x671d01e2
jb 0x14003db30
mov rax, qword [r13 + 0xc0]
mov qword [rbp - 0x18], rax
mov r15, qword [r13 + 0xc8]
mov eax, dword [0x141dc4758]
sub eax, dword [0x141dc475c]
movzx r14d, byte [r13 + 0xd3]
xor eax, 0x5faa9201
imul eax, eax, 0x304ece7c
cmp eax, 0x386cdb98
mov rdi, qword [rbp]
jne 0x14003dcc0
jmp 0x14003ddb0
mov qword [r13 + 0xc0], rcx
mov qword [r13 + 0xc8], rax
mov byte [r13 + 0xd0], 0
jmp 0x14003da80
movzx ecx, al
mov esi, 0x80
sub rsi, rcx
cmp rsi, rdx
cmovae rsi, rdx
mov rax, rsi
add rax, rcx
jb 0x14003e01e
add r15, 0x10
nop word cs:[rax + rax]
mov edx, dword [0x141dc4730]
and edx, dword [0x141dc4734]
imul edx, edx, 0x181d60f3
add edx, 0xcba9ea08
or edx, 0xcfc6b855
cmp edx, 0x6ae9e90e
jb 0x14003dbf0
cmp rax, 0x80
ja 0x14003e069
mov eax, dword [0x141dc4778]
xor edx, edx
div dword [0x141dc477c]
mov eax, dword [0x141dc4780]
xor eax, dword [0x141dc4784]
add eax, 0x505bd4d
shr eax, 2
imul rax, rax, 0x423aba33
shr rax, 0x3b
xor eax, 0xdc6ca901
cmp eax, 0x60684b02
jb 0x14003dc30
add rcx, r13
sub rsp, 0x20
mov rdx, rbx
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
add sil, byte [r13 + 0xd0]
mov byte [r13 + 0xd0], sil
nop
mov eax, dword [0x141dc4788]
or eax, dword [0x141dc478c]
and eax, 0xe99845e1
add eax, 0xea54ed7b
imul rax, rax, 0xf734d49
shr rax, 0x3a
cmp eax, 0xeca3d9ad
ja 0x14003dc80
cmp r15, qword [rbp - 0x38]
jne 0x14003d7c0
jmp 0x14003ddeb
mov eax, dword [0x141dc4760]
or eax, dword [0x141dc4764]
imul r12d, eax, 0x94046d10
mov eax, 0x95968037
imul r12, rax
shr r12, 0x3d
and r12d, 0xfffffffc
movzx ecx, byte [r13 + 0xd2]
sub rsp, 0x40
mov byte [rsp + 0x30], r14b
mov qword [rsp + 0x28], r15
mov rax, qword [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x38], 1
mov rdx, rbx
mov r8, rsi
mov r9, rdi
call fcn.14003f930
add rsp, 0x40
cmp r12d, 0xdc5bcf7c
je 0x14003ddb0
mov eax, dword [0x141dc4768]
xor edx, edx
div dword [0x141dc476c]
imul eax, eax, 0x5e978a2a
cmp eax, 0x4261381
jne 0x14003dd51
add qword [r13 + 0xc0], rsi
adc qword [r13 + 0xc8], 0
mov r12, qword [rbp - 8]
mov r15, qword [rbp - 0x10]
xor r14d, r14d
mov rdx, qword [rbp - 0x40]
mov eax, dword [0x141dc4770]
xor eax, dword [0x141dc4774]
imul rax, rax, 0x272b279
shr rax, 0x38
xor eax, 0xa73e92eb
imul eax, eax, 0x567f27eb
add qword [r13 + 0xc0], rsi
adc qword [r13 + 0xc8], 0
cmp eax, 0xd2bc2400
je 0x14003dd60
add rbx, rsi
movzx eax, byte [r13 + 0xd0]
jmp 0x14003dbc0
movzx ecx, byte [r13 + 0xd2]
sub rsp, 0x40
mov byte [rsp + 0x30], r14b
mov qword [rsp + 0x28], r15
mov rax, qword [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov byte [rsp + 0x38], 1
mov rdx, rbx
mov r8, rsi
mov r9, rdi
call fcn.14003f930
add rsp, 0x40
jmp 0x14003dcc0
mov rax, qword [rbp]
movaps xmm0, xmmword [rax]
movaps xmm1, xmmword [rax + 0x10]
movaps xmm2, xmmword [rax + 0x20]
movaps xmm3, xmmword [rax + 0x30]
mov rdi, qword [rbp - 0x30]
movaps xmmword [rdi + 0x30], xmm3
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
cmp sil, 0x81
jae 0x14003e069
movzx r8d, sil
movaps xmm0, xmmword [r13 + 0xc0]
movzx eax, byte [r13 + 0xd3]
movzx ecx, byte [r13 + 0xd2]
sub rsp, 0x40
mov byte [rsp + 0x30], al
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x38], 0
mov rdx, r13
mov r9, rdi
call fcn.14003f930
add rsp, 0x40
movzx r8d, byte [r13 + 0xd1]
movaps xmm0, xmmword [rdi]
mov r9, qword [rbp - 0x20]
movaps xmmword [r9], xmm0
movaps xmm0, xmmword [rdi + 0x10]
movaps xmmword [r9 + 0x10], xmm0
movaps xmm0, xmmword [rdi + 0x20]
movaps xmmword [r9 + 0x20], xmm0
movaps xmm0, xmmword [rdi + 0x30]
movaps xmmword [r9 + 0x30], xmm0
mov byte [r9 + 0x40], r8b
mov rcx, qword [rbp - 0x28]
nop
mov eax, dword [0x141dc46b0]
or eax, dword [0x141dc46b4]
imul eax, eax, 0xbc7e8728
and eax, 0x3de7df80
cmp eax, 0xc67f6abe
je 0x14003de90
cmp r8b, 0x41
jae 0x14003e049
mov eax, dword [0x141dc46c0]
xor edx, edx
div dword [0x141dc46c4]
nop word cs:[rax + rax]
mov eax, dword [0x141dc46c8]
and eax, dword [0x141dc46cc]
imul eax, eax, 0x84fc1b76
imul rax, rax, 0x2be69813
shr rax, 0x3a
add eax, 0x811283a4
cmp eax, 0x10be3c68
jb 0x14003ded0
cmp r8, r12
jne 0x14003df99
sub rsp, 0x20
mov rdx, r9
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
xor eax, eax
nop word [rax + rax]
test al, al
jne 0x14003df20
nop word cs:[rax + rax]
mov eax, dword [0x141dc46d8]
xor eax, dword [0x141dc46dc]
imul eax, eax, 0x75f20e00
and eax, 0x119c9200
cmp eax, 0xda7b1e23
je 0x14003df30
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2
ud2
ud2
sub rsp, 0x20
call fcn.1400fba70
add rsp, 0x20
and eax, 0x400
xor ecx, ecx
jmp 0x14003d590
mov eax, dword [str.mWdf]
or eax, dword [0x141dc473c]
xor eax, 0x53cd7150
imul rax, rax, 0x5fbff02d
shr rax, 0x3d
imul eax, eax, 0x42d3c4d9
cmp eax, 0xcc3a4c28
jbe 0x14003e077
jmp 0x14003e092
mov eax, dword [0x141dc46b8]
or eax, dword [0x141dc46bc]
imul eax, eax, 0xb751279d
add eax, 0xbe1a0a47
cmp eax, 0x2745708f
jbe 0x14003e06b
jmp 0x14003e073
ud2
ud2
ud2
mov eax, dword [0x141dc4740]
sub eax, dword [0x141dc4744]
imul eax, eax, 0xcb3608bc
ud2
ud2