Function at 0x140014570
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xb8
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0xb0], rcx
cmp rdx, 0
je 0x140014f3e
mov rax, qword [rsp + 0xb0]
mov rcx, rax
add rcx, 8
mov qword [rsp + 0x98], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0xa0], rax
cmp rax, 0
je 0x1400145f8
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax]
mov qword [rsp + 0x90], rcx
mov rdx, 0xffffffffffffffff
movabs rax, 0x4000000000000000
xor rdx, rax
mov rax, rcx
xor rax, rdx
and rax, rcx
cmp rax, 0
je 0x1400149c8
mov rdx, qword [rsp + 0xa8]
mov rax, rdx
add rax, 1
mov qword [rsp + 0x88], rax
movabs rcx, 0x67f483d3825fb2f4
movabs r8, 0x980b7c2c7da04d0b
xor rcx, r8
xor rdx, rcx
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
mov rcx, 0xffffffffffffffff
movabs r8, 0x5f57263f712649ea
xor rcx, r8
or rax, rdx
movabs rdx, 0x5f57263f712649ea
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x140014670
call fcn.140008d37
jmp 0x140014f51
mov r8, qword [rsp + 0xa8]
mov rax, r8
add rax, 9
mov qword [rsp + 0x80], rax
mov rdx, 0xffffffffffffffff
xor rdx, 0xfffffffffffffffe
and rdx, r8
xor r8, 0xffffffffffffffff
movabs rcx, 0xf9fd3b7bcc6a7cf2
movabs r9, 0x602c4843395830c
xor rcx, r9
and rcx, r8
sub rcx, rdx
or rax, rax
xor rax, 0xffffffffffffffff
or rcx, rcx
movabs rdx, 0x4816404974313605
movabs r8, 0xb7e9bfb68bcec9fa
xor rdx, r8
xor rcx, rdx
xor rax, 0xffffffffffffffff
movabs rdx, 0xf6b898dbdfe057fc
movabs r8, 0x9476724201fa803
xor rdx, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x14001470f
call fcn.140008d37
jmp 0x140014f51
mov rax, qword [rsp + 0x80]
cmp rax, 0
jge 0x140014731
mov rcx, r8
mov rdx, r8
call fcn.14000db87
jmp 0x140014f51
mov rcx, qword [rsp + 0x80]
call fcn.14000bbdd
mov r8, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa8]
mov rcx, rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x70], rcx
mov qword [r8], rcx
mov qword [rcx], rdx
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
cmp rax, 0
jle 0x14001498b
mov rcx, qword [rsp + 0x78]
mov rax, qword [rsp + 0xa8]
mov rdx, rcx
sub rdx, rax
cmovl rax, rcx
mov qword [rsp + 0x68], rax
cmp rax, 0
jge 0x1400147ac
mov rcx, r8
mov rdx, r8
call fcn.14000db87
jmp 0x140014f51
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x70]
add rcx, 8
add rdx, 8
call fcn.140031b4a
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rax]
mov qword [rsp + 0x60], rax
cmp rax, rcx
jge 0x14001496e
mov r8, qword [rsp + 0x60]
mov r9, qword [rsp + 0xa8]
mov rax, r9
xor rax, 0xffffffffffffffff
and rax, r8
movabs rdx, 0x359d1e35b9669d84
movabs rcx, 0xca62e1ca4699627b
xor rdx, rcx
mov rcx, r8
xor rcx, rdx
mov rdx, r9
and rdx, rcx
sub rdx, rax
mov qword [rsp + 0x58], rdx
mov rcx, rdx
and rcx, r9
shl rcx, 1
mov rax, rdx
add rax, r9
sub rax, rcx
movabs rcx, 0x76e116624636f912
movabs r9, 0x76e116624636f912
xor rcx, r9
cmp rax, rcx
setl al
movabs rcx, 0xd1605c7e131c753a
movabs r9, 0x2e9fa381ece38ac5
xor rcx, r9
mov r9, rdx
xor r9, rcx
mov rcx, r8
and rcx, r9
xor r8, 0xffffffffffffffff
and rdx, r8
or rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x1400148a1
jmp 0x1400148ab
call fcn.140008d37
jmp 0x140014f51
mov rcx, qword [rsp + 0x58]
mov rax, rcx
add rax, 1
mov qword [rsp + 0x50], rax
mov rdx, rcx
xor rdx, 0xffffffffffffffff
and rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
and rcx, r8
or rdx, rcx
mov rcx, rax
add rcx, 1
xor rax, 0xffffffffffffffff
or rax, rdx
add rax, rcx
movabs rcx, 0x87c2110e1382e1ef
movabs rdx, 0x87c2110e1382e1ef
xor rcx, rdx
cmp rax, rcx
jge 0x140014913
call fcn.140008d37
jmp 0x140014f51
mov rax, qword [rsp + 0x50]
movabs rcx, 0x7ba5c728e7fc0e51
movabs rdx, 0x7ba5c728e7fc0e51
xor rcx, rdx
cmp rax, rcx
jge 0x140014948
mov rcx, r8
mov rdx, r8
call fcn.14000db87
jmp 0x140014f51
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x98]
mov rcx, qword [rcx]
add rcx, 8
add rcx, rax
call fcn.140009301
jmp 0x140014f26
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x98]
mov rax, qword [rax]
mov byte [rax + rcx + 8], 0
jmp 0x140014f26
mov rax, qword [rsp + 0x88]
cmp rax, 0
jl 0x1400149b8
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x70]
add rcx, 8
call fcn.140009301
jmp 0x140014f26
mov rcx, r8
mov rdx, r8
call fcn.14000db87
jmp 0x140014f51
mov ecx, dword [0x140241b58]
mov edx, dword [0x140241b5c]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
mov ecx, 0x880843bd
xor ecx, 0x5f112cb
xor edx, edx
div ecx
xor eax, 0xffffffff
mov edx, 0x81e42b36
xor edx, 0xc0348d52
mov ecx, 0xd5a39d61
xor ecx, 0x2a5c629e
xor edx, ecx
mov ecx, 0xffffffff
xor ecx, 0xe2c3f665
or eax, edx
or ecx, 0xe2c3f665
mov edx, 0x357c552e
xor edx, 0xca83aad1
xor eax, edx
and eax, ecx
or eax, eax
xor eax, 0xffffffff
mov ecx, 0x25d2438
xor ecx, 0xd5f79434
mov edx, 0x662f0eca
xor edx, 0xb185bec6
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x162a4337
jae 0x14001505b
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xa8]
mov ecx, dword [0x140241b60]
mov r9d, dword [0x140241b64]
mov eax, ecx
add eax, 1
mov r10d, 0xc2985d68
xor r10d, 0x3d67a297
xor ecx, r10d
or ecx, r9d
add ecx, eax
mov eax, 0x9074d08d
xor eax, 0x696b341b
or ecx, eax
mov r9d, 0xffffffff
xor r9d, 0xfe3d5ba3
mov eax, ecx
and eax, r9d
mov r9d, ecx
xor r9d, 0xfe3d5ba3
add ecx, r9d
sub ecx, eax
mov eax, ecx
and eax, 0x6b8c3779
xor ecx, 0x6b8c3779
or eax, ecx
mov ecx, 0x8936e572
xor ecx, 0x6259710e
cmp qword [rdx], r8
setl dl
mov byte [rsp + 0x4f], dl
cmp eax, ecx
jb 0x140014a58
mov al, byte [rsp + 0x4f]
test al, 1
jne 0x140014af9
jmp 0x140014f26
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x90]
mov rax, rdx
xor rax, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
movabs r9, 0xbfffffffffffffff
xor r8, r9
or rax, r8
xor rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
movabs r9, 0xbfffffffffffffff
xor r8, r9
or rdx, r8
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rax, rdx
mov qword [rsp + 0x40], rax
cmp rax, rcx
jge 0x140014f26
mov rcx, qword [rsp + 0x40]
call fcn.140011d94
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x90]
mov r8, rax
mov rax, qword [rsp + 0x40]
mov r9, r8
sub r9, rdx
cmovg rdx, r8
mov qword [rsp + 0x38], rdx
movabs rdx, 0xda57af31a1996b49
movabs r8, 0xda57af31a1996b48
xor rdx, r8
add rax, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0xaa531b5d8bb053a1
movabs rdx, 0xaa531b5d8bb053a1
xor rcx, rdx
cmp rax, rcx
jge 0x140014bd7
call fcn.140008d37
jmp 0x140014f51
mov r11d, dword [0x140241b68]
mov r10d, dword [0x140241b6c]
mov eax, 0xc763c220
xor eax, 0xfe7274bc
xor r10d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov eax, 0x9f83588
xor eax, 0xf607ca77
mov edx, r10d
xor edx, eax
mov r8d, 0xffffffff
xor r8d, 0xe0212727
mov r9d, 0x4b824a33
xor r9d, 0xaba36d14
mov eax, ecx
and eax, r9d
and r11d, r8d
mov r9d, edx
and r9d, 0xe0212727
and r10d, r8d
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0x2d221648
xor edx, 0xcd03316f
or edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x7163e74
add eax, ecx
add eax, 1
mov edx, 0xffffffff
xor edx, 0xaae0abe6
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xaae0abe6
add eax, edx
sub eax, ecx
add eax, 0xbcb1b05c
cmp eax, 0x189bfaa2
jbe 0x140015064
mov r9, qword [rsp + 0x40]
mov eax, dword [0x140241b70]
mov ecx, dword [0x140241b74]
mov edx, 0x385f7e43
xor edx, 0xc048c5ff
sub eax, edx
sub eax, ecx
add eax, 0xf817bbbc
mov ecx, 0xf36493bb
xor edx, edx
div ecx
sub eax, 0xed963a6c
xor eax, 0x1710d2c8
mov ecx, 0x87dd1417
xor ecx, 0x8b35e740
mov rdx, r9
add rdx, 9
mov qword [rsp + 0x28], rdx
movabs r8, 0x9203ff685dc087fa
movabs r10, 0x6dfc0097a23f7804
xor r8, r10
sub r8, r9
and rdx, r8
cmp rdx, 0
setl dl
mov byte [rsp + 0x37], dl
cmp eax, ecx
je 0x140014c91
mov al, byte [rsp + 0x37]
test al, 1
jne 0x140014d21
jmp 0x140014d2b
call fcn.140008d37
jmp 0x140014f51
mov rax, qword [rsp + 0x40]
cmp rax, 0xfffffffffffffff7
jge 0x140014d4a
mov rcx, r8
mov rdx, r8
call fcn.14000db87
jmp 0x140014f51
mov rax, qword [rsp + 0x38]
xor ecx, ecx
mov edx, ecx
sub rdx, 1
mov rcx, rax
sub rcx, rdx
mov rdx, rax
and rdx, rdx
xor rdx, 0xffffffffffffffff
movabs r8, 0xdd55179ca7010e66
movabs r9, 0x22aae86358fef199
xor r8, r9
and rdx, r8
xor rdx, 0xffffffffffffffff
mov r8, 0xffffffffffffffff
and r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
movabs r9, 0x9be36f7fc87e95e0
movabs r10, 0x641c908037816a1f
xor r9, r10
xor rax, r9
movabs r9, 0x3ef2f07d8ec9d246
movabs r10, 0xc10d0f8271362db9
xor r9, r10
xor r8, r9
or rax, r8
and rdx, rax
xor rdx, 0xffffffffffffffff
mov rax, rcx
xor rax, 0xffffffffffffffff
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
xor rcx, 0xffffffffffffffff
movabs r8, 0xbddd824675f327e2
movabs r9, 0x42227db98a0cd81d
xor r8, r9
xor rdx, r8
or rcx, rdx
and rax, rcx
xor rax, 0xffffffffffffffff
cmp rax, 0
jge 0x140014e1f
call fcn.140008d37
jmp 0x140014f51
mov rax, qword [rsp + 0x38]
movabs rcx, 0x99a2529a29034cb
movabs rdx, 0x99a2529a29034cb
xor rcx, rdx
movabs rdx, 0x362eebfe615ce69a
movabs r8, 0x362eebfe615ce693
xor rdx, r8
sub rcx, rdx
mov rdx, rax
sub rdx, rcx
mov qword [rsp + 0x20], rdx
movabs rcx, 0xad41411198419f58
movabs r8, 0x52bebeee67be60a6
xor rcx, r8
sub rcx, rax
mov rax, rdx
xor rax, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rax, rdx
or rcx, rcx
xor rcx, 0xffffffffffffffff
movabs rdx, 0x6d9cd506b78604ad
movabs r8, 0x92632af94879fb52
xor rdx, r8
xor rax, rdx
movabs rdx, 0xebec6a1101784d1e
movabs r8, 0x141395eefe87b2e1
xor rdx, r8
xor rcx, rdx
and rax, rcx
cmp rax, 0
jge 0x140014eda
call fcn.140008d37
jmp 0x140014f51
mov rax, qword [rsp + 0x20]
cmp rax, 0
jge 0x140014ef9
mov rcx, r8
mov rdx, r8
call fcn.14000db87
jmp 0x140014f51
mov rax, qword [rsp + 0x98]
mov r8, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rax]
call fcn.1400143d0
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x38]
mov qword [rdx], rax
mov qword [rax], rcx
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x98]
mov rax, qword [rax]
mov byte [rax + rcx + 8], 0
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa8]
mov qword [rax], rcx
mov ecx, dword [0x140241b78]
mov eax, dword [0x140241b7c]
xor eax, 0xffffffff
xor edx, edx
sub edx, 1
sub eax, edx
sub ecx, eax
mov eax, ecx
and eax, 0xb70cab64
mov edx, 0xa3ceb7b4
xor edx, 0x5c31484b
xor eax, edx
and ecx, 0xb70cab64
xor ecx, 0xffffffff
mov edx, 0x9172a740
xor edx, 0x6e8d58bf
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
or ecx, 0xaa2def6c
mov edx, 0x2aa8e7c3
xor edx, 0xd557183c
xor ecx, edx
or eax, 0xaa2def6c
xor eax, 0xffffffff
or ecx, eax
mov eax, 0x11029834
xor eax, 0xeefd67cb
xor ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x3cc7c618
or eax, edx
mov edx, 0x95c5807
xor edx, 0xf6a3a7f8
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x3cc7c618
or ecx, edx
xor eax, 0xffffffff
mov edx, 0x56bd2886
xor edx, 0xa942d779
xor ecx, edx
or eax, ecx
cmp eax, 0x422277bf
je 0x14001506d
mov eax, dword [0x140241b80]
mov edx, dword [0x140241b84]
mov r8d, eax
and r8d, edx
mov ecx, 0x284f0061
xor ecx, 0x284f0063
imul ecx, r8d
add eax, edx
sub eax, ecx
xor eax, 0x1d2adb76
or eax, 0xf00afede
xor eax, 0x9b8e50db
mov ecx, 0x5fcfd7fa
xor ecx, 0x785c2712
cmp eax, ecx
je 0x14001500c
mov ecx, 0x48ffffff
add esp, 0xb8
add rsp, 0xb8
ret
out 0x37, eax
xor dword [0x13ffb454c], eax
inc dword [rcx + 0x4a]
xchg ebp, eax
xchg rbp, rax
xchg ecx, eax
jmp 0x140014c91
push 0x3b
loopne 0x14001504f
jmp 0x14001500c