Function at 0x40c0f0
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 [0x00419438]
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 0x40c140
lea rdx, [rcx + 0xf]
neg rcx
and rdx, rcx
imul rax, qword [rax], 0x16
jo 0x40c617
add rdx, rax
jo 0x40c617
lea rcx, [0x00419420]
call fcn.004079c0
mov r8d, 0xffffc3e3
movdqa xmm0, xmmword [0x00414ef0]
mov edx, 0x6f4e10e
mov word [rax + 0x24], r8w
lea rcx, [0x004137e0]
mov rsi, rax
movups xmmword [rax], xmm0
movdqa xmm0, xmmword [0x00414f00]
lea r12, [rax + 0x10]
mov dword [rax + 0x20], 0xff410000
lea rdi, section..rdata
movups xmmword [rax + 0x10], xmm0
call fcn.00407560
mov edx, 0x7bbfe6aa
mov rcx, rax
call fcn.00407bd0
mov qword [rsp + 0x50], rdi
mov rcx, rdi
test rax, rax
je 0x40c1d7
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 [0x004188d0]
xor edx, edx
mov rcx, rax
mov rdi, rax
call qword [0x004188c8]
mov r13d, eax
call qword [0x00418910]
movsxd r8, r13d
xor edx, edx
mov rcx, rax
call qword [0x00418898]
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 [0x004188c0]
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 0x40c358
mov rdi, rax
xor r15d, r15d
mov rbp, rcx
movdqa xmm6, xmmword [0x00414f10]
mov qword [rsp + 0xf0], rbx
mov r14, r8
jmp 0x40c2b8
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.004079c0
lea rcx, [0x004137c0]
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, 0x79181d8e
call fcn.00407bd0
mov rcx, rbx
mov rdx, rax
call fcn.004029e0
test rax, rax
cmovs r14, rdi
add r15d, 1
cmp word [r13 + 6], r15w
ja 0x40c2b0
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 0x40c610
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 0x40c420
lea r13d, [rbp + 1]
test rcx, rcx
je 0x40c40a
test rbx, rbx
je 0x40c40a
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40c43c
cmp dword [r12 + 0x18], r13d
mov ebp, r13d
jle 0x40c580
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 0x40c3f0
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 [0x00418070]
test eax, eax
jne 0x40c5c0
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 [0x004188b8]
mov rdx, rbx
mov rcx, rax
call qword [0x004188b0]
lea rdx, [rax + 0x27]
jmp 0x40c4bd
add rax, 1
cmp rdx, rax
je 0x40c5b0
cmp byte [rax], 0xf
jne 0x40c4b0
cmp byte [rax + 1], 5
jne 0x40c4b0
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 0x40c5e0
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 0x40c418
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 0x40c4ca
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 0x40c474
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 0x40c5f0
jmp 0x40c55c
xor ebp, ebp
jmp 0x40c584
call fcn.00409ea0
nop
nop dword [rax]