Function at 0x1400581d0
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x1400d5058]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r13, rdx
mov r12, rcx
mov qword [rsp + 0x40], rcx
xor ebx, ebx
mov dword [rsp + 0x24], ebx
xor edx, edx
mov r8d, 0xf8
lea rcx, [rsp + 0x60]
call sub.VCRUNTIME140.dll_memset
lea rcx, [0x140000000]
lea rax, [rcx + 0xc54f0]
mov qword [rsp + 0x60], rax
lea rax, [rcx + 0xc5350]
mov qword [rsp + 0x70], rax
lea rcx, [rbp - 8]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x24], 2
xor r8d, r8d
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x60]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64____ptr64]
nop
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, [0x1400c54e8]
mov qword [rsp + rcx + 0x60], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x98]
mov dword [rsp + rcx + 0x5c], edx
lea rcx, [rsp + 0x78]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, [0x1400c5360]
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x20], rbx
mov dword [rbp - 0x18], ebx
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov byte [rbp + rcx - 0x38], Ordinal_50
lea rdx, [0x140057780]
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
xor r15b, r15b
nop dword [rax]
mov dword [rsp + 0x20], 0x323310
mov rax, qword gs:[0x60]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
mov rbx, qword [rax + 0x30]
movsxd rcx, dword [rbx + 0x3c]
mov r14d, dword [rcx + rbx + 0x88]
add r14, rbx
cmp r14, rbx
je 0x140058378
mov r11d, dword [r14 + 0x18]
test r11d, r11d
je 0x140058378
mov esi, dword [r14 + 0x20]
nop word [rax + rax]
dec r11d
lea rcx, [rsi + r11*4]
mov r9d, dword [rcx + rbx]
add r9, rbx
mov r10d, 0xdf6c1849
movzx ecx, byte [r9]
inc r9
test cl, cl
je 0x140058373
nop
movsx edx, cl
sub cl, 0x41
mov r8d, edx
or r8d, 0x20
cmp cl, 0x19
cmova r8d, edx
xor r8d, r10d
imul r10d, r8d, 0x1000193
movzx ecx, byte [r9]
lea r9, [r9 + 1]
test cl, cl
jne 0x140058340
cmp r10d, 0x3dcf1928
je 0x140058380
test r11d, r11d
jne 0x140058320
mov rax, qword [rax]
jmp 0x1400582f0
mov ecx, dword [r14 + 0x1c]
add rcx, rbx
mov eax, dword [r14 + 0x24]
add rax, rbx
movzx eax, word [rax + r11*2]
mov edx, dword [rcx + rax*4]
add rdx, rbx
lea rcx, [rsp + 0x21]
call rdx
mov ecx, eax
movzx eax, r15b
cmp eax, ecx
jge 0x1400583f1
mov edx, 2
lea rcx, [rsp + 0x48]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
mov r8, rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x70]
add rcx, rax
mov rdx, qword [r8 + 8]
call qword [r8]
movzx eax, r15b
movzx edx, byte [rax + r13]
lea rcx, [rsp + 0x70]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_int____ptr64]
inc r15b
jmp 0x1400582d0
xor eax, eax
mov qword [r12], rax
mov qword [r12 + 0x10], rax
mov qword [r12 + 0x18], reloc.WS2_32.dll_ntohs
mov byte [r12], al
mov dword [rsp + 0x24], 0xa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov ecx, dword [rbp - 0x18]
mov eax, ecx
and al, 0x22
cmp al, 2
je 0x140058445
mov rax, qword [rbp - 0x48]
mov r8, qword [rax]
test r8, r8
je 0x140058445
mov rax, qword [rbp - 0x68]
mov rdx, qword [rax]
cmp r8, qword [rbp - 0x20]
cmovb r8, qword [rbp - 0x20]
sub r8, rdx
jmp 0x140058476
test cl, 4
jne 0x14005846c
mov rax, qword [rbp - 0x50]
mov rcx, qword [rax]
test rcx, rcx
je 0x14005846c
mov rax, qword [rbp - 0x70]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x38]
movsxd r8, dword [rax]
sub r8, rdx
add r8, rcx
jmp 0x140058476
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x28]
test rdx, rdx
je 0x140058484
mov rcx, r12
call fcn.140004f40
nop
mov rcx, qword [rsp + 0x60]
movsxd rdx, dword [rcx + 4]
lea rax, [0x1400c54e8]
mov qword [rsp + rdx + 0x60], rax
mov rcx, qword [rsp + 0x60]
movsxd rdx, dword [rcx + 4]
lea r8d, [rdx - 0x98]
mov dword [rsp + rdx + 0x5c], r8d
lea rcx, [rsp + 0x78]
call fcn.140058aa0
lea rcx, [rbp - 0x80]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_iostream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp - 8]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
mov rax, r12
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.1400aa330
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret