Function at 0x140163620
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0xc8
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x28], rcx
mov eax, 0x10
mov qword [rbp - 0x20], rax
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp - 0x20]
mov rcx, rsp
mov qword [rbp - 0x18], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x10], rax
sub rsp, 0x20
call fcn.140163bef
add rsp, 0x20
mov qword [rbp], rax
add rax, 0x60
mov qword [rbp - 8], rax
sub rsp, 0x20
call fcn.14012e7d0
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax + 0x60], 0
jne 0x140163aa0
movabs rcx, 0xceb20face0e109a7
movabs rax, 0xceb20face0e1098f
xor rcx, rax
movabs rdx, 0x375acdd45fb7c383
movabs rax, 0x375acdd45fb7c38b
xor rdx, rax
sub rsp, 0x20
call fcn.14001217d
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp - 0x28]
mov rcx, qword [rax]
add rcx, 0x20
sub rsp, 0x20
call fcn.140154749
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140163aa0
mov rcx, qword [rbp - 0x28]
mov rax, qword [0x1401ddaf8]
mov rdx, qword [rax]
mov qword [rbp + 0x38], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x40], rax
lea rdx, [rbp + 0x38]
sub rsp, 0x20
call fcn.140159150
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140163aa0
mov rcx, qword [rbp - 0x28]
mov rax, qword [0x1401dda18]
mov rdx, qword [rax]
mov qword [rbp + 0x28], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x30], rax
lea rdx, [rbp + 0x28]
sub rsp, 0x20
call fcn.140159150
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140163aa0
mov ecx, 0x3de
sub rsp, 0x20
call fcn.140062d70
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 8]
mov dword [rbp - 0x2c], ecx
cmp byte [rax], 0
jne 0x140163aa0
mov eax, dword [0x1401d10f8]
mov edx, dword [0x1401d10fc]
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, edx
and eax, ecx
mov ecx, 0xe4dc704a
xor ecx, 0xa705b903
and ecx, eax
mov edx, 0xb739fa9c
xor edx, 0x48c60563
xor ecx, edx
add eax, 0x43d9c949
add eax, 1
add eax, ecx
mov ecx, 0xf22d3b74
xor ecx, 0xd74e5d8a
add eax, ecx
and eax, 0xe42c7fb7
cmp eax, 0xc8b50f28
jb 0x140163bcb
mov eax, dword [0x1401d1100]
xor edx, edx
div dword [0x1401d1104]
mov ecx, 0x1ba673ef
xor ecx, 0x3b33b1b0
xor eax, ecx
mov ecx, 0x3747c779
xor ecx, 0xf89e2231
add eax, ecx
mov ecx, 0xc55e58cc
xor ecx, 0xe75098a2
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp - 0x28]
mov dword [rbp - 0x44], ecx
mov rax, qword [rax]
mov rdx, qword [rax + 0x20]
lea rcx, [rbp + 0x18]
sub rsp, 0x20
call fcn.14007673a
mov rcx, qword [rbp - 8]
mov eax, dword [rbp - 0x44]
add rsp, 0x20
mov rdx, qword [rbp + 0x18]
mov qword [rbp - 0x40], rdx
mov rdx, qword [rbp + 0x20]
mov qword [rbp - 0x38], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x2d], cl
cmp eax, 0x44289c59
jae 0x1401637e3
mov al, byte [rbp - 0x2d]
test al, 1
jne 0x140163876
jmp 0x140163aa0
mov rax, qword [rbp - 0x28]
mov rdx, qword [rax]
add rdx, 0x18
lea rcx, [rbp + 8]
sub rsp, 0x20
call fcn.140115220
mov rax, qword [rbp - 8]
add rsp, 0x20
mov rcx, qword [rbp + 8]
mov qword [rbp - 0x58], rcx
mov rcx, qword [rbp + 0x10]
mov qword [rbp - 0x50], rcx
cmp byte [rax], 0
jne 0x140163aa0
mov eax, dword [0x1401d1108]
xor eax, 0xc8226701
mov ecx, dword [0x1401d110c]
xor ecx, 0x2db6059
add eax, ecx
sub eax, 0xe461f0d4
or eax, eax
xor eax, 0xffffffff
mov ecx, 0xa56c5e72
xor ecx, 0x700cfa4e
mov edx, 0xbf5f8b0b
xor edx, 0x6a3f2f37
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0xaae994ef
xor edx, 0x55166b10
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x3079d7b4
xor ecx, 0x616d808d
add eax, ecx
cmp eax, 0xfaac82ea
je 0x140163bd4
mov r8, qword [rbp - 0x10]
mov ecx, dword [rbp - 0x2c]
mov r9, qword [rbp - 0x58]
mov r10, qword [rbp - 0x38]
mov r11, qword [rbp - 0x40]
mov eax, dword [0x1401d1110]
xor edx, edx
div dword [0x1401d1114]
xor eax, 0xd6ca6ed8
mov esi, 0x466074fa
xor esi, 0x3bd134b7
mov edx, eax
xor edx, esi
xor edx, 0xffffffff
or eax, 0x7db1404d
and eax, edx
mov esi, 0x727fa35b
xor edx, edx
div esi
mov rdx, qword [rbp - 0x18]
mov esi, eax
mov rax, qword [rbp - 0x50]
mov dword [rbp - 0x60], esi
mov esi, 0x38ec44bd
xor esi, 0x86ca3f34
mov dword [rbp - 0x64], esi
mov qword [rdx], r11
mov qword [rdx + 8], r10
mov qword [r8], r9
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.140093740
mov rdx, qword [rbp - 8]
mov ecx, dword [rbp - 0x64]
mov eax, dword [rbp - 0x60]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x59], dl
cmp eax, ecx
je 0x140163917
mov al, byte [rbp - 0x59]
test al, 1
jne 0x1401639c0
jmp 0x140163aa0
mov eax, dword [str._M_x]
add eax, dword [0x1401d111c]
mov ecx, 0x516a922d
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, eax
mov eax, 0x4268c039
xor eax, 0x4268c039
mov edx, 0x175886a4
xor edx, 0x41fd138a
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
xor eax, 0xe81bfa05
mov ecx, 0x45f9baf5
xor ecx, 0xdd134a40
cmp eax, ecx
jbe 0x140163bdd
mov eax, dword [0x1401d1120]
xor eax, dword [0x1401d1124]
or eax, 0x3957e13e
add eax, 0x97910b50
mov r8d, 0xffffffff
xor r8d, 0x75475aa3
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x75475aa3
or eax, 0x75475aa3
imul eax, edx
add eax, ecx
mov dword [rbp - 0x6c], eax
mov eax, 0xf5e6edb1
xor eax, 0x6e8c4515
mov dword [rbp - 0x70], eax
mov ecx, 0x30
sub rsp, 0x20
call fcn.140062fea
mov rdx, qword [rbp - 8]
mov ecx, dword [rbp - 0x70]
mov eax, dword [rbp - 0x6c]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x65], dl
cmp eax, ecx
je 0x140163a0e
mov al, byte [rbp - 0x65]
test al, 1
jne 0x140163b21
jmp 0x140163aa0
sub rsp, 0x20
call fcn.1401635b0
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov ax, word [rax + 0x12]
mov cx, 0x3c13
xor cx, 0x3c12
cmp ax, cx
jle 0x140163b21
mov rax, qword [rbp - 0x78]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xd4054986
jne 0x140163b21
mov rax, qword [rbp - 8]
mov cl, 0x6e
xor cl, 0x6e
mov byte [rax], cl
sub rsp, 0x20
call fcn.1401635c2
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.140091980
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140163b21
sub rsp, 0x20
call fcn.1401635ef
add rsp, 0x20
mov eax, dword [0x1401d1128]
xor eax, 0x25fa7c03
mov edx, dword [0x1401d112c]
mov ecx, 0x3746b2fb
xor ecx, 0x3746b2fb
sub ecx, edx
sub eax, ecx
add eax, 0xab2c33af
add eax, 0xc69807c5
mov ecx, 0x26483830
xor ecx, 0x9f06560f
and eax, ecx
cmp eax, 0xa926a82c
je 0x140163be6
mov ecx, dword [0x1401d1130]
mov eax, dword [0x1401d1134]
mov edx, 0x6c12d040
xor edx, 0x35f7aeb9
xor eax, edx
and ecx, eax
mov edx, 0xffffffff
xor edx, 0x44cd644a
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, eax
xor ecx, 0x16a4a67f
xor ecx, 0xffffffff
and ecx, 0x16a4a67f
shl ecx, 1
sub ecx, 0x16a4a67f
sub eax, ecx
mov ecx, 0xb844e31c
xor ecx, 0xfcb6c8c2
imul eax, ecx
cmp eax, 0xcc8fe0ad
jb 0x140163be6
lea rsp, [rbp + 0x48]
pop rsi
pop rbp
ret
test al, 0x2c
xlatb
jmp 0x1401637e3
sti
sub ebx, dword [rcx]
mov al, 0xe9
cmp bh, ch
invalid
sbb dh, byte [rcx + 0x28e95641]
invalid
or dword [rsi - 0x5e], edx
ret