Function at 0x140053150
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov r9, rdx
mov qword [rsp + 0x60], 0x20
mov eax, dword [0x141dc6b08]
xor edx, edx
div dword [0x141dc6b0c]
or eax, 0xbc8cc960
imul eax, eax, 0x919c22fe
cmp eax, 0x92d768e6
jae 0x1400531b0
mov byte [rsp + 0x68], 3
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], r9
mov eax, dword [0x141dc6b10]
xor edx, edx
div dword [0x141dc6b14]
or eax, 0x97e9f76b
mov byte [rsp + 0x68], 3
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x58], r9
cmp eax, 0xf7fcc0eb
je 0x1400531b0
mov rsi, qword [r8 + 0x20]
test rsi, rsi
mov qword [rsp + 0x70], r8
je 0x1400535c0
mov rax, qword [r8 + 0x28]
imul rcx, rax, 0x38
add rcx, rsi
mov qword [rsp + 0x80], rcx
mov ecx, dword [0x141dc6b20]
sub ecx, dword [0x141dc6b24]
imul ecx, ecx, 0xfa4f75f1
or ecx, 0xa555a280
imul ecx, ecx, 0x63cdbd38
cmp ecx, 0x371f238b
jb 0x140053210
test rax, rax
je 0x140053850
mov rax, qword [r8]
mov qword [rsp + 0x78], rax
mov r13, qword [r8 + 0x10]
xor r12d, r12d
lea rdi, [rsp + 0x30]
xor r10d, r10d
nop word cs:[rax + rax]
mov eax, dword [0x141dc6b78]
or eax, dword [0x141dc6b7c]
cmp eax, 0x4016159f
je 0x140053260
mov rax, r10
shl rax, 4
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rcx + rax + 8]
test rbx, rbx
je 0x140053356
add rax, qword [rsp + 0x78]
mov ecx, dword [0x141dc6ba0]
and ecx, dword [0x141dc6ba4]
add ecx, 0x2520037e
mov edx, 0x94f0d22b
imul rcx, rdx
shr rcx, 0x3f
or ecx, 0x3a118944
cmp ecx, 0x9129360
jb 0x140053292
mov rcx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov qword [rsp + 0x28], r10
nop
mov edx, dword [0x141dc6ba8]
sub edx, dword [0x141dc6bac]
cmp edx, 0x458fdb58
je 0x1400532d0
mov r15, qword [rax]
mov eax, dword [0x141dc6bb0]
imul eax, dword [0x141dc6bb4]
imul eax, eax, 0xe08a3d2e
cmp eax, 0xa9280a40
mov r14, rcx
je 0x140053430
nop dword [rax + rax]
mov eax, dword [0x141dc6bb8]
xor edx, edx
div dword [0x141dc6bbc]
mov ebp, eax
or ebp, 0x10110015
and ebp, 0x103301d5
mov rdx, r15
mov r8, rbx
call qword [rdi + 0x18]
mov rcx, r14
cmp ebp, 0x59883f7
je 0x140053430
test al, al
mov r10, qword [rsp + 0x28]
lea rdi, [rsp + 0x30]
jne 0x140053900
lea r9, [rsi + 0x38]
inc r10
movzx eax, byte [rsi + 0x30]
mov byte [rsp + 0x68], al
mov rax, qword [rsi + 0x28]
mov qword [rsp + 0x60], rax
mov eax, dword [0x141dc6bc0]
imul eax, dword [0x141dc6bc4]
add eax, 0xe4817c53
or eax, 0x1b61ba82
imul eax, eax, 0xefe3e1e7
cmp eax, 0x196d5d22
je 0x14005336e
mov rcx, qword [rsi + 0x10]
mov rax, qword [rsi + 0x18]
test rcx, rcx
je 0x140053441
cmp ecx, 1
jne 0x140053448
nop dword [rax]
mov ecx, dword [0x141dc6bd0]
and ecx, dword [0x141dc6bd4]
imul ecx, ecx, 0xb6a625d1
add ecx, 0x9a6a02cf
cmp ecx, 0x9d096655
ja 0x1400533b0
shl rax, 4
mov rdx, rax
add rdx, r13
mov eax, dword [0x141dc6bd8]
and eax, dword [0x141dc6bdc]
imul rax, rax, 0x486e084f
shr rax, 0x3e
imul eax, eax, 0xe14ef54c
cmp eax, 0x846446cd
je 0x1400533da
cmp qword [rdx + 8], 0
jne 0x140053451
mov r8d, dword [0x141dc6be0]
and r8d, dword [0x141dc6be4]
mov rax, qword [rdx]
mov ecx, 1
cmp r8d, 0x97d13af
je 0x140053405
jmp 0x140053453
mov rdx, r15
mov r8, rbx
call qword [rdi + 0x18]
mov rcx, r14
jmp 0x140053310
mov ecx, 1
jmp 0x140053453
cmp ecx, 2
jne 0x140053800
xor ecx, ecx
mov edx, dword [0x141dc6be8]
add edx, dword [0x141dc6bec]
or edx, 0xe55e73e9
add edx, 0x8f42e3c0
mov r8d, 0x89182005
imul rdx, r8
shr rdx, 0x3f
cmp edx, 0xdbf07a4b
jbe 0x140053490
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
nop dword [rax + rax]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rax
test r12b, r12b
jne 0x140053490
mov rax, qword [rsi]
mov r14, qword [rsi + 8]
test rax, rax
mov qword [rsp + 0x28], r9
je 0x1400534ef
cmp eax, 1
jne 0x1400534f7
mov eax, dword [0x141dc6bf8]
imul eax, dword [0x141dc6bfc]
or eax, 0xd3440847
cmp eax, 0xc701e3e2
je 0x1400534b5
shl r14, 4
add r14, r13
nop word cs:[rax + rax]
test r12b, r12b
jne 0x1400534e0
cmp qword [r14 + 8], 0
jne 0x140053500
mov r14, qword [r14]
mov r15d, 1
jmp 0x140053503
cmp eax, 2
jne 0x140053830
xor r15d, r15d
mov rbx, r10
mov eax, dword [0x141dc6c00]
imul eax, dword [0x141dc6c04]
imul eax, eax, 0x3bc5f4a2
imul rax, rax, 0x1f78ad71
shr rax, 0x3c
cmp eax, 0x1b827c0b
jbe 0x140053550
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r14
mov rax, qword [rsi + 0x20]
shl rax, 4
mov rcx, qword [r13 + rax]
mov rdx, rdi
call qword [r13 + rax + 8]
nop word [rax + rax]
mov ebp, dword [0x141dc6c08]
add ebp, dword [0x141dc6c0c]
or ebp, 0x82883a0
and ebp, 0x4c2883a1
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r14
mov rax, qword [rsi + 0x20]
shl rax, 4
mov rcx, qword [r13 + rax]
mov rdx, rdi
call qword [r13 + rax + 8]
cmp ebp, 0x345cfee9
je 0x140053550
test al, al
jne 0x140053900
mov r10, rbx
mov rax, qword [rsp + 0x28]
mov rsi, rax
cmp rax, qword [rsp + 0x80]
jne 0x140053260
jmp 0x140053853
mov eax, dword [0x141dc6b18]
xor eax, dword [0x141dc6b1c]
xor eax, 0x18d60081
and eax, 0x98d64481
cmp eax, 0x33a24871
je 0x1400535c0
mov r14, qword [r8 + 0x18]
test r14, r14
je 0x140053850
mov rbp, qword [r8 + 0x10]
shl r14, 4
add r14, rbp
xor r10d, r10d
mov al, 1
nop word [rax + rax]
test al, al
je 0x140053600
mov rax, qword [r8]
mov qword [rsp + 0x28], rax
mov r15d, 0xad2edc71
mov ebx, 0xaceae2db
lea rdi, [rsp + 0x30]
nop dword [rax]
mov eax, dword [0x141dc6b28]
add eax, dword [0x141dc6b2c]
imul rax, r15
shr rax, 0x3e
imul eax, eax, 0x61bea299
add eax, 0xd42f4b9c
cmp eax, 0xee96fc90
ja 0x140053620
mov r9, r10
shl r9, 4
mov rax, qword [rsp + 0x28]
mov r8, qword [rax + r9 + 8]
test r8, r8
je 0x1400536f1
add r9, qword [rsp + 0x28]
mov eax, dword [0x141dc6b30]
xor edx, edx
div dword [0x141dc6b34]
mov rsi, r10
nop word cs:[rax + rax]
mov eax, dword [0x141dc6b38]
xor edx, edx
div dword [0x141dc6b3c]
and eax, 0xb75a1505
add eax, 0x17fc5b57
shr eax, 2
imul rax, rax, 0x46eec225
shr rax, 0x3b
cmp eax, 0x10d52e2c
ja 0x140053680
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rdx, qword [r9]
call qword [rax + 0x18]
nop dword [rax]
mov ecx, dword [0x141dc6b40]
or ecx, dword [0x141dc6b44]
add ecx, 0x7db75aa1
xor ecx, 0xfba61d93
imul ecx, ecx, 0x86d6679d
cmp ecx, 0x38bdb878
jb 0x1400536c0
test al, al
mov r10, rsi
jne 0x140053900
lea r13, [rbp + 0x10]
inc r10
mov eax, dword [0x141dc6b48]
imul eax, dword [0x141dc6b4c]
add eax, 0x8a1dc085
or eax, 0x9250d618
shr eax, 1
imul rax, rbx
shr rax, 0x3c
cmp eax, 0x1b2e852e
ja 0x1400536f8
mov rbx, qword [rbp]
mov eax, dword [0x141dc6b50]
imul eax, dword [0x141dc6b54]
or eax, 0xc8de237
add eax, 0x7a91ba89
and eax, 0x5b07ab88
cmp eax, 0xe320973b
ja 0x140053724
mov rsi, r10
mov eax, dword [0x141dc6b58]
xor eax, dword [0x141dc6b5c]
imul eax, eax, 0x1d8144a3
add eax, 0x7946ef38
mov rcx, rax
mov edx, 0xc9f5c1d9
imul rcx, rdx
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1c
cmp eax, 0x81225598
jbe 0x140053790
mov rcx, rbx
mov rdx, rdi
call qword [rbp + 8]
nop word [rax + rax]
mov eax, dword [0x141dc6b60]
xor edx, edx
div dword [0x141dc6b64]
imul r12d, eax, 0xbbacc760
add r12d, 0x6d4ef040
mov rcx, rbx
mov rdx, rdi
call qword [rbp + 8]
cmp r12d, 0xd42be119
ja 0x140053790
test al, al
mov ebx, 0xaceae2db
jne 0x140053900
mov r10, rsi
nop
mov eax, dword [0x141dc6b68]
sub eax, dword [0x141dc6b6c]
add eax, 0xfbc9485d
cmp eax, 0xe6577cb1
jb 0x1400537d0
mov rbp, r13
cmp r13, r14
jne 0x140053620
jmp 0x140053853
mov eax, dword [0x141dc6bc8]
or eax, dword [0x141dc6bcc]
shr eax, 1
imul rax, rax, 0x40e132c5
shr rax, 0x3b
add eax, 0x1723c752
cmp eax, 0x7769b3b7
ja 0x140053800
jmp 0x14005384e
mov eax, dword [0x141dc6bf0]
imul eax, dword [0x141dc6bf4]
add eax, 0xa8efc5cd
xor eax, 0xda4613dd
cmp eax, 0xe5123a00
ja 0x140053830
ud2
xor r10d, r10d
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x140053860
mov rax, qword [rsp + 0x70]
cmp r10, qword [rax + 8]
jae 0x140053930
mov eax, dword [0x141dc6b80]
xor edx, edx
div dword [0x141dc6b84]
shl r10, 4
nop word cs:[rax + rax]
mov eax, dword [0x141dc6b88]
and eax, dword [0x141dc6b8c]
and eax, 0xf9054708
imul eax, eax, 0xa2b24431
cmp eax, 0xd950bdf9
je 0x140053890
mov rax, qword [rsp + 0x70]
mov r8, qword [rax]
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rdx, qword [r8 + r10]
mov r8, qword [r8 + r10 + 8]
nop dword [rax]
mov r9d, dword [0x141dc6b90]
sub r9d, dword [0x141dc6b94]
add r9d, 0x939520ef
cmp r9d, 0x65e19041
ja 0x1400538d0
call qword [rax + 0x18]
test al, al
je 0x140053930
nop word cs:[rax + rax]
mov eax, dword [0x141dc6b70]
imul eax, dword [0x141dc6b74]
add eax, 0x8251526d
xor eax, 0x91150006
and eax, 0xd175089e
cmp eax, 0x6202c20a
je 0x140053900
mov al, 1
jmp 0x140053954
mov eax, dword [0x141dc6b98]
or eax, dword [0x141dc6b9c]
and eax, 0x30401a6e
add eax, 0xf987a3a1
or eax, 0xb586239a
cmp eax, 0xb5f647d4
je 0x140053930
xor eax, eax
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret