Function at 0x1400541e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xd0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], r8
mov dword [rbp + 0x44], edx
mov qword [rbp + 0x48], rcx
mov eax, dword [0x140103aec]
imul eax, dword [0x140103af0]
or eax, 0xe73abbf7
add eax, 0x828f7af1
or eax, 0x3f1ec8a7
cmp eax, 0xbcfeaafa
ja 0x140054518
mov r8, qword [rbp + 0x38]
mov r9d, dword [rbp + 0x44]
mov r10, qword [rbp + 0x48]
mov eax, dword [0x140103af4]
mov ecx, dword [0x140103af8]
or eax, ecx
add eax, 0x9fb2d193
xor eax, 0x4d1afb50
mov dword [rbp + 0x30], eax
mov eax, 0x10
mov qword [rbp + 0x18], rax
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rdx, rsp
mov qword [rbp + 0x20], rdx
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp + 0x20]
mov rdx, rsp
mov qword [rbp + 0x28], rdx
mov qword [rcx], r10
mov dword [rax], r9d
mov qword [rdx], r8
mov rcx, qword [rcx]
movsxd rdx, dword [rax]
lea rax, [0x140103090]
mov r8, qword [rax + rdx*8]
sub rsp, 0x20
lea rdx, str._t_a_f_ae
call fcn.1400546b0
mov rcx, qword [rbp + 0x28]
add rsp, 0x20
mov eax, dword [rbp + 0x30]
mov rcx, qword [rcx]
cmp qword [rcx + 0x118], 0
setne cl
mov byte [rbp + 0x37], cl
cmp eax, 0x19bc2094
jb 0x140054222
mov al, byte [rbp + 0x37]
test al, 1
jne 0x1400542ec
jmp 0x140054397
mov eax, dword [0x140103afc]
imul eax, dword [0x140103b00]
mov ecx, 0x2dca0a1d
xor edx, edx
div ecx
mov ecx, 0x8b2a5e38
xor edx, edx
div ecx
imul eax, eax, 0xe4913a2c
cmp eax, 0xde994471
ja 0x140054591
mov rax, qword [rbp + 0x10]
mov ecx, dword [0x140103b04]
and ecx, dword [0x140103b08]
sub ecx, 0x546a2eda
imul ecx, ecx, 0xbffc88d3
or ecx, 0x7a1cdb21
mov dword [rbp + 0xc], ecx
mov rcx, qword [rax]
mov qword [rbp], rcx
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_strlen
mov rcx, qword [rbp]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x28]
add rcx, rdx
mov rax, qword [rax]
mov r8, qword [rax + 0x118]
sub rsp, 0x20
lea rdx, [0x1401030be]
call fcn.1400546b0
add rsp, 0x20
mov eax, dword [rbp + 0xc]
cmp eax, 0x9fead848
je 0x140054591
jmp 0x140054450
mov eax, dword [0x140103b0c]
sub eax, dword [0x140103b10]
sub eax, 0x752ef328
add eax, 0x4f005f5f
or eax, 0xad1172c1
cmp eax, 0x9302c7a2
jbe 0x1400545dd
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x28]
mov edx, dword [0x140103b14]
add edx, dword [0x140103b18]
and edx, 0x5fa99ae9
add edx, 0x49266142
imul edx, edx, 0x7e549a80
mov dword [rbp - 4], edx
mov rdx, qword [rcx]
movsx edx, word [rdx + 0x1c0]
mov dword [rbp - 0x14], edx
mov rcx, qword [rcx]
add rcx, 0x1c0
add rcx, 4
mov qword [rbp - 0x10], rcx
mov rcx, qword [rax]
mov qword [rbp - 0x20], rcx
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_strlen
mov r8, qword [rbp - 0x20]
mov ecx, dword [rbp - 0x14]
mov rdx, qword [rbp - 0x10]
add rsp, 0x20
add r8, rax
mov r9d, 0x40
sub rsp, 0x20
call fcn.14006a500
add rsp, 0x20
mov eax, dword [rbp - 4]
cmp eax, 0x41b46806
jbe 0x1400545dd
jmp 0x140054450
mov eax, dword [0x140103b1c]
imul eax, dword [0x140103b20]
mov ecx, 0xa2f4ab53
xor edx, edx
div ecx
mov ecx, 0x65e22b16
xor edx, edx
div ecx
sub eax, 0xa3b2184f
cmp eax, 0x18a153
jb 0x140054641
mov eax, dword [0x140103b24]
sub eax, dword [0x140103b28]
and eax, 0x42f16507
or eax, 0x3ef07e3c
mov ecx, 0xde6f732a
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp + 0x10]
mov dword [rbp - 0x24], ecx
mov rcx, qword [rax]
mov qword [rbp - 0x38], rcx
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_strlen
mov rcx, qword [rbp - 0x38]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x28]
add rcx, rdx
mov qword [rbp - 0x30], rcx
mov rax, qword [rax]
mov cx, word [rax + 0x1c2]
sub rsp, 0x20
call qword [sym.imp.WS2_32.dll_ntohs]
mov rcx, qword [rbp - 0x30]
add rsp, 0x20
movzx r8d, ax
sub rsp, 0x20
lea rdx, [0x1401030c5]
call fcn.1400546b0
add rsp, 0x20
mov eax, dword [rbp - 0x24]
cmp eax, 0xe1ee3a04
jae 0x140054641
lea rsp, [rbp + 0x50]
pop rbp
ret
mov r8, qword [rbp + 0x38]
mov r9d, dword [rbp + 0x44]
mov r10, qword [rbp + 0x48]
mov eax, 0x10
mov qword [rbp - 0x48], rax
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rcx, rsp
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rdx, rsp
mov qword [rbp - 0x40], rdx
call fcn.1400ec140
sub rsp, rax
mov rax, qword [rbp - 0x40]
mov rdx, rsp
mov qword [rcx], r10
mov dword [rax], r9d
mov qword [rdx], r8
mov rcx, qword [rcx]
movsxd rdx, dword [rax]
lea rax, [0x140103090]
mov r8, qword [rax + rdx*8]
sub rsp, 0x20
lea rdx, str._t_a_f_ae
call fcn.1400546b0
add rsp, 0x20
jmp 0x140054222
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp - 0x50], rcx
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_strlen
mov rcx, qword [rbp - 0x50]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x28]
add rcx, rdx
mov rax, qword [rax]
mov r8, qword [rax + 0x118]
sub rsp, 0x20
lea rdx, [0x1401030be]
call fcn.1400546b0
add rsp, 0x20
jmp 0x14005431c
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x28]
mov rdx, qword [rcx]
movsx edx, word [rdx + 0x1c0]
mov dword [rbp - 0x5c], edx
mov rcx, qword [rcx]
add rcx, 0x1c0
add rcx, 4
mov qword [rbp - 0x58], rcx
mov rcx, qword [rax]
mov qword [rbp - 0x68], rcx
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_strlen
mov r8, qword [rbp - 0x68]
mov ecx, dword [rbp - 0x5c]
mov rdx, qword [rbp - 0x58]
add rsp, 0x20
add r8, rax
mov r9d, 0x40
sub rsp, 0x20
call fcn.14006a500
add rsp, 0x20
jmp 0x1400543bd
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax]
mov qword [rbp - 0x78], rcx
mov rcx, qword [rax]
sub rsp, 0x20
call sub.msvcrt.dll_strlen
mov rcx, qword [rbp - 0x78]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x28]
add rcx, rdx
mov qword [rbp - 0x70], rcx
mov rax, qword [rax]
mov cx, word [rax + 0x1c2]
sub rsp, 0x20
call qword [sym.imp.WS2_32.dll_ntohs]
mov rcx, qword [rbp - 0x70]
add rsp, 0x20
movzx r8d, ax
sub rsp, 0x20
lea rdx, [0x1401030c5]
call fcn.1400546b0
add rsp, 0x20
jmp 0x14005447f