Function at 0x140036920
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0xa8
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rcx
cmp r9, 0
cmove r9, rdx
mov rax, r9
sub rax, rdx
cmovl rdx, r9
mov qword [rsp + 0xa0], rdx
cmp rdx, 1
jle 0x140036a53
mov rax, qword [rsp + 0x90]
movabs rcx, 0x6b1fc76d8dc6b834
movabs rdx, 0x6b1fc76d8dc6b835
xor rcx, rdx
cmp rax, rcx
jge 0x1400369e5
mov rax, qword [rsp + 0x90]
movabs rcx, 0x437db112a5c71bf7
movabs rdx, 0xbc824eed5a38e408
xor rcx, rdx
mov rdx, rax
and rdx, rcx
movabs rcx, 0xfa0db967bc046c0b
movabs r8, 0x5f2469843fb93f4
xor rcx, r8
or rax, rcx
add rdx, rax
xor eax, eax
mov ecx, eax
call fcn.140013580
xor eax, eax
mov qword [rsp + 0x80], rax
jmp 0x140036f83
mov rax, qword [rsp + 0x98]
cmp byte [rax], 0x30
jne 0x140036b20
mov rax, qword [rsp + 0x90]
cmp rax, 1
ja 0x140036a2d
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffff
mov ecx, 1
call fcn.140013580
xor eax, eax
mov qword [rsp + 0x80], rax
jmp 0x140036f83
mov rax, qword [rsp + 0x98]
mov cl, byte [rax + 1]
mov eax, 2
or cl, 0x20
sub cl, 0x78
mov qword [rsp + 0x78], rax
je 0x140036c07
jmp 0x140036b20
mov rcx, qword [rsp + 0xa0]
xor eax, eax
cmp rcx, 1
mov qword [rsp + 0x78], rax
jne 0x140036c07
mov eax, dword [0x1401d6b90]
xor eax, 0x87aa6fe9
sub eax, dword [0x1401d6b94]
mov edx, 0x6deec599
xor edx, 0xa54e15f2
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, 0xc8a0d06b
add eax, ecx
or eax, 0xb7fd5794
imul eax, eax, 0x12499214
cmp eax, 0x275026c5
jbe 0x140036f93
mov rdx, qword [rsp + 0x90]
mov eax, dword [0x1401d6b98]
add eax, dword [0x1401d6b9c]
mov ecx, 0x9de8bcfe
xor ecx, 0x31e6d062
add eax, ecx
mov ecx, 0x9ece833f
xor ecx, 0xced5ac0
add eax, ecx
sub eax, 0xac0e6c9c
mov ecx, 0x3a9f030a
xor ecx, 0x5a6f6b42
sub eax, ecx
sub eax, 0xd764cfdf
mov ecx, 0x16265280
xor ecx, 0x4789d15a
cmp rdx, 0
setg dl
mov byte [rsp + 0x77], dl
cmp eax, ecx
je 0x140036aac
mov al, byte [rsp + 0x77]
test al, 1
jne 0x140036b20
jmp 0x140036b3d
mov rax, qword [rsp + 0x98]
cmp byte [rax], 0x23
sete al
and al, 1
movzx eax, al
mov qword [rsp + 0x78], rax
jmp 0x140036c07
mov eax, dword [0x1401d6ba0]
mov ecx, dword [0x1401d6ba4]
xor ecx, 0x2d832575
add eax, ecx
mov ecx, 0x506bf6c6
xor ecx, 0x507f976d
and eax, ecx
sub eax, 0xa548bb28
mov edx, 0xa8d8ebca
xor edx, 0xb0db5229
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
and ecx, 0x1803b9e3
shl ecx, 1
mov edx, 0x735213f7
xor edx, 0x6b51aa14
sub ecx, edx
sub eax, ecx
cmp eax, 0x46e22bbe
jae 0x140036f9c
mov eax, dword [0x1401d6ba8]
mov ecx, dword [0x1401d6bac]
xor ecx, 0x232a1da0
xor edx, edx
div ecx
add eax, 0xc779a636
and eax, 0x2c0abe36
mov ecx, 0xcf7f7217
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x90]
mov dword [rsp + 0x70], eax
mov eax, 0xdce6de8d
xor eax, 0xf633d910
mov dword [rsp + 0x6c], eax
add rdx, 0xffffffffffffffff
xor eax, eax
mov ecx, eax
call fcn.140013580
mov ecx, dword [rsp + 0x6c]
mov eax, dword [rsp + 0x70]
cmp eax, ecx
ja 0x140036b98
xor eax, eax
mov qword [rsp + 0x80], rax
jmp 0x140036f83
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
mov rdx, rcx
sub rdx, rax
cmovg rax, rcx
mov qword [rsp + 0x58], rax
xor eax, eax
mov qword [rsp + 0x60], rcx
mov cl, al
mov byte [rsp + 0x6a], cl
mov byte [rsp + 0x6b], al
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x60]
mov r8b, byte [rsp + 0x6a]
mov r9b, byte [rsp + 0x6b]
mov byte [rsp + 0x46], r9b
mov byte [rsp + 0x47], r8b
mov qword [rsp + 0x48], rcx
cmp rcx, rdx
mov qword [rsp + 0x50], rax
jge case.0x140036d35.10
mov eax, dword [0x1401d6bb0]
imul eax, dword [0x1401d6bb4]
imul eax, eax, 0xbe091810
and eax, 0x764c0efa
mov ecx, 0xec38374e
xor ecx, 0x58720227
sub eax, ecx
cmp eax, 0xe780bbe7
je 0x140036fa5
mov rcx, qword [rsp + 0x98]
mov eax, dword [0x1401d6bb8]
xor edx, edx
div dword [0x1401d6bbc]
mov rdx, qword [rsp + 0x48]
xor eax, 0xececf50d
or eax, 0x91b46cd7
mov r8d, 0xd6fc0ab4
xor r8d, 0x3d2c74c4
sub eax, r8d
mov cl, byte [rcx + rdx]
mov byte [rsp + 0x45], cl
cmp eax, 0x5e490bcd
je 0x140036c9d
mov rax, qword [rsp + 0x48]
mov cl, byte [rsp + 0x45]
add cl, 0xd0
movzx edx, cl
mov qword [rsp + 0x38], rdx
sub cl, 0x36
mov qword [rsp + 0x50], rax
ja case.0x140036d35.10
mov rcx, qword [rsp + 0x48]
mov dl, byte [rsp + 0x46]
mov r8b, byte [rsp + 0x47]
mov rax, qword [rsp + 0x38]
lea r9, [0x140036fb8]
movsxd rax, dword [r9 + rax*4]
add rax, r9
mov byte [rsp + 0x36], r8b
mov byte [rsp + 0x37], dl
mov qword [rsp + 0x50], rcx
jmp rax
mov cl, byte [rsp + 0x47]
mov dl, byte [rsp + 0x45]
add dl, 0xcd
add dl, 0xd0
sub dl, 0xcd
shl cl, 4
mov al, dl
and al, cl
xor al, 0xff
add cl, dl
mov dl, 0x69
xor dl, 0x68
add cl, dl
add cl, al
mov al, 1
mov byte [rsp + 0x36], cl
mov byte [rsp + 0x37], al
jmp case.0x140036d35.47
mov al, byte [rsp + 0x47]
mov dl, byte [rsp + 0x45]
add dl, 0xa9
shl al, 4
mov cl, al
or cl, dl
xor cl, 0xff
or al, dl
xor al, 0xff
or cl, al
xor cl, 0xff
mov al, 1
mov byte [rsp + 0x36], cl
mov byte [rsp + 0x37], al
jmp case.0x140036d35.47
mov al, byte [rsp + 0x47]
mov dl, byte [rsp + 0x45]
sub dl, 0xc4
add dl, 0xc9
mov cl, 0x79
xor cl, 0xbd
add dl, cl
shl al, 4
mov cl, al
and cl, dl
xor al, dl
or cl, al
mov al, 1
mov byte [rsp + 0x36], cl
mov byte [rsp + 0x37], al
mov rdx, qword [rsp + 0x48]
mov cl, byte [rsp + 0x36]
mov al, byte [rsp + 0x37]
add rdx, 1
mov qword [rsp + 0x60], rdx
mov byte [rsp + 0x6a], cl
mov byte [rsp + 0x6b], al
jmp 0x140036c34
mov cl, byte [rsp + 0x46]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov al, cl
xor al, 1
xor al, 0xff
or cl, 1
and cl, al
xor eax, eax
cmp cl, 0
mov qword [rsp + 0x80], rax
je 0x140036f83
mov edx, dword [0x1401d6bc0]
mov eax, dword [0x1401d6bc4]
mov ecx, 0xd1839f8e
xor ecx, 0x678ece2c
xor eax, ecx
mov ecx, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, eax
xor eax, 0xffffffff
and ecx, eax
xor ecx, 0xffffffff
sub ecx, 0x8929455e
mov eax, 0xac8a9ab2
xor eax, 0x7f23adf0
sub ecx, eax
add ecx, 0x8929455e
sub ecx, 0x4c86037c
mov edx, 0x5e2ea948
xor edx, 0xa1d156b7
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, 0x88f6a66a
xor eax, 0xffffffff
mov edx, 0x88f6a66a
and edx, 0x88f6a66a
xor edx, 0xffffffff
mov r8d, 0xb2c451e5
xor r8d, 0x4d3bae1a
xor ecx, r8d
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
mov ecx, 0x2cee5bd4
xor ecx, 0xd311a42b
xor eax, ecx
cmp eax, 0x43b9386e
je 0x140036fae
mov rdx, qword [rsp + 0x88]
mov r8b, byte [rsp + 0x47]
mov ecx, dword [0x1401d6bc8]
sub ecx, dword [0x1401d6bcc]
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0xd4cd6d28
mov r10d, 0xffffffff
xor r10d, 0xd4cd6d28
and r9d, r10d
or eax, r9d
xor eax, 0xffffffff
or ecx, 0xd4cd6d28
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0xffffffff
mov r9d, 0x359beb50
xor r9d, 0x710f4c9e
and ecx, r9d
mov r9d, 0xed55fe8d
xor r9d, 0xa9c15943
mov r10d, 0xb92b7400
xor r10d, 0x46d48bff
xor r9d, r10d
and eax, r9d
sub eax, ecx
mov r9d, 0xe4bec152
xor r9d, 0xb340b327
mov ecx, eax
xor ecx, r9d
xor ecx, 0xffffffff
or eax, 0x57fe7275
and eax, ecx
mov ecx, 0xb168325
xor ecx, 0x2f888c5
mov byte [rdx], r8b
cmp eax, ecx
jae 0x140036fae
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x80], rax
jmp 0x140036f83
mov rax, qword [rsp + 0x80]
add rsp, 0xa8
ret
call qword [rdi - 0x40]
shr cl, 1
adc bl, bh
invalid
adc al, 0xfe
cmp eax, 0xfbf3e9da
invalid
not bl
pop rbp
jmp 0x140036c9d
jle 0x140036fa7
invalid