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

Disassembly:
push rbp
push r12
push rdi
push rsi
push rbx
sub rsp, 0x100
lea rbp, [rsp + 0x80]
call sym.__main
call sym.a__
call sym.b__
mov dword [rbp + 0x7c], 0
cmp dword [rbp + 0x7c], 0x2c5
jg 0x401925
mov eax, dword [rbp + 0x7c]
cdqe
lea rdx, [0x00404020]
movzx eax, byte [rax + rdx]
xor eax, 0x50
mov ecx, eax
mov eax, dword [rbp + 0x7c]
cdqe
lea rdx, [0x00404020]
mov byte [rax + rdx], cl
add dword [rbp + 0x7c], 1
jmp 0x4018f2
mov dword [rbp - 0x20], 0x40
mov dword [rbp - 0x1c], 0x3000
mov qword [rbp - 0x18], 0x2c6
mov qword [rbp - 0x10], 0
mov rax, qword gs:[0x60]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x68]
mov rax, qword [rax + 0x18]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x30]
mov rax, qword [rax + 0x30]
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x60]
mov qword [rbp - 0x48], rax
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rax
mov rax, qword [rbp + 0x58]
mov eax, dword [rax + 0x3c]
cdqe
mov rdx, qword [rbp + 0x58]
add rax, rdx
mov rax, qword [rax + 0x88]
mov qword [rbp - 0x58], rax
mov eax, dword [rbp - 0x58]
mov edx, eax
mov rax, qword [rbp + 0x60]
add rax, rdx
mov qword [rbp - 0x40], rax
mov eax, dword [rbp - 0x54]
mov dword [rbp - 0x50], eax
mov rdx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x48]
cmp rdx, rax
setne al
test al, al
je 0x401af2
mov rax, qword [rbp - 0x40]
mov eax, dword [rax + 0x18]
mov dword [rbp + 0x54], eax
mov eax, dword [rbp + 0x54]
lea edx, [rax - 1]
mov dword [rbp + 0x54], edx
test eax, eax
setne al
test al, al
je 0x401af2
movabs rax, 0x41ca976d8ff2ef59
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
shr rax, 0x20
mov r8d, eax
mov eax, dword [rbp + 0x54]
mov dword [rbp + 0x44], eax
mov rdx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
mov eax, dword [rax + 0x20]
mov r9d, eax
mov eax, dword [rbp + 0x44]
shl rax, 2
add rax, r9
add rax, rcx
mov eax, dword [rax]
mov eax, eax
add rax, rdx
mov qword [rbp + 0x38], rax
mov dword [rbp + 0x34], r8d
mov eax, dword [rbp + 0x34]
mov dword [rbp + 0x30], eax
mov rax, qword [rbp + 0x38]
lea rdx, [rax + 1]
mov qword [rbp + 0x38], rdx
movzx eax, byte [rax]
mov byte [rbp + 0x2f], al
cmp byte [rbp + 0x2f], 0
jne 0x401a65
mov eax, dword [rbp + 0x30]
movabs rbx, 0x41ca976d8ff2ef59
mov qword [rbp + 0x18], rbx
mov rdx, qword [rbp + 0x18]
jmp 0x401a84
movsx eax, byte [rbp + 0x2f]
mov edx, dword [rbp + 0x30]
mov dword [rbp + 0x28], edx
mov byte [rbp + 0x27], al
movsx eax, byte [rbp + 0x27]
xor eax, dword [rbp + 0x28]
imul eax, eax, 0x1000193
mov dword [rbp + 0x30], eax
jmp 0x401a36
cmp eax, edx
sete al
test al, al
je 0x4019cd
mov eax, dword [rbp + 0x54]
mov dword [rbp + 0x14], eax
mov rdx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
mov eax, dword [rax + 0x1c]
mov eax, eax
add rax, rdx
mov qword [rbp + 8], rax
mov rdx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
mov eax, dword [rax + 0x24]
mov eax, eax
add rax, rdx
mov qword [rbp], rax
mov rdx, qword [rbp - 0x48]
mov eax, dword [rbp + 0x14]
lea rcx, [rax + rax]
mov rax, qword [rbp]
add rax, rcx
movzx eax, word [rax]
movzx eax, ax
lea rcx, [rax*4]
mov rax, qword [rbp + 8]
add rax, rcx
mov eax, dword [rax]
mov eax, eax
add rax, rdx
mov rsi, rax
jmp 0x401b17
mov rax, qword [rbp - 0x30]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov qword [rbp - 0x30], rax
mov eax, 1
test al, al
jne 0x401960
mov esi, 0
lea rax, [rbp - 0x20]
mov rcx, rax
call method.int_std.forward_int__std::remove_reference_int_::type_
mov eax, dword [rax]
mov r12d, eax
lea rax, [rbp - 0x1c]
mov rcx, rax
call method.int_std.forward_int__std::remove_reference_int_::type_
mov eax, dword [rax]
mov edi, eax
lea rax, [rbp - 0x18]
mov rcx, rax
call method.unsigned_long_long_std.forward_unsigned_long_long__std::remove_reference_unsigned_long_long_::type_
mov rbx, qword [rax]
lea rax, [rbp - 0x10]
mov rcx, rax
call sym.decltype_nullptr__std::forward_decltype_nullptr___std::remove_reference_decltype_nullptr__::type_
mov r9d, r12d
mov r8d, edi
mov rdx, rbx
mov ecx, 0
call rsi
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0x70]
mov rcx, rax
lea rax, [0x00404020]
mov edx, 0x2c6
mov r8, rdx
mov rdx, rax
call sym.memcpy
mov rax, qword [rbp + 0x70]
call rax
mov eax, 0
add rsp, 0x100
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret