Function at 0x40d460
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
lea rcx, [0x0042f430]
mov qword [rsp + 0xf8], rdx
mov edx, 0x16
mov dword [rsp + 0x84], 0
call fcn.0040b740
mov r8d, 0xffffc3e3
movdqa xmm0, xmmword [0x00427ef0]
mov edx, 0x233933e8
mov word [rax + 0x24], r8w
lea rcx, [0x004251e0]
mov rdi, rax
movups xmmword [rax + 0x10], xmm0
lea r12, [rax + 0x10]
mov dword [rax + 0x20], 0xff410000
call fcn.00404d90
mov edx, 0x4d6a928
mov rcx, rax
call fcn.00405030
mov rcx, rax
call fcn.004015c0
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov rcx, rax
mov dword [rsp + 0x28], pe_nt_image_headers64
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x20], 3
call qword [0x0042f270]
xor edx, edx
mov rbx, rax
mov rcx, rax
call qword [0x0042f268]
mov r9d, dword [0x0042f550]
mov ebp, eax
test r9d, r9d
je 0x40d92b
call qword [0x0042bc08]
movsxd r8, ebp
xor edx, edx
mov rcx, rax
call qword [0x0042f4b8]
mov qword [rsp + 0x40], rax
mov rsi, rax
mov rdx, rsi
mov rcx, rbx
mov r8d, ebp
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x84]
call qword [0x0042f258]
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 0x40d970
lea rcx, [0x00422160]
xor r15d, r15d
call fcn.004176a0
lea rbp, [r13 + rsi]
mov qword [rsp + 0x50], rdi
movdqa xmm6, xmmword [0x00427f00]
mov r14, rax
jmp 0x40d5e7
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.004043a0
lea rcx, [0x004251c0]
mov qword [rax + 0x20], 0
lea rdi, [rax + 0x10]
mov qword [rax + 8], 1
movups xmmword [rax + 0x10], xmm6
mov byte [rax + 0x28], 0
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, 0x45ec49e8
call fcn.00405030
mov rcx, rdi
mov rdx, rax
call fcn.00402d10
test rax, rax
cmovs rsi, rbp
add r15d, 1
cmp word [rbx + 6], r15w
ja 0x40d5e0
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 0x40d968
mov r8, qword [rsp + 0xf8]
lea rcx, [r12 + 0x10]
mov r14, r12
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x60], rcx
mov rbp, qword [rsp + 0xf0]
lea r11, [r8 + 0x10]
cmp r12, r11
mov qword [rsp + 0x58], r11
mov r12, r8
setae r9b
cmp r8, rcx
setae cl
xor r13d, r13d
or r9d, ecx
mov dword [rsp + 0x50], r13d
mov byte [rsp + 0x7f], r9b
jmp 0x40d753
lea ebx, [r13 + 1]
test rcx, rcx
je 0x40d73a
test rbp, rbp
je 0x40d73a
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x40d76a
mov rax, qword [rsp + 0x48]
mov r13d, ebx
cmp dword [rax + 0x18], ebx
jle 0x40d8e0
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 0x40d720
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 eax, dword [0x0042f550]
test eax, eax
jne 0x40d90b
movsxd rax, edx
add rax, qword [rsp + 0x40]
sub rax, r9
add rax, rcx
movzx edx, byte [rax + 4]
lea rcx, [0x004251a0]
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, 0x7af85828
mov byte [rdi + 0x17], al
call fcn.00405030
mov rcx, rax
call fcn.00408180
mov rcx, rax
call qword [0x0042f2a0]
mov rdx, rbp
mov rcx, rax
call qword [0x0042f2b8]
lea rcx, [rax + 0x27]
jmp 0x40d80d
add rax, 1
cmp rcx, rax
je 0x40d904
cmp byte [rax], 0xf
mov rdx, rax
jne 0x40d800
cmp byte [rax + 1], 5
jne 0x40d800
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 0x40d94c
mov rax, qword [rsp + 0x60]
movdqu xmm1, xmmword [rdi + 0x10]
mov rcx, qword [rsp + 0x58]
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 0x40d74b
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 0x40d81b
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 0x40d7a2
call qword [0x0042f2c0]
movsxd r8, ebp
xor edx, edx
mov rcx, rax
call qword [0x0042f260]
mov qword [rsp + 0x40], rax
mov rsi, rax
jmp 0x40d55e
xor eax, eax
nop
movzx edx, byte [rdi + rax + 0x10]
mov byte [r12 + rax], dl
add rax, 1
cmp rax, 0x15
jne 0x40d950
jmp 0x40d8bf
xor r13d, r13d
jmp 0x40d8e5
mov rsi, rax
jmp 0x40d68e