Function at 0x140055780
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
mov eax, dword [0x141dcaed8]
and eax, dword [0x141dcaedc]
xor eax, 0x87ab00b
add eax, 0x967844d3
or eax, 0xd79fc3e5
cmp eax, 0xca456388
je 0x140055790
xor r11d, r11d
mov rax, r8
sub rax, 0xf
cmovae r11, rax
test r8, r8
je 0x140055f80
lea rsi, [r9 + 7]
and rsi, 0xfffffffffffffff8
sub rsi, r9
xor edi, edi
lea rbp, [0x141dbb9d8]
mov r14d, 0xc937a27d
mov r12d, 0xdfaa3199
movabs r13, 0x8080808080808080
xor r10d, r10d
nop word cs:[rax + rax]
mov eax, dword [0x141dcaee0]
xor eax, dword [0x141dcaee4]
imul rax, rax, 0x107288e5
shr rax, 0x3b
or eax, 0xc2ae38e4
imul eax, eax, 0x94fa686d
cmp eax, 0x9d8c6232
je 0x140055800
movzx r15d, byte [r9 + r10]
test r15b, r15b
js 0x1400558b0
mov eax, dword [0x141dcaee8]
xor edx, edx
div dword [0x141dcaeec]
mov eax, dword [0x141dcaef0]
or eax, dword [0x141dcaef4]
or eax, 0xca808025
xor eax, 0xc3808043
or eax, 0x245d7790
cmp eax, 0xfb3057b7
je 0x140055841
mov rax, rsi
sub rax, r10
nop dword [rax]
mov edx, dword [0x141dcaef8]
add edx, dword [0x141dcaefc]
and edx, 0x2641789f
add edx, 0x81e4aabf
imul rdx, rdx, 0x4b4a5c1
shr rdx, 0x38
cmp edx, 0x390cce17
je 0x140055870
test al, 7
je 0x140055980
inc r10
jmp 0x140055f50
mov eax, dword [0x141dcaf18]
imul eax, dword [0x141dcaf1c]
xor eax, 0x613c8004
and eax, 0xf17e815e
add eax, 0xd66e1f99
cmp eax, 0xfc960da9
ja 0x1400558b0
movzx eax, byte [r15 + rbp]
mov dl, 1
mov dword [rsp + 4], edx
cmp eax, 4
je 0x140055b2a
cmp eax, 3
je 0x140055990
cmp eax, 2
jne 0x140055fbb
lea r15, [r10 + 1]
mov eax, dword [0x141dcaf20]
xor edx, edx
div dword [0x141dcaf24]
add eax, 0xcdf62ae1
cmp eax, 0xd94f1549
ja 0x1400558fd
cmp r15, r8
jae 0x140055fb1
mov eax, dword [0x141dcaf48]
and eax, dword [0x141dcaf4c]
add eax, 0xa4ad528
or eax, 0x303fc21e
and eax, 0xf0ffe6df
cmp eax, 0xd1242904
je 0x140055920
movzx edx, byte [r9 + r15]
nop word [rax + rax]
mov eax, dword [0x141dcaf50]
xor eax, dword [0x141dcaf54]
and eax, 0xb03f2fa4
cmp eax, 0x4b37bb15
je 0x140055950
mov al, 1
cmp dl, 0xbf
jle 0x140055f20
jmp 0x140055fc5
test dil, dil
jne 0x140055980
jmp 0x140055ac5
mov eax, dword [0x141dcaf28]
xor eax, dword [0x141dcaf2c]
and eax, 0xbd95c85a
cmp eax, 0xf19192a4
je 0x140055990
lea rax, [r10 + 1]
nop dword [rax]
mov edx, dword [0x141dcaf30]
sub edx, dword [0x141dcaf34]
imul rdx, rdx, 0x648a3acd
shr rdx, 0x3d
or edx, 0x391614a9
add edx, 0x61d5a6
cmp edx, 0x4da8e04f
ja 0x1400559b0
nop dword [rax + rax]
mov edx, dword [0x141dcaf38]
imul edx, dword [0x141dcaf3c]
xor edx, 0x40b74d2e
add edx, 0x3e60e514
cmp edx, 0xebb866fd
ja 0x1400559e0
cmp rax, r8
jae 0x140055fb1
mov edx, dword [0x141dcaf60]
add edx, dword [0x141dcaf64]
or edx, 0x3abaa5df
xor edx, 0x582b56fa
imul edx, edx, 0x7adbe35a
cmp edx, 0xb583bfab
ja 0x140055a0a
mov edx, dword [0x141dcaf68]
sub edx, dword [0x141dcaf6c]
add edx, 0x34146988
mov ebx, 0xabf8fc81
imul rdx, rbx
shr rdx, 0x3f
imul edx, edx, 0x12873a8
cmp edx, 0x4cf00748
ja 0x140055a30
movzx ebx, byte [r9 + rax]
cmp r15d, 0xe0
je 0x140055c8c
cmp r15d, 0xed
jne 0x140055bc0
cmp bl, 0x9f
jle 0x140055cbd
jmp 0x140055fbb
add r10, 0x10
nop word cs:[rax + rax]
mov eax, dword [0x141dcaf00]
xor edx, edx
div dword [0x141dcaf04]
xor eax, 0x476a28b
imul eax, eax, 0xa8062ae6
or eax, 0xe7688a14
cmp eax, 0x646dcf06
jb 0x140055aa0
cmp r10, r11
jae 0x140055ae0
mov rax, qword [r9 + r10 + 8]
or rax, qword [r9 + r10]
test rax, r13
je 0x140055a90
nop dword [rax + rax]
test dil, dil
jne 0x140055ae0
cmp r10, r8
jae 0x140055f50
nop
cmp byte [r9 + r10], 0
js 0x140055f50
inc r10
nop
mov eax, dword [0x141dcaf08]
xor edx, edx
div dword [0x141dcaf0c]
xor eax, 0xba6d2b0c
imul eax, eax, 0xe84f1bc1
cmp eax, 0x60f825a4
jb 0x140055b00
cmp r8, r10
jne 0x140055af0
jmp 0x140055f80
lea rax, [r10 + 1]
nop
mov edx, dword [0x141dcaf40]
xor edx, dword [0x141dcaf44]
add edx, 0x95981002
xor edx, 0x2025341e
or edx, 0xdf5ac161
cmp edx, 0x9217d5fd
je 0x140055b30
cmp rax, r8
jae 0x140055fb1
nop
test dil, dil
jne 0x140055b60
movzx ebx, byte [r9 + rax]
cmp r15, 0xf0
je 0x140055d0e
cmp r15d, 0xf4
jne 0x140055d47
nop word cs:[rax + rax]
mov eax, dword [0x141dcafc0]
sub eax, dword [0x141dcafc4]
and eax, 0xd0517c58
cmp eax, 0x5813214a
je 0x140055b90
cmp bl, 0x8f
jle 0x140055db0
jmp 0x140055fbb
mov eax, dword [0x141dcaf70]
xor edx, edx
div dword [0x141dcaf74]
xor eax, 0xacad7b44
add eax, 0x235c465b
or eax, 0x42ab5ab7
cmp eax, 0xe23e463c
je 0x140055bc0
lea eax, [r15 + 0x1f]
mov edx, dword [0x141dcaf78]
imul edx, dword [0x141dcaf7c]
add edx, 0xc0069007
and edx, 0x7686682c
cmp edx, 0x1995645
je 0x140055be8
nop dword [rax]
mov edx, dword [0x141dcaf80]
imul edx, dword [0x141dcaf84]
and edx, 0x1251f411
add edx, 0x2f4e62c4
or edx, 0xeeb64625
cmp edx, 0x4753acd9
jb 0x140055c10
cmp al, 0xc
jae 0x140055c50
test dil, dil
jne 0x140055c3b
test dil, dil
jne 0x140055c40
jmp 0x140055c82
mov eax, dword [0x141dcaf98]
imul eax, dword [0x141dcaf9c]
or eax, 0x3863ab05
imul eax, eax, 0x7a9d50a8
add eax, 0x51bbfa79
cmp eax, 0x8c54e637
jb 0x140055c50
and r15b, 0xfe
cmp r15b, 0xee
jne 0x140055fbb
cmp bl, 0xc0
jl 0x140055cbd
jmp 0x140055fbb
and bl, 0xe0
nop
mov eax, dword [0x141dcaf88]
sub eax, dword [0x141dcaf8c]
imul rax, rax, 0x40b2e4e1
shr rax, 0x3e
imul eax, eax, 0xcdd67575
cmp eax, 0x5338e71c
je 0x140055c90
cmp bl, 0xa0
jne 0x140055fbb
lea r15, [r10 + 2]
nop word cs:[rax + rax]
mov eax, dword [0x141dcaf90]
xor edx, edx
div dword [0x141dcaf94]
imul rax, rax, 0x48b98bf
shr rax, 0x3a
or eax, 0x18e69a8a
cmp eax, 0x10c7db74
jb 0x140055cd0
cmp r15, r8
jae 0x140055fb1
cmp byte [r9 + r15], 0xbf
jle 0x140055f20
jmp 0x140055fbf
add bl, 0x70
nop word cs:[rax + rax]
mov eax, dword [0x141dcafb8]
and eax, dword [0x141dcafbc]
xor eax, 0xd9a6e45
add eax, 0x6c803ec2
cmp eax, 0xafeaf1cb
ja 0x140055d20
cmp bl, 0x30
jb 0x140055db0
jmp 0x140055fbb
add r15d, 0xf
mov eax, dword [0x141dcafa0]
or eax, dword [0x141dcafa4]
add eax, 0x1bd9b48d
cmp eax, 0x1b3ba83
jb 0x140055d4b
mov eax, dword [0x141dcafa8]
xor edx, edx
div dword [0x141dcafac]
cmp bl, 0xc0
setl al
cmp r15b, 3
setb dl
mov ebp, dword [0x141dcafb0]
sub ebp, dword [0x141dcafb4]
add ebp, 0x293fc5db
or ebp, 0xfd919beb
cmp ebp, 0xf97a54fa
jb 0x140055d71
and dl, al
lea rbp, [0x141dbb9d8]
je 0x140055fbb
nop dword [rax]
mov eax, dword [0x141dcafc8]
sub eax, dword [0x141dcafcc]
xor eax, 0x22afa68c
imul rax, r14
shr rax, 0x3e
cmp eax, 0x2f16a79e
ja 0x140055db0
lea rbx, [r10 + 2]
mov eax, dword [0x141dcafd0]
and eax, dword [0x141dcafd4]
or eax, 0x20000005
and eax, 0x280004d5
cmp eax, 0xe075145f
je 0x140055dd4
nop word cs:[rax + rax]
mov eax, dword [0x141dcafd8]
and eax, dword [0x141dcafdc]
shr eax, 3
imul rax, rax, 0x308e9abb
shr rax, 0x39
add eax, 0xf00cc736
cmp eax, 0xef3c4f8c
jb 0x140055e00
cmp rbx, r8
jae 0x140055fb1
mov eax, dword [0x141dcafe0]
xor edx, edx
div dword [0x141dcafe4]
mov eax, dword [0x141dcafe8]
xor edx, edx
div dword [0x141dcafec]
imul rax, rax, 0x2072e0d
shr rax, 0x36
and eax, 6
add eax, 0x9e9409ab
cmp eax, 0x8776c141
jb 0x140055e3d
nop word cs:[rax + rax]
mov eax, dword [0x141dcaff0]
imul eax, dword [0x141dcaff4]
add eax, 0x933e047e
or eax, 0x474f6479
add eax, 0x6f08451b
cmp eax, 0x5b657dfc
jb 0x140055e70
cmp byte [r9 + rbx], 0xbf
jg 0x140055fbf
lea r15, [r10 + 3]
mov eax, dword [0x141dcaff8]
or eax, dword [0x141dcaffc]
add eax, 0xa9330a02
and eax, 0xf70c47b3
cmp eax, 0x3f1ca6
je 0x140055ea2
nop
mov eax, dword [0x141dcb000]
sub eax, dword [0x141dcb004]
imul eax, eax, 0x1dcd54a6
add eax, 0xe03641f4
cmp eax, 0x8b3de846
jb 0x140055ec0
cmp r15, r8
jae 0x140055fb1
nop word [rax + rax]
mov eax, dword [0x141dcb008]
xor eax, dword [0x141dcb00c]
and eax, 0xf00a0f8
imul eax, eax, 0xf2f8f380
add eax, 0xd75fdcb0
cmp eax, 0xb10c03ca
jb 0x140055ef0
cmp byte [r9 + r15], 0xbf
jg 0x140055fc3
nop
mov eax, dword [0x141dcaf58]
sub eax, dword [0x141dcaf5c]
imul eax, eax, 0xd6d17599
xor eax, 0xd11aceeb
imul rax, rax, 0x58c9d7bb
shr rax, 0x3e
cmp eax, 0x6e0bffb6
ja 0x140055f20
inc r15
mov r10, r15
nop
mov eax, dword [0x141dcaf10]
add eax, dword [0x141dcaf14]
imul rax, r12
shr rax, 0x3e
or eax, 0x14942734
imul eax, eax, 0xc7145374
cmp eax, 0x8ab861ab
ja 0x140055f50
cmp r10, r8
jb 0x140055800
nop
mov eax, dword [0x141dcb010]
mov edx, dword [0x141dcb014]
add eax, edx
add eax, 0xf7c6bb19
and eax, 0xcc562092
imul eax, eax, 0x3141b5ea
cmp eax, 0x560493df
jb 0x140055f80
mov qword [rcx + 8], r9
mov qword [rcx + 0x10], r8
xor eax, eax
jmp 0x140055fd8
mov dword [rsp + 4], 0
jmp 0x140055fc5
mov al, 1
jmp 0x140055fc5
mov al, 2
jmp 0x140055fc5
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 edx, dword [str.e_t]
sub edx, dword [0x141dcb01c]
xor edx, 0x1027db12
and edx, 0x3667ff36
cmp edx, 0x79ecf029
jbe 0x140056000
mov qword [rcx], rax
nop dword [rax + rax]
mov edx, dword [0x141dcb020]
sub edx, dword [0x141dcb024]
add edx, 0x4569e8bc
or edx, 0x37558f15
mov qword [rcx], rax
cmp edx, 0xbef5ab2d
je 0x140056000
add rsp, 8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret