Function at 0x140043c90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x338
mov rbx, r8
mov r14, rdx
mov r12, rcx
nop dword [rax]
mov eax, dword [0x141dc4c58]
imul eax, dword [0x141dc4c5c]
and eax, 0x2e233c1
imul eax, eax, 0xe04ba4a0
cmp eax, 0x6b76fab5
ja 0x140043cb0
mov eax, dword [0x141dc4c60]
sub eax, dword [0x141dc4c64]
cmp eax, 0xd52f82ba
je 0x140043d37
mov eax, dword [0x141dc4c68]
xor edx, edx
div dword [0x141dc4c6c]
mov r15d, eax
imul rax, r15, 0x2bfa7eff
shr rax, 0x20
sub r15d, eax
shr r15d, 1
add r15d, eax
shr r15d, 0x1d
or r15d, 0xb04244d3
xor r15d, 0x84a3f13f
lea rdi, [rsp + 0x28]
mov r8d, 0x30d
mov rcx, rdi
xor edx, edx
call sub.VCRUNTIME140.dll_memset
cmp r15d, 0x550b0063
jbe 0x140043d4b
lea rcx, [rsp + 0x28]
mov r8d, 0x30d
xor edx, edx
call sub.VCRUNTIME140.dll_memset
jmp 0x140043ce2
lea rcx, [rbx + 1]
lea r8, [r14 - 1]
xor r15d, r15d
nop word cs:[rax + rax]
cmp rcx, 1
je 0x1400447c8
movzx r9d, byte [r8 + 1]
mov eax, dword [0x141dc4c70]
xor edx, edx
div dword [0x141dc4c74]
mov eax, dword [0x141dc4c78]
sub eax, dword [0x141dc4c7c]
and eax, 0x71c02341
imul rax, rax, 0x4cf172a7
shr rax, 0x3b
or eax, 0x3c23a1ec
cmp eax, 0x66ea8289
ja 0x140043d7d
dec rcx
inc r8
cmp r9b, 0x30
je 0x140043d60
xor r9d, r9d
xor r15d, r15d
jmp 0x140043dc9
test rcx, rcx
je 0x140043f36
mov eax, dword [0x141dc4c80]
xor eax, dword [0x141dc4c84]
xor eax, 0xc56abcf1
imul rax, rax, 0x518e4cab
shr rax, 0x3e
cmp eax, 0x72126910
ja 0x140043dc9
movzx edx, byte [r8]
lea eax, [rdx - 0x30]
cmp al, 9
ja 0x140043ee3
nop dword [rax + rax]
mov edx, dword [0x141dc4c88]
add edx, dword [0x141dc4c8c]
xor edx, 0x60058a0
or edx, 0x797ca50e
add edx, 0xe479665a
cmp edx, 0x68ce105e
jb 0x140043e00
dec rcx
inc r8
nop dword [rax]
mov edx, dword [0x141dc4c90]
imul edx, dword [0x141dc4c94]
imul edx, edx, 0x26d8a618
xor edx, 0x2b0aa520
or edx, 0x147448c3
cmp edx, 0x94d26758
jb 0x140043e30
cmp r15, 0x2ff
ja 0x140043ea0
mov byte [rsp + r15 + 0x30], al
nop word cs:[rax + rax]
mov eax, dword [0x141dc4c98]
mov edx, dword [0x141dc4c9c]
add eax, edx
add eax, 0x993ed961
and eax, 0x8b178dd8
add eax, 0x74471857
cmp eax, 0x7c38a987
jb 0x140043e70
mov r10, qword [rsp + 0x28]
test r9b, r9b
je 0x140043eb0
jmp 0x140043ed8
mov r10, r15
test r9b, r9b
jne 0x140043ed8
nop dword [rax + rax]
mov eax, dword [0x141dc4ca0]
xor edx, edx
div dword [0x141dc4ca4]
imul eax, eax, 0x8671b6b8
lea r15, [r10 + 1]
mov qword [rsp + 0x28], r15
cmp eax, 0x344dc9ef
jne 0x140043dc0
lea rax, [r10 + 1]
mov qword [rsp + 0x28], rax
jmp 0x140043eb0
cmp dl, 0x2e
jne 0x14004430d
lea rax, [r8 + 1]
lea r9, [rcx - 1]
mov edx, 0xe8ee63e9
nop dword [rax]
mov r10d, dword [0x141dc4ca8]
and r10d, dword [0x141dc4cac]
add r10d, 0x85231eb7
imul r10, rdx
shr r10, 0x3f
cmp r10d, 0xb6f6a98a
ja 0x140043f00
test r15, r15
je 0x140043f3d
mov rcx, r9
mov r10, rax
jmp 0x140043fc7
xor ecx, ecx
jmp 0x14004430d
add r8, rcx
mov rdx, r9
nop word cs:[rax + rax]
mov r10, rax
mov rcx, rdx
nop word cs:[rax + rax]
mov eax, dword [0x141dc4cb0]
sub eax, dword [0x141dc4cb4]
xor eax, 0x81822014
or eax, 0x6c7c8aaa
add eax, 0xe95d7a31
cmp eax, 0x3de46081
jb 0x140043f60
test rcx, rcx
je 0x140044299
nop dword [rax + rax]
mov eax, dword [0x141dc4cb8]
sub eax, dword [0x141dc4cbc]
imul eax, eax, 0x182ed7bc
imul rax, rax, 0x45e86389
shr rax, 0x3e
xor eax, 0x99cfc0ad
cmp eax, 0x98b658bf
jb 0x140043f90
lea rdx, [rcx - 1]
lea rax, [r10 + 1]
cmp byte [r10], 0x30
je 0x140043f50
xor eax, eax
nop dword [rax]
test al, al
jne 0x140043fd0
mov qword [rsp + 0x20], r12
cmp rcx, 8
jb 0x14004414c
xor r8d, r8d
movabs r11, 0x4646464646464646
movabs r12, 0xcfcfcfcfcfcfcfd0
movabs r13, 0x8080808080808080
nop word cs:[rax + rax]
test r8b, r8b
jne 0x140044010
lea rax, [r15 + 8]
cmp rax, 0x300
jae 0x140044155
mov eax, dword [0x141dc4d08]
sub eax, dword [0x141dc4d0c]
xor eax, 0xb0200100
or eax, 0x861090
and eax, 0xb0a61191
cmp eax, 0xa2beb081
jb 0x140044025
mov rbp, qword [r10]
lea rsi, [r11 + rbp]
add rbp, r12
or rsi, rbp
mov eax, dword [str.8O_m]
xor edx, edx
div dword [0x141dc4d14]
mov eax, dword [0x141dc4d18]
add eax, dword [0x141dc4d1c]
or eax, 0xec7956ac
cmp eax, 0xf11435fc
je 0x140044062
test rsi, r13
jne 0x140044155
mov eax, dword [0x141dc4d20]
xor edx, edx
div dword [0x141dc4d24]
mov eax, dword [0x141dc4d28]
imul eax, dword [0x141dc4d2c]
or eax, 0x5fafdbfb
imul eax, eax, 0xc53638e9
cmp eax, 0x5f477aea
ja 0x140044091
mov eax, dword [0x141dc4d30]
xor eax, dword [0x141dc4d34]
imul eax, eax, 0xf9076b06
add eax, 0x3c7b7864
and eax, 0x2db07b68
cmp eax, 0x41a69421
ja 0x1400440b0
cmp r15, 0x301
jae 0x1400444ee
mov eax, dword [0x141dc4d38]
or eax, dword [0x141dc4d3c]
add eax, 0x9c684de5
or eax, 0x79ffffe6
cmp eax, 0xed37f0e
jb 0x1400440e0
mov qword [rsp + r15 + 0x30], rbp
mov r15, qword [rsp + 0x28]
add r15, 8
mov qword [rsp + 0x28], r15
add rcx, 0xfffffffffffffff8
add r10, 8
nop dword [rax + rax]
mov eax, dword [0x141dc4d40]
and eax, dword [0x141dc4d44]
xor eax, 0x72240f98
add eax, 0x7aff1f08
xor eax, 0xe758d4e8
cmp eax, 0x370d2671
ja 0x140044120
cmp rcx, 7
ja 0x140044010
test rcx, rcx
je 0x14004428d
mov r12, qword [rsp + 0x20]
mov r11d, 0xa0555843
mov r8, r10
jmp 0x140044180
dec rcx
inc r8
inc r15
mov qword [rsp + 0x28], r15
test rcx, rcx
je 0x14004429c
nop dword [rax]
mov eax, dword [0x141dc4cc0]
imul eax, dword [0x141dc4cc4]
add eax, 0x81aa27be
or eax, 0x5f6f27e8
and eax, 0xffef67f8
cmp eax, 0x911d0ec
jb 0x140044180
movzx r10d, byte [r8]
add r10b, 0xd0
cmp r10b, 9
ja 0x14004429e
cmp r15, 0x2ff
ja 0x140044165
mov eax, dword [0x141dc4cc8]
xor edx, edx
div dword [0x141dc4ccc]
mov eax, dword [0x141dc4cd0]
xor edx, edx
div dword [0x141dc4cd4]
imul eax, eax, 0x9a996ca0
and eax, 0x430258a0
cmp eax, 0xa2a8c473
ja 0x1400441cc
mov eax, dword [0x141dc4cd8]
xor eax, dword [0x141dc4cdc]
imul rax, rax, 0x35d3a7e3
shr rax, 0x3d
xor eax, 0xc44d850f
imul eax, eax, 0xef8e654c
cmp eax, 0xfb500daf
jbe 0x140044220
mov byte [rsp + r15 + 0x30], r10b
nop word [rax + rax]
mov eax, dword [0x141dc4ce0]
mov edx, dword [0x141dc4ce4]
add eax, edx
add eax, 0x62e5adc0
or eax, 0xb72f2a28
mov byte [rsp + r15 + 0x30], r10b
cmp eax, 0x7098b175
jb 0x140044220
mov eax, dword [0x141dc4ce8]
xor edx, edx
div dword [0x141dc4cec]
mov eax, dword [0x141dc4cf0]
xor eax, dword [0x141dc4cf4]
mov rdx, rax
imul rdx, r11
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1c
or eax, 0x9f61ea59
add eax, 0xd23e9d93
mov r15, qword [rsp + 0x28]
cmp eax, 0x83b53adf
ja 0x140044252
jmp 0x140044165
xor ecx, ecx
mov r8, r10
mov r12, qword [rsp + 0x20]
jmp 0x14004429e
xor r15d, r15d
xor ecx, ecx
mov eax, dword [0x141dc4cf8]
imul eax, dword [0x141dc4cfc]
xor eax, 0xb8f3c212
add eax, 0x8c914b82
or eax, 0x1fdecb2a
cmp eax, 0xc1b0206d
jne 0x1400442d0
mov eax, ecx
sub eax, r9d
mov dword [rsp + 0x330], eax
nop dword [rax]
mov eax, dword [0x141dc4d00]
add eax, dword [0x141dc4d04]
or eax, 0x68d0efcd
imul rdx, rax, 0x42a6fe3f
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1d
xor eax, 0xecf8d903
mov edx, ecx
sub edx, r9d
mov dword [rsp + 0x330], edx
cmp eax, 0x160182c9
jbe 0x1400442d0
test r15, r15
je 0x1400444ba
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d48]
sub eax, dword [0x141dc4d4c]
or eax, 0xfed0858a
add eax, 0x931cb9ea
shr eax, 1
imul rax, rax, 0x42fd795d
shr rax, 0x3c
cmp eax, 0xc32b9ba7
ja 0x140044320
cmp rbx, rcx
jb 0x1400444bf
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d60]
add eax, dword [0x141dc4d64]
or eax, 0xfe2efea6
imul eax, eax, 0x765ba46f
cmp eax, 0x2e108f9c
jb 0x140044360
sub rbx, rcx
jne 0x1400443e0
xor eax, eax
mov edx, dword [rsp + 0x330]
add edx, eax
sub r15, rax
mov qword [rsp + 0x28], r15
lea eax, [r15 + rdx]
mov dword [rsp + 0x330], eax
cmp r15, 0x300
jbe 0x1400444f0
mov eax, dword [0x141dc4d90]
xor edx, edx
div dword [0x141dc4d94]
or eax, 0x7560f9e6
add eax, 0xa2cff7fb
or eax, 0x8de427bf
cmp eax, 0x62cf261d
jae 0x1400448a7
jmp 0x1400448c9
mov eax, dword [0x141dc4d68]
xor edx, edx
div dword [0x141dc4d6c]
imul rdx, rax, 0x5d77be1d
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1b
add eax, 0x8e2898f
or eax, 0x9a0886e4
cmp eax, 0x742af404
jb 0x1400443e0
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d70]
and eax, dword [0x141dc4d74]
add eax, 0x6d102750
and eax, 0xe5b53d10
xor eax, 0x31c062ed
cmp eax, 0x6c36fb3c
ja 0x140044420
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d78]
imul eax, dword [0x141dc4d7c]
cmp eax, 0x22be2a44
je 0x140044450
xor eax, eax
mov edx, 0x8fb1cf3b
jmp 0x140044479
dec rbx
je 0x140044385
mov r9d, dword [0x141dc4d88]
or r9d, dword [0x141dc4d8c]
xor r9d, 0xb8a04fea
imul r9, rdx
shr r9, 0x3d
cmp r9d, 0xd3923a66
ja 0x140044479
movzx r9d, byte [r14 + rbx - 1]
cmp r9d, 0x2e
je 0x140044470
cmp r9d, 0x30
jne 0x140044385
inc rax
jmp 0x140044470
xor r15d, r15d
jmp 0x1400444f0
ud2
ud2
mov eax, dword [0x141dc4d50]
xor edx, edx
div dword [0x141dc4d54]
lea r9, [r8 + 1]
lea r10, [rcx - 1]
nop word cs:[rax + rax]
mov eax, dword [0x141dc4d58]
xor eax, dword [0x141dc4d5c]
and eax, 0xe37531ae
imul eax, eax, 0xeece6f75
add eax, 0x20d59469
cmp eax, 0x8e150aee
jb 0x140044510
test rcx, rcx
je 0x140044780
nop dword [rax]
mov eax, dword [0x141dc4da0]
and eax, dword [0x141dc4da4]
shr eax, 4
imul rax, rax, 0xb74902b
shr rax, 0x34
cmp eax, 0x7a1f22e6
je 0x140044540
movzx eax, byte [r8]
nop word cs:[rax + rax]
mov edx, dword [0x141dc4da8]
xor edx, dword [0x141dc4dac]
or edx, 0xe42f1794
cmp edx, 0x5d08c88f
je 0x140044570
or eax, 0x20
cmp eax, 0x65
jne 0x140044780
add r8, 2
nop word [rax + rax]
mov eax, dword [0x141dc4dc8]
xor edx, edx
div dword [0x141dc4dcc]
and eax, 0x13c0d011
add eax, 0x55029d0e
cmp eax, 0xce8e7e62
ja 0x1400445a0
add rcx, 0xfffffffffffffffe
nop word cs:[rax + rax]
mov eax, dword [0x141dc4dd0]
xor edx, edx
div dword [0x141dc4dd4]
or eax, 0xac8836be
and eax, 0xed8a3efe
cmp eax, 0xc42f94d2
je 0x1400445d0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140044600
test r10, r10
je 0x140044702
nop dword [rax]
mov eax, dword [0x141dc4dd8]
sub eax, dword [0x141dc4ddc]
shr eax, 2
imul rax, rax, 0x4bd4ba3
shr rax, 0x38
or eax, 0x7c6fe3ce
cmp eax, 0x8e999120
ja 0x140044610
movzx r11d, byte [r9]
mov eax, dword [0x141dc4de0]
xor edx, edx
div dword [0x141dc4de4]
nop dword [rax + rax]
mov eax, dword [0x141dc4de8]
or eax, dword [0x141dc4dec]
and eax, 0xf565b457
add eax, 0x4a9d1c5
cmp eax, 0xb1be5e85
jb 0x140044650
cmp r11d, 0x2d
je 0x140044679
cmp r11d, 0x2b
jne 0x14004468f
xor eax, eax
nop dword [rax + rax]
test al, al
jne 0x140044680
mov r9, r8
mov r10, rcx
test rcx, rcx
je 0x140044706
mov eax, 0xea07c4f5
nop word cs:[rax + rax]
mov ecx, dword [0x141dc4df0]
xor ecx, dword [0x141dc4df4]
and ecx, 0xc6a47c9f
imul rcx, rax
shr rcx, 0x3d
add ecx, 0x4351f01b
cmp ecx, 0x20dbdf5b
jb 0x1400446a0
xor eax, eax
xor ecx, ecx
xor edx, edx
nop
movzx r8d, byte [r9 + rax]
add r8b, 0xd0
cmp r8b, 9
ja 0x140044708
cmp edx, 0x10000
lea esi, [rdx + rdx*4]
movzx r8d, r8b
lea r8d, [r8 + rsi*2]
cmovl ecx, r8d
cmovl edx, r8d
inc rax
cmp r10, rax
jne 0x1400446d0
jmp 0x140044708
xor eax, eax
jmp 0x140044713
xor ecx, ecx
mov eax, ecx
neg eax
cmp r11d, 0x2d
cmovne eax, ecx
mov ecx, dword [0x141dc4df8]
or ecx, dword [0x141dc4dfc]
xor ecx, 0xebca5d9b
imul ecx, ecx, 0xa7ebb66d
xor ecx, 0x9e54b281
cmp ecx, 0x5fd215ce
jae 0x140044740
add dword [rsp + 0x330], eax
mov ecx, 0x879ca987
nop word cs:[rax + rax]
mov edx, dword [0x141dc4e00]
imul edx, dword [0x141dc4e04]
add edx, 0xf40d5fdb
imul rdx, rcx
shr rdx, 0x3f
add edx, 0x71767a75
add dword [rsp + 0x330], eax
cmp edx, 0xe9e7cc6e
ja 0x140044750
mov eax, dword [0x141dc4db0]
and eax, dword [0x141dc4db4]
add eax, 0xa2b889da
or eax, 0xd1c8cc84
cmp eax, 0x38b776d5
je 0x140044780
nop dword [rax]
mov eax, dword [0x141dc4db8]
or eax, dword [0x141dc4dbc]
xor eax, 0x1ad47ee1
add eax, 0x36ab936a
and eax, 0x234f8383
cmp eax, 0xb0c9886f
ja 0x1400447a0
cmp r15, 0x12
ja 0x14004482d
xor eax, eax
test al, al
je 0x1400447e6
lea rcx, [r15 + rdi]
add rcx, 8
mov r8d, 0x13
sub r8, r15
xor edx, edx
call sub.VCRUNTIME140.dll_memset
add rdi, r15
add rdi, 8
mov ebx, 0x13
sub rbx, r15
nop word cs:[rax + rax]
mov esi, dword [0x141dc4dc0]
sub esi, dword [0x141dc4dc4]
and esi, 0x81000818
add esi, 0x27622c8a
mov rcx, rdi
xor edx, edx
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
cmp esi, 0xab2009ee
ja 0x140044800
lea rdx, [rsp + 0x28]
mov r8d, 0x310
mov rcx, r12
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [0x141dc4e08]
or eax, dword [0x141dc4e0c]
or eax, 0x4840002a
and eax, 0x4950586a
add eax, 0x1e086ad1
cmp eax, 0x86e51d52
ja 0x140044840
nop word cs:[rax + rax]
mov eax, dword [0x141dc4e10]
and eax, dword [0x141dc4e14]
imul eax, eax, 0xb87ae7da
add eax, 0xcd4075a0
xor eax, 0x2e7746d0
cmp eax, 0x9db301f2
ja 0x140044870
add rsp, 0x338
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dc4d98]
xor edx, edx
div dword [0x141dc4d9c]
add eax, 0xd5ae4fce
mov byte [rsp + 0x334], 1
cmp eax, 0x1cb57023
jae 0x1400448d3
mov byte [rsp + 0x334], 1
jmp 0x1400448a7
mov qword [rsp + 0x28], 0x300
mov r15d, 0x300
jmp 0x1400444f0