Function at 0x4089a0
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, 0x98
movaps xmmword [rsp + 0x80], xmm6
mov rdi, rcx
mov rbx, rdx
mov edx, 0x7247b3ac
mov dword [rsp + 0x7c], 0
lea rcx, [0x00413900]
call fcn.004079b0
mov edx, 0x1296db24
mov rcx, rax
call fcn.004081e0
lea rcx, [section..rdata]
test rax, rax
je 0x4089ff
cmp qword [rax], 0
lea rdx, [rax + 0x10]
cmovne rcx, rdx
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], 0
mov edx, 0x80000000
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call qword [0x00461070]
xor edx, edx
mov rbp, rax
mov rcx, rax
call qword [0x00461068]
mov edx, dword [0x004627a0]
mov r12d, eax
test edx, edx
je 0x408d29
call qword [0x004618e0]
movsxd r8, r12d
xor edx, edx
mov rcx, rax
call qword [0x004626f8]
mov qword [rsp + 0x50], rax
mov rsi, rax
mov r8d, r12d
mov rdx, rsi
mov rcx, rbp
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x7c]
call qword [0x00461058]
movsxd r11, dword [rsi + 0x3c]
lea r14, [rsi + r11]
mov eax, dword [r14 + 0x88]
lea r13, [r14 + 0x18]
movzx r8d, word [r14 + 0x14]
cmp word [r14 + 6], 0
mov dword [rsp + 0x40], eax
lea rax, [r13 + r8]
mov qword [rsp + 0x58], rax
je 0x408d82
lea rbp, [r13 + r8]
xor r12d, r12d
movdqa xmm6, xmmword [0x0045dfd0]
mov rsi, r8
jmp 0x408ad8
mov rbp, rsi
movzx esi, word [r14 + 0x14]
lea eax, [r12 + r12*4]
add rsi, r13
mov edx, 0x19
lea rcx, [0x00412020]
shl eax, 3
movzx eax, ax
add rsi, rax
call fcn.00407e10
lea rcx, [0x004138e0]
movups xmmword [rax], xmm6
movzx edx, byte [rsi]
mov r15, rax
mov byte [rax + 0x10], dl
movzx edx, byte [rsi + 1]
mov byte [rax + 0x11], dl
movzx edx, byte [rsi + 2]
mov byte [rax + 0x12], dl
movzx edx, byte [rsi + 3]
mov byte [rax + 0x13], dl
movzx edx, byte [rsi + 4]
mov byte [rax + 0x14], dl
movzx edx, byte [rsi + 5]
mov byte [rax + 0x15], dl
movzx edx, byte [rsi + 6]
mov byte [rax + 0x16], dl
movzx edx, byte [rsi + 7]
mov byte [rax + 0x17], dl
mov edx, 0x12dfd7c4
call fcn.004079b0
mov edx, 0x677af9ac
mov rcx, rax
call fcn.004081e0
mov rcx, r15
mov rdx, rax
call fcn.00402a30
test rax, rax
cmovs rsi, rbp
add r12d, 1
cmp word [r14 + 6], r12w
ja 0x408ad0
mov r11, qword [rsp + 0x50]
movsxd rbp, dword [rsp + 0x40]
movsxd rdx, dword [rsi + 0xc]
movsxd rax, dword [rsi + 0x14]
add rbp, r11
sub rbp, rdx
lea rcx, [rbp + rax]
movsxd r12, dword [rcx + 0x1c]
mov qword [rsp + 0x60], rcx
movsxd r9, dword [rcx + 0x20]
add r12, r11
sub r12, rdx
add r9, r11
lea r8, [r12 + rax]
mov r12d, dword [rcx + 0x18]
sub r9, rdx
lea rbp, [r9 + rax]
mov qword [rsp + 0x48], r8
test r12d, r12d
jle 0x408d75
mov ecx, dword [0x004627a0]
lea r13, [rbx + 0x10]
xor r14d, r14d
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x40], r13
mov r13, rdi
mov edi, r12d
mov r12, rsi
mov rsi, qword [rsp + 0x50]
mov dword [rsp + 0x6c], ecx
jmp 0x408c30
lea r15d, [r14 + 1]
test rcx, rcx
je 0x408c1a
test r13, r13
je 0x408c1a
mov rdx, r13
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x408c46
cmp r15d, edi
mov r14d, r15d
jge 0x408ce5
movsxd rdx, dword [r12 + 0xc]
movsxd rax, dword [r12 + 0x14]
movsxd rcx, r14d
movsxd rcx, dword [rbp + rcx*4]
add rcx, rsi
sub rcx, rdx
add rcx, rax
cmp r13, rcx
jne 0x408c00
mov rdi, qword [rsp + 0x48]
lea r15d, [r14 + 1]
movsxd rax, r15d
mov edx, dword [rdi + rax*4]
mov rax, qword [rsp + 0x58]
movsxd r10, dword [rax + 0xc]
movsxd rcx, dword [rax + 0x14]
mov eax, dword [rsp + 0x6c]
test eax, eax
jne 0x408d10
movsxd rax, edx
add rax, rsi
sub rax, r10
add rax, rcx
cmp qword [rsp + 0x40], rax
lea rdx, [rax + 0x10]
jbe 0x408c8e
cmp rbx, rdx
jb 0x408d4a
movdqu xmm0, xmmword [rax]
mov rdi, qword [rsp + 0x40]
movups xmmword [rbx], xmm0
movzx edx, byte [rdx]
mov byte [rdi], dl
movzx edx, byte [rax + 0x11]
mov byte [rbx + 0x11], dl
movzx edx, byte [rax + 0x12]
mov byte [rbx + 0x12], dl
movzx edx, byte [rax + 0x13]
mov byte [rbx + 0x13], dl
movzx edx, byte [rax + 0x14]
mov byte [rbx + 0x14], dl
movzx edx, byte [rax + 0x15]
mov byte [rbx + 0x15], dl
movzx eax, byte [rax + 0x16]
mov byte [rbx + 0x16], al
mov rax, qword [rsp + 0x60]
mov dword [rsp + 0x68], 1
mov r14d, r15d
mov edi, dword [rax + 0x18]
cmp r15d, edi
jl 0x408c26
mov eax, dword [rsp + 0x68]
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
add r14d, 8
movsxd r14, r14d
movsxd rax, dword [rdi + r14*4]
add rax, rsi
sub rax, r10
add rax, rcx
jmp 0x408c7a
call qword [0x00461088]
movsxd r8, r12d
xor edx, edx
mov rcx, rax
call qword [0x00461060]
mov qword [rsp + 0x50], rax
mov rsi, rax
jmp 0x408a67
lea rcx, [rax + 0x17]
mov r10, rbx
sub r10, rax
nop
nop word cs:[rax + rax]
movzx edx, byte [rax]
mov byte [r10 + rax], dl
add rax, 1
cmp rax, rcx
jne 0x408d60
jmp 0x408cc9
mov dword [rsp + 0x68], 0
jmp 0x408ce5
mov rsi, rax
jmp 0x408b75