Function at 0x140053980
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
push rax
mov r9, rdx
xor eax, eax
nop word cs:[rax + rax]
mov edx, dword [0x141dc4ee0]
or edx, dword [0x141dc4ee4]
add edx, 0x4eaa4ce4
and edx, 0x3200031
mov r11, r8
sub r11, 0xf
cmovb r11, rax
cmp edx, 0x6350e61d
ja 0x1400539a0
test r8, r8
je 0x1400541c7
lea rsi, [r9 + 7]
and rsi, 0xfffffffffffffff8
sub rsi, r9
xor edi, edi
lea rbp, [0x141db67d8]
mov r15d, 0x9225ba5d
movabs r12, 0x8080808080808080
mov r13d, 0xc32f1975
xor r10d, r10d
jmp 0x140053a10
inc r10
cmp r10, r8
jae 0x1400541c7
nop
mov eax, dword [0x141dc4ee8]
xor eax, dword [0x141dc4eec]
imul eax, eax, 0xb97592b6
add eax, 0x8ecb9830
imul rax, rax, 0x348d43f3
shr rax, 0x3d
cmp eax, 0xd01749da
je 0x140053a10
movzx eax, byte [r9 + r10]
test al, al
js 0x140053bd8
mov eax, dword [0x141dc4ef0]
and eax, dword [0x141dc4ef4]
imul eax, eax, 0x52cefaa2
add eax, 0xb3ba5db2
cmp eax, 0x434d63d2
jb 0x140053a46
mov r14, rsi
sub r14, r10
nop word [rax + rax]
mov eax, dword [0x141dc4ef8]
xor eax, dword [0x141dc4efc]
or eax, 0x703d92f3
imul eax, eax, 0xf061dee3
cmp eax, 0xa6286076
je 0x140053a70
nop
mov eax, dword [0x141dc4f00]
xor edx, edx
div dword [0x141dc4f04]
imul eax, eax, 0x9a706462
or eax, 0xd306a886
imul rax, rax, 0x38310669
shr rax, 0x3d
cmp eax, 0x5609faa0
je 0x140053a90
test r14b, 7
jne 0x140053a03
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f08]
add eax, dword [0x141dc4f0c]
or eax, 0x4024040
and eax, 0x159258c0
add eax, 0x7d2fd6a6
cmp eax, 0x5074dae0
jb 0x140053ad0
jmp 0x140053b48
mov eax, dword [0x141dc4f10]
add eax, dword [0x141dc4f14]
or eax, 0xff750555
imul rax, r13
shr rax, 0x3f
cmp eax, 0x3ab86302
je 0x140053b00
add r10, 0x10
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f18]
sub eax, dword [0x141dc4f1c]
or eax, 0x9ab9ca7f
cmp eax, 0x6052f3a5
je 0x140053b30
cmp r10, r11
jae 0x140053b5b
mov rax, qword [r9 + r10 + 8]
or rax, qword [r9 + r10]
test rax, r12
je 0x140053b00
cmp r10, r8
jae 0x140053a06
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f20]
and eax, dword [0x141dc4f24]
imul eax, eax, 0x3c1b255f
or eax, 0x6eb65c78
imul eax, eax, 0xd23316d6
cmp eax, 0x46bb3ef7
ja 0x140053b70
cmp byte [r9 + r10], 0
js 0x140053a06
inc r10
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f28]
xor eax, dword [0x141dc4f2c]
imul eax, eax, 0x4d45ba8e
xor eax, 0xf4e1d5d0
cmp eax, 0x576bd2be
jb 0x140053bb0
cmp r10, r8
jne 0x140053b70
jmp 0x1400541c7
movzx edx, byte [rax + rbp]
cmp edx, 4
je 0x140053db2
cmp edx, 3
je 0x140053ca0
mov al, 1
mov dword [rsp + 4], eax
cmp edx, 2
jne 0x14005423f
lea r14, [r10 + 1]
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f30]
xor eax, dword [0x141dc4f34]
imul eax, eax, 0xbdc803ab
imul rax, rax, 0x373ec255
shr rax, 0x3d
imul eax, eax, 0x68f8bdb1
cmp eax, 0x4d36ad0b
je 0x140053c10
cmp r14, r8
jae 0x140054235
mov eax, dword [0x141dc4f50]
xor eax, dword [0x141dc4f54]
imul rdx, rax, 0x3d3f1f2f
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1a
or eax, 0xdf1891cc
add eax, 0x1715792e
cmp eax, 0x7b9f5ade
jb 0x140053c43
movzx edx, byte [r9 + r14]
nop dword [rax]
test dil, dil
jne 0x140053c80
mov al, 1
cmp dl, 0xbf
jle 0x1400541a0
jmp 0x140054249
mov edx, dword [0x141dc4f38]
add edx, dword [0x141dc4f3c]
or edx, 0x18e32353
and edx, 0x98ff275b
cmp edx, 0xf6688a0
je 0x140053ca0
lea rdx, [r10 + 1]
mov ebx, dword [0x141dc4f40]
sub ebx, dword [0x141dc4f44]
or ebx, 0x8cab8db2
xor ebx, 0x825e2de6
imul ebx, ebx, 0x48166f3c
cmp ebx, 0xe925176e
ja 0x140053cc4
cmp rdx, r8
jae 0x140054235
mov bl, 1
mov dword [rsp + 4], ebx
nop dword [rax]
mov ebx, dword [0x141dc4f60]
xor ebx, dword [0x141dc4f64]
imul rbx, rbx, 0x3729a7f5
shr rbx, 0x3c
imul ebx, ebx, 0x8feb3c14
imul rbx, r15
shr rbx, 0x3f
cmp ebx, 0xacd40471
ja 0x140053d00
movzx r14d, byte [r9 + rdx]
cmp eax, 0xe0
je 0x140053d80
cmp eax, 0xed
jne 0x140053f34
mov eax, dword [0x141dc4f70]
and eax, dword [0x141dc4f74]
xor eax, 0xc4402820
and eax, 0xe4c0ff30
add eax, 0x31395ee8
cmp eax, 0xb1bd1e9
jb 0x140053d44
cmp r14b, 0x9f
jle 0x14005401b
jmp 0x14005423f
mov eax, dword [0x141dc4f68]
xor edx, edx
div dword [0x141dc4f6c]
add eax, 0x19729801
or eax, 0xfffddfd9
cmp eax, 0xc08cb10d
jb 0x140053d80
and r14b, 0xe0
cmp r14b, 0xa0
je 0x14005401b
jmp 0x14005423f
lea rdx, [r10 + 1]
nop word cs:[rax + rax]
mov ebx, dword [0x141dc4f48]
sub ebx, dword [0x141dc4f4c]
add ebx, 0x38f309b0
cmp ebx, 0x7198c22d
jb 0x140053dc0
nop word [rax + rax]
test dil, dil
jne 0x140053de0
cmp rdx, r8
jae 0x140054235
test dil, dil
jne 0x140053dee
mov bl, 1
mov dword [rsp + 4], ebx
nop dword [rax]
mov ebx, dword [0x141dc4fa0]
add ebx, dword [0x141dc4fa4]
imul ebx, ebx, 0x76c1b920
cmp ebx, 0xedf7d4a8
je 0x140053e00
movzx r14d, byte [r9 + rdx]
cmp rax, 0xf0
je 0x140054069
cmp eax, 0xf4
jne 0x140053e80
test dil, dil
jne 0x140053e32
nop word [rax + rax]
mov eax, dword [0x141dc4fc8]
add eax, dword [0x141dc4fcc]
and eax, 0x67535855
imul rax, rax, 0x39283431
shr rax, 0x3b
add eax, 0x1cda7125
cmp eax, 0xa6b9efba
ja 0x140053e40
cmp r14b, 0x8f
jle 0x140054077
jmp 0x14005423f
mov edx, dword [0x141dc4fa8]
and edx, dword [0x141dc4fac]
imul edx, edx, 0x826002f8
and edx, 0x5bd97bb8
cmp edx, 0x848adced
ja 0x140053e80
lea ebx, [rax + 0xf]
mov eax, dword [0x141dc4fb0]
xor edx, edx
div dword [0x141dc4fb4]
nop word cs:[rax + rax]
mov ebp, dword [0x141dc4fb8]
or ebp, dword [0x141dc4fbc]
add ebp, 0xc84d911b
and ebp, 0x2e8afb96
add ebp, 0xe7e074f1
cmp bl, 3
setb al
cmp r14b, 0xc0
setl dl
cmp ebp, 0xca5309e4
jb 0x140053ec0
and al, dl
nop word cs:[rax + rax]
mov edx, dword [0x141dc4fc0]
or edx, dword [0x141dc4fc4]
and edx, 0x28585604
xor edx, 0x5481c06
cmp edx, 0x88e86d61
ja 0x140053f00
test al, al
lea rbp, [0x141db67d8]
jne 0x140054077
jmp 0x14005423f
lea edx, [rax + 0x1f]
cmp dl, 0xc
jae 0x140053f90
nop dword [rax]
test dil, dil
jne 0x140053f40
nop word cs:[rax + rax]
mov eax, dword [0x141dc4f90]
or eax, dword [0x141dc4f94]
xor eax, 0x23552a73
add eax, 0x3932e979
or eax, 0xc77f3331
cmp eax, 0x6592cf44
je 0x140053f50
cmp r14b, 0xc0
jl 0x14005401b
jmp 0x14005423f
mov edx, dword [0x141dc4f78]
and edx, dword [0x141dc4f7c]
and edx, 0xc920c00
xor edx, 0x64820e30
cmp edx, 0xd9eb8ff2
ja 0x140053f90
and al, 0xfe
mov edx, dword [0x141dc4f80]
or edx, dword [0x141dc4f84]
imul edx, edx, 0x9a9d163e
add edx, 0x3245c578
cmp edx, 0x4a790dc3
jb 0x140053fb2
nop word cs:[rax + rax]
cmp r14b, 0xc0
setl dl
cmp al, 0xee
sete bl
mov ebp, dword [0x141dc4f88]
sub ebp, dword [0x141dc4f8c]
imul ebp, ebp, 0xec9ad0a4
add ebp, 0x86b9e778
cmp ebp, 0x439068d9
jb 0x140053fe0
and bl, dl
lea rbp, [0x141db67d8]
je 0x14005423f
lea r14, [r10 + 2]
cmp r14, r8
jae 0x140054235
movzx eax, byte [r9 + r14]
nop dword [rax]
mov edx, dword [0x141dc4f98]
imul edx, dword [0x141dc4f9c]
imul edx, edx, 0x60efd523
imul rdx, rdx, 0x2aff9627
shr rdx, 0x3c
or edx, 0xdb00624c
cmp edx, 0x425faa3f
jb 0x140054030
cmp al, 0xbf
jle 0x1400541a0
jmp 0x140054243
add r14b, 0x70
cmp r14b, 0x30
jae 0x14005423f
lea rax, [r10 + 2]
cmp rax, r8
jae 0x140054235
nop word cs:[rax + rax]
mov edx, dword [0x141dc4fd0]
or edx, dword [0x141dc4fd4]
imul edx, edx, 0x5eea228f
and edx, 0xf373a228
add edx, 0xf0d1f914
cmp edx, 0x49f3e530
ja 0x140054090
movzx eax, byte [r9 + rax]
mov edx, dword [0x141dc4fd8]
sub edx, dword [0x141dc4fdc]
xor edx, 0x34880411
and edx, 0x349c2499
cmp edx, 0x27afeb7e
je 0x1400540bb
nop dword [rax + rax]
test dil, dil
jne 0x1400540e0
cmp al, 0xbf
jg 0x140054243
mov eax, dword [0x141dc4fe0]
add eax, dword [0x141dc4fe4]
and eax, 0xa120a8e8
mov edx, 0x83a5f6c7
imul rax, rdx
shr rax, 0x3b
cmp eax, 0x8a2d753a
ja 0x1400540ed
lea r14, [r10 + 3]
nop word cs:[rax + rax]
mov eax, dword [0x141dc4fe8]
xor edx, edx
div dword [0x141dc4fec]
add eax, 0x7eeeb5b3
xor eax, 0x1278a906
cmp eax, 0x2ae59398
jb 0x140054120
cmp r14, r8
jae 0x140054235
mov eax, dword [0x141dc4ff0]
add eax, dword [0x141dc4ff4]
and eax, 0xbaa9fcd
imul eax, eax, 0xe601fab
or eax, 0x5b0536c
cmp eax, 0xdc7baaf4
jb 0x140054148
movzx eax, byte [r9 + r14]
mov edx, dword [0x141dc4ff8]
xor edx, dword [0x141dc4ffc]
or edx, 0xf607f94c
shr edx, 2
imul rdx, rdx, 0x2e02f627
shr rdx, 0x38
cmp edx, 0x92bfafc4
je 0x140054170
cmp al, 0xbf
jg 0x140054247
mov eax, dword [0x141dc4f58]
sub eax, dword [0x141dc4f5c]
imul eax, eax, 0xa2428991
add eax, 0xae8fd6bc
lea r10, [r14 + 1]
cmp eax, 0x142c74ef
jb 0x1400541a0
jmp 0x140053a06
mov eax, dword [0x141dc5000]
add eax, dword [str.tUDZ_]
mov edx, 0x966b3d3b
imul rdx, rax
shr rdx, 0x3f
imul eax, edx, 0x63595b95
and eax, 0x54ca8eae
cmp eax, 0x4ba936dd
jbe 0x140054200
mov qword [rcx + 8], r9
nop word cs:[rax + rax]
mov eax, dword [0x141dc5008]
imul eax, dword [0x141dc500c]
add eax, 0xec4d3e15
imul rax, rax, 0x470adf07
shr rax, 0x3a
xor eax, 0xf6d45a68
mov qword [rcx + 8], r9
cmp eax, 0xca8f6176
jb 0x140054200
mov qword [rcx + 0x10], r8
xor eax, eax
jmp 0x14005425c
mov dword [rsp + 4], 0
jmp 0x140054249
mov al, 1
jmp 0x140054249
mov al, 2
jmp 0x140054249
mov al, 3
mov qword [rcx + 8], r10
mov edx, dword [rsp + 4]
mov byte [rcx + 0x10], dl
mov byte [rcx + 0x11], al
mov eax, 1
mov qword [rcx], rax
add rsp, 8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret