Function at 0x40abe0
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 qword [rsp + 0xf0], rcx
mov rcx, qword [0x0046e800]
mov qword [rsp + 0xf8], rdx
mov edx, 0x16
mov dword [rsp + 0x84], 0
call fcn.0040ab50
mov r8d, 0xffffc3e3
movdqa xmm0, xmmword [0x00427ee0]
mov edx, 0x5edd62cc
mov word [rax + 0x24], r8w
lea rcx, [0x00427ac0]
mov rdi, rax
movups xmmword [rax + 0x10], xmm0
lea r12, [rax + 0x10]
mov dword [rax + 0x20], 0xff410000
call fcn.00403ad0
mov edx, 0x53657c44
mov rcx, rax
call fcn.00403d80
mov rcx, rax
call fcn.00402950
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov rcx, rax
mov rax, qword [0x0046e6b0]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], pe_nt_image_headers64
mov dword [rsp + 0x20], 3
call qword [rax]
xor edx, edx
mov rcx, rax
mov rbx, rax
mov rax, qword [0x0046e6d0]
call qword [rax]
mov ebp, eax
mov rax, qword [0x0046ebf0]
mov r9d, dword [rax]
test r9d, r9d
je 0x40b0bb
mov rax, qword [0x0046e570]
call qword [rax]
movsxd r8, ebp
xor edx, edx
mov rcx, rax
mov rax, qword [0x0046e560]
call qword [rax]
mov qword [rsp + 0x40], rax
mov rsi, rax
mov rax, qword [0x0046e740]
mov rdx, rsi
mov rcx, rbx
mov r8d, ebp
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x84]
call qword [rax]
movsxd rbx, dword [rsi + 0x3c]
add rbx, rsi
mov eax, dword [rbx + 0x88]
lea r13, [rbx + 0x18]
movzx esi, word [rbx + 0x14]
cmp word [rbx + 6], 0
mov dword [rsp + 0x48], eax
lea rax, [r13 + rsi]
mov qword [rsp + 0x70], rax
je 0x40b110
mov rcx, qword [0x0046e990]
lea rbp, [r13 + rsi]
xor r15d, r15d
call fcn.0041b0f0
movdqa xmm6, xmmword [0x00427ef0]
mov qword [rsp + 0x50], rdi
mov r14, rax
jmp 0x40ad77
mov rbp, rsi
movzx esi, word [rbx + 0x14]
lea eax, [r15 + r15*4]
add rsi, r13
mov edx, 0x29
shl eax, 3
mov rcx, r14
movzx eax, ax
add rsi, rax
call fcn.00403600
lea rcx, [0x00427aa0]
mov qword [rax + 0x20], 0
lea rdi, [rax + 0x10]
mov qword [rax + 8], 1
mov byte [rax + 0x28], 0
movups xmmword [rax + 0x10], xmm6
movzx edx, byte [rsi]
mov byte [rax + 0x20], dl
movzx edx, byte [rsi + 1]
mov byte [rax + 0x21], dl
movzx edx, byte [rsi + 2]
mov byte [rax + 0x22], dl
movzx edx, byte [rsi + 3]
mov byte [rax + 0x23], dl
movzx edx, byte [rsi + 4]
mov byte [rax + 0x24], dl
movzx edx, byte [rsi + 5]
mov byte [rax + 0x25], dl
movzx edx, byte [rsi + 6]
mov byte [rax + 0x26], dl
movzx edx, byte [rsi + 7]
mov byte [rax + 0x27], dl
mov edx, 0xcc29f0c
call fcn.00403d80
mov rcx, rdi
mov rdx, rax
call fcn.00416030
test rax, rax
cmovs rsi, rbp
add r15d, 1
cmp word [rbx + 6], r15w
ja 0x40ad70
mov rdi, qword [rsp + 0x50]
mov r10, qword [rsp + 0x40]
movsxd rbx, dword [rsp + 0x48]
movsxd rdx, dword [rsi + 0xc]
movsxd rax, dword [rsi + 0x14]
add rbx, r10
sub rbx, rdx
add rbx, rax
movsxd rcx, dword [rbx + 0x1c]
movsxd r15, dword [rbx + 0x20]
add rcx, r10
sub rcx, rdx
add r15, r10
add rcx, rax
sub r15, rdx
mov qword [rsp + 0x68], rcx
mov ecx, dword [rbx + 0x18]
add r15, rax
test ecx, ecx
jle 0x40b108
mov r8, qword [rsp + 0xf8]
lea rcx, [r12 + 0x10]
mov r14, r12
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x58], rcx
mov rbp, qword [rsp + 0xf0]
lea r11, [r8 + 0x10]
cmp r8, rcx
setae r9b
cmp r11, r12
mov qword [rsp + 0x60], r11
mov r12, r8
setbe cl
xor r13d, r13d
or r9d, ecx
mov dword [rsp + 0x50], r13d
mov byte [rsp + 0x7f], r9b
jmp 0x40aee3
lea ebx, [r13 + 1]
test rcx, rcx
je 0x40aeca
test rbp, rbp
je 0x40aeca
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40aefa
mov rax, qword [rsp + 0x48]
mov r13d, ebx
cmp dword [rax + 0x18], ebx
jle 0x40b070
movsxd rdx, dword [rsi + 0xc]
movsxd rax, dword [rsi + 0x14]
movsxd rcx, r13d
movsxd rcx, dword [r15 + rcx*4]
add rcx, qword [rsp + 0x40]
sub rcx, rdx
add rcx, rax
cmp rbp, rcx
jne 0x40aeb0
mov rcx, qword [rsp + 0x68]
lea ebx, [r13 + 1]
movsxd rax, ebx
mov edx, dword [rcx + rax*4]
mov rax, qword [rsp + 0x70]
movsxd r9, dword [rax + 0xc]
movsxd rcx, dword [rax + 0x14]
mov rax, qword [0x0046ebf0]
mov eax, dword [rax]
test eax, eax
jne 0x40b09b
movsxd rax, edx
add rax, qword [rsp + 0x40]
sub rax, r9
add rax, rcx
movzx edx, byte [rax + 4]
lea rcx, [0x00427a80]
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 edx, 0x22605fe4
mov byte [rdi + 0x17], al
call fcn.00403d80
mov rcx, rax
call fcn.004066b0
mov rcx, rax
mov rax, qword [0x0046e6e0]
call qword [rax]
mov rdx, rbp
mov rcx, rax
mov rax, qword [0x0046e6f0]
call qword [rax]
lea rcx, [rax + 0x27]
jmp 0x40af9d
add rax, 1
cmp rcx, rax
je 0x40b094
cmp byte [rax], 0xf
mov rdx, rax
jne 0x40af90
cmp byte [rax + 1], 5
jne 0x40af90
mov rcx, rdx
mov r11d, edx
mov r10d, edx
mov byte [rdi + 0x1a], dl
shr rcx, 0x30
mov r9, rdx
mov r8, rdx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x50], rcx
shr r11d, 0x10
movzx ecx, dh
shr r10d, 0x18
shr r9, 0x20
shr r8, 0x28
mov byte [rdi + 0x1b], cl
movzx ecx, byte [rsp + 0x50]
shr rdx, 0x38
cmp byte [rsp + 0x7f], 0
mov byte [rdi + 0x1c], r11b
mov byte [rdi + 0x1d], r10b
mov byte [rdi + 0x1e], r9b
mov byte [rdi + 0x1f], r8b
mov byte [rdi + 0x20], cl
mov byte [rdi + 0x21], dl
je 0x40b0e2
mov rax, qword [rsp + 0x58]
movdqu xmm1, xmmword [rdi + 0x10]
mov rcx, qword [rsp + 0x60]
movups xmmword [r12], xmm1
movzx eax, byte [rax]
mov byte [rcx], al
movzx eax, byte [r14 + 0x11]
mov byte [r12 + 0x11], al
movzx eax, byte [r14 + 0x12]
mov byte [r12 + 0x12], al
movzx eax, byte [r14 + 0x13]
mov byte [r12 + 0x13], al
movzx eax, byte [r14 + 0x14]
mov byte [r12 + 0x14], al
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x50], 1
mov r13d, ebx
cmp dword [rax + 0x18], ebx
jg 0x40aedb
nop dword [rax + rax]
mov r13d, dword [rsp + 0x50]
movaps xmm6, xmmword [rsp + 0x90]
mov eax, r13d
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
jmp 0x40afab
mov rax, qword [rsp + 0x68]
lea r8d, [r13 + 8]
movsxd r8, r8d
movsxd rax, dword [rax + r8*4]
add rax, qword [rsp + 0x40]
sub rax, r9
add rax, rcx
jmp 0x40af35
mov rax, qword [0x0046e700]
call qword [rax]
movsxd r8, ebp
xor edx, edx
mov rcx, rax
mov rax, qword [0x0046e760]
call qword [rax]
mov qword [rsp + 0x40], rax
mov rsi, rax
jmp 0x40aced
xor eax, eax
nop
nop word cs:[rax + rax]
movzx edx, byte [rdi + rax + 0x10]
mov byte [r12 + rax], dl
add rax, 1
cmp rax, 0x15
jne 0x40b0f0
jmp 0x40b04f
xor r13d, r13d
jmp 0x40b075
mov rsi, rax
jmp 0x40ae1e