Function at 0x40be20
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
mov rax, qword [0x00419a58]
mov rbx, rcx
mov rcx, qword [rax + 8]
mov qword [rsp + 0xf8], rdx
mov edx, 0x10
mov dword [rsp + 0x84], 0
test rcx, rcx
je 0x40be70
lea rdx, [rcx + 0xf]
neg rcx
and rdx, rcx
imul rax, qword [rax], 0x16
jo 0x40c347
add rdx, rax
jo 0x40c347
lea rcx, [0x00419a40]
call fcn.00407980
mov r8d, 0xffffc3e3
movdqa xmm0, xmmword [0x00414eb0]
mov edx, 0x1bc2d960
mov word [rax + 0x24], r8w
lea rcx, [0x00413940]
mov rsi, rax
movups xmmword [rax], xmm0
movdqa xmm0, xmmword [0x00414ec0]
lea r12, [rax + 0x10]
mov dword [rax + 0x20], 0xff410000
lea rdi, section..rdata
movups xmmword [rax + 0x10], xmm0
call fcn.00407510
mov edx, 0x6b09a120
mov rcx, rax
call fcn.00407b00
mov qword [rsp + 0x50], rdi
mov rcx, rdi
test rax, rax
je 0x40bf07
lea rdx, [rax + 0x10]
cmp qword [rax], 0
cmove rdx, qword [rsp + 0x50]
mov qword [rsp + 0x50], rdx
mov rcx, rdx
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call qword [0x00418910]
xor edx, edx
mov rcx, rax
mov rdi, rax
call qword [0x00418908]
mov r13d, eax
call qword [0x00418900]
movsxd r8, r13d
xor edx, edx
mov rcx, rax
call qword [0x004188b8]
mov r8d, r13d
mov rcx, rdi
mov qword [rsp + 0x20], 0
mov r15, rax
mov qword [rsp + 0x40], rax
mov rdx, rax
lea r9, [rsp + 0x84]
call qword [0x004188f8]
movsxd r11, dword [r15 + 0x3c]
lea r13, [r15 + r11]
mov eax, dword [r13 + 0x88]
movzx r8d, word [r13 + 0x14]
mov dword [rsp + 0x48], eax
lea rax, [r13 + 0x18]
mov rcx, rax
add rax, r8
cmp word [r13 + 6], 0
mov qword [rsp + 0x58], rax
mov r14, rax
je 0x40c088
mov rdi, rax
xor r15d, r15d
mov rbp, rcx
movdqa xmm6, xmmword [0x00414ed0]
mov qword [rsp + 0xf0], rbx
mov r14, r8
jmp 0x40bfe8
mov rdi, r14
movzx r14d, word [r13 + 0x14]
lea eax, [r15 + r15*4]
add r14, rbp
mov edx, 0x19
lea rcx, [0x00412020]
shl eax, 3
movzx eax, ax
add r14, rax
call fcn.00407980
lea rcx, [0x00413920]
movups xmmword [rax], xmm6
movzx edx, byte [r14]
mov rbx, rax
mov byte [rax + 0x10], dl
movzx edx, byte [r14 + 1]
mov byte [rax + 0x11], dl
movzx edx, byte [r14 + 2]
mov byte [rax + 0x12], dl
movzx edx, byte [r14 + 3]
mov byte [rax + 0x13], dl
movzx edx, byte [r14 + 4]
mov byte [rax + 0x14], dl
movzx edx, byte [r14 + 5]
mov byte [rax + 0x15], dl
movzx edx, byte [r14 + 6]
mov byte [rax + 0x16], dl
movzx edx, byte [r14 + 7]
mov byte [rax + 0x17], dl
mov edx, 0x2028a560
call fcn.00407b00
mov rcx, rbx
mov rdx, rax
call fcn.00402bf0
test rax, rax
cmovs r14, rdi
add r15d, 1
cmp word [r13 + 6], r15w
ja 0x40bfe0
mov rbx, qword [rsp + 0xf0]
mov r9, qword [rsp + 0x40]
movsxd rdi, dword [rsp + 0x48]
movsxd rdx, dword [r14 + 0xc]
movsxd rax, dword [r14 + 0x14]
add rdi, r9
sub rdi, rdx
add rdi, rax
movsxd rcx, dword [rdi + 0x20]
add rcx, r9
sub rcx, rdx
add rcx, rax
mov qword [rsp + 0x48], rcx
movsxd rcx, dword [rdi + 0x1c]
add rcx, r9
sub rcx, rdx
add rcx, rax
mov qword [rsp + 0x70], rcx
mov ecx, dword [rdi + 0x18]
test ecx, ecx
jle 0x40c340
mov r8, qword [rsp + 0xf8]
lea rcx, [r12 + 0x10]
mov r15, r12
mov qword [rsp + 0x68], rcx
add r8, 0x10
cmp r12, r8
mov qword [rsp + 0x60], r8
mov r12, rdi
mov rdi, rsi
setae r9b
cmp qword [rsp + 0xf8], rcx
mov rsi, qword [rsp + 0xf8]
setae cl
xor ebp, ebp
or r9d, ecx
mov dword [rsp + 0x78], ebp
mov byte [rsp + 0x7f], r9b
jmp 0x40c150
lea r13d, [rbp + 1]
test rcx, rcx
je 0x40c13a
test rbx, rbx
je 0x40c13a
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40c16c
cmp dword [r12 + 0x18], r13d
mov ebp, r13d
jle 0x40c2b0
movsxd rdx, dword [r14 + 0xc]
movsxd rax, dword [r14 + 0x14]
mov r10, qword [rsp + 0x48]
movsxd rcx, ebp
movsxd rcx, dword [r10 + rcx*4]
add rcx, qword [rsp + 0x40]
sub rcx, rdx
add rcx, rax
cmp rbx, rcx
jne 0x40c120
mov rcx, qword [rsp + 0x70]
lea r13d, [rbp + 1]
movsxd rax, r13d
mov edx, dword [rcx + rax*4]
mov rax, qword [rsp + 0x58]
movsxd r9, dword [rax + 0xc]
movsxd rcx, dword [rax + 0x14]
mov eax, dword [0x00418060]
test eax, eax
jne 0x40c2f0
movsxd rax, edx
add rax, qword [rsp + 0x40]
sub rax, r9
add rax, rcx
movzx edx, byte [rax + 4]
mov rcx, qword [rsp + 0x50]
mov byte [rdi + 0x14], dl
movzx edx, byte [rax + 5]
mov byte [rdi + 0x15], dl
movzx edx, byte [rax + 6]
mov byte [rdi + 0x16], dl
movzx eax, byte [rax + 7]
mov byte [rdi + 0x17], al
call qword [0x004188f0]
mov rdx, rbx
mov rcx, rax
call qword [0x004188e8]
lea rdx, [rax + 0x27]
jmp 0x40c1ed
add rax, 1
cmp rdx, rax
je 0x40c2e0
cmp byte [rax], 0xf
jne 0x40c1e0
cmp byte [rax + 1], 5
jne 0x40c1e0
mov ebp, eax
mov r11d, eax
mov r10d, eax
mov r9, rax
mov byte [rdi + 0x1a], bpl
mov r8, rax
mov rcx, rax
shr r11d, 0x10
mov qword [rsp + 0x88], rax
shr r10d, 0x18
shr r9, 0x20
movzx ebp, ah
mov byte [rdi + 0x1c], r11b
shr r8, 0x28
shr rcx, 0x30
mov byte [rdi + 0x1b], bpl
shr rax, 0x38
cmp byte [rsp + 0x7f], 0
mov byte [rdi + 0x1d], r10b
mov byte [rdi + 0x1e], r9b
mov byte [rdi + 0x1f], r8b
mov byte [rdi + 0x20], cl
mov byte [rdi + 0x21], al
je 0x40c310
mov rax, qword [rsp + 0x68]
movdqu xmm1, xmmword [rdi + 0x10]
mov rcx, qword [rsp + 0x60]
movups xmmword [rsi], xmm1
movzx eax, byte [rax]
mov byte [rcx], al
movzx eax, byte [r15 + 0x11]
mov byte [rsi + 0x11], al
movzx eax, byte [r15 + 0x12]
mov byte [rsi + 0x12], al
movzx eax, byte [r15 + 0x13]
mov byte [rsi + 0x13], al
movzx eax, byte [r15 + 0x14]
mov byte [rsi + 0x14], al
cmp dword [r12 + 0x18], r13d
mov dword [rsp + 0x78], 1
mov ebp, r13d
jg 0x40c148
nop dword [rax]
nop word cs:[rax + rax]
mov ebp, dword [rsp + 0x78]
movaps xmm6, xmmword [rsp + 0x90]
mov eax, ebp
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor ebp, ebp
xor eax, eax
jmp 0x40c1fa
mov rax, qword [rsp + 0x70]
lea r8d, [rbp + 8]
movsxd r8, r8d
movsxd rax, dword [rax + r8*4]
add rax, qword [rsp + 0x40]
sub rax, r9
add rax, rcx
jmp 0x40c1a4
xor eax, eax
nop dword [rax]
nop word cs:[rax + rax]
movzx edx, byte [rdi + rax + 0x10]
mov byte [rsi + rax], dl
add rax, 1
cmp rax, 0x15
jne 0x40c320
jmp 0x40c28c
xor ebp, ebp
jmp 0x40c2b4
call fcn.0040a150
nop
nop dword [rax]