Function at 0x404780
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 rbp, rcx
mov rsi, rdx
mov edx, 0x4d7020c2
mov dword [rsp + 0x7c], 0
lea rcx, [0x0041a940]
call fcn.00404080
mov edx, 0x1442fb26
mov rcx, rax
call fcn.004042d0
lea rcx, [0x004190a1]
test rax, rax
je 0x4047df
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 [0x00d6f0a0]
xor edx, edx
mov rbx, rax
mov rcx, rax
call qword [0x00d6f098]
mov r12d, eax
mov rax, qword [0x00d6c860]
mov edx, dword [rax]
test edx, edx
je 0x404b19
mov rax, qword [0x00d6c120]
call qword [rax]
movsxd r8, r12d
xor edx, edx
mov rcx, rax
mov rax, qword [0x00d6c110]
call qword [rax]
mov rdi, rax
mov rcx, rbx
mov r8d, r12d
mov rdx, rdi
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x7c]
call qword [0x00d6f088]
movsxd r10, dword [rdi + 0x3c]
lea r14, [rdi + r10]
mov eax, dword [r14 + 0x88]
movzx ebx, word [r14 + 0x14]
mov dword [rsp + 0x48], eax
lea rax, [r14 + 0x18]
mov rcx, rax
add rax, rbx
cmp word [r14 + 6], 0
mov qword [rsp + 0x58], rax
je 0x404b61
mov r12, rax
mov rax, qword [0x00d6c820]
xor r15d, r15d
mov r13, rcx
mov qword [rsp + 0xe8], rsi
movdqa xmm6, xmmword [0x00d69c00]
mov esi, r15d
mov qword [rsp + 0x50], rdi
mov r15, rax
jmp 0x4048d8
mov r12, rbx
movzx ebx, word [r14 + 0x14]
lea eax, [rsi + rsi*4]
add rbx, r13
mov edx, 0x19
shl eax, 3
mov rcx, r15
movzx eax, ax
add rbx, rax
call fcn.00404110
lea rcx, [0x0041a920]
movups xmmword [rax], xmm6
movzx edx, byte [rbx]
mov rdi, rax
mov byte [rax + 0x10], dl
movzx edx, byte [rbx + 1]
mov byte [rax + 0x11], dl
movzx edx, byte [rbx + 2]
mov byte [rax + 0x12], dl
movzx edx, byte [rbx + 3]
mov byte [rax + 0x13], dl
movzx edx, byte [rbx + 4]
mov byte [rax + 0x14], dl
movzx edx, byte [rbx + 5]
mov byte [rax + 0x15], dl
movzx edx, byte [rbx + 6]
mov byte [rax + 0x16], dl
movzx edx, byte [rbx + 7]
mov byte [rax + 0x17], dl
mov edx, 0x29839166
call fcn.00404080
mov edx, 0xb715cc2
mov rcx, rax
call fcn.004042d0
mov rcx, rdi
mov rdx, rax
call fcn.0040f8a0
test rax, rax
cmovs rbx, r12
add esi, 1
cmp word [r14 + 6], si
ja 0x4048d0
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0xe8]
movsxd r12, dword [rsp + 0x48]
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
add r12, rdi
sub r12, rdx
lea rcx, [r12 + rax]
movsxd r13, dword [rcx + 0x1c]
mov qword [rsp + 0x68], rcx
movsxd r10, dword [rcx + 0x20]
add r13, rdi
sub r13, rdx
add r10, rdi
lea r11, [r13 + rax]
mov r13d, dword [rcx + 0x18]
sub r10, rdx
lea r12, [r10 + rax]
mov qword [rsp + 0x50], r11
test r13d, r13d
jle 0x404b54
lea rcx, [rsi + 0x10]
xor r15d, r15d
mov dword [rsp + 0x64], 0
mov qword [rsp + 0x48], rcx
mov ecx, r13d
mov r13, rdi
mov rdi, r12
mov r12, rbx
mov ebx, ecx
jmp 0x404a20
lea r14d, [r15 + 1]
test rcx, rcx
je 0x404a0a
test rbp, rbp
je 0x404a0a
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x404a35
cmp r14d, ebx
mov r15d, r14d
jge 0x404ad9
movsxd rdx, dword [r12 + 0xc]
movsxd rax, dword [r12 + 0x14]
movsxd rcx, r15d
movsxd rcx, dword [rdi + rcx*4]
add rcx, r13
sub rcx, rdx
add rcx, rax
cmp rbp, rcx
jne 0x4049f0
mov rbx, qword [rsp + 0x50]
lea r14d, [r15 + 1]
movsxd rax, r14d
mov edx, dword [rbx + rax*4]
mov rax, qword [rsp + 0x58]
movsxd r10, dword [rax + 0xc]
movsxd rcx, dword [rax + 0x14]
mov rax, qword [0x00d6c860]
mov eax, dword [rax]
test eax, eax
jne 0x404b00
movsxd rax, edx
add rax, r13
sub rax, r10
add rax, rcx
cmp qword [rsp + 0x48], rax
lea rdx, [rax + 0x10]
jbe 0x404a82
cmp rsi, rdx
jb 0x404b35
movdqu xmm0, xmmword [rax]
mov rbx, qword [rsp + 0x48]
movups xmmword [rsi], xmm0
movzx edx, byte [rdx]
mov byte [rbx], dl
movzx edx, byte [rax + 0x11]
mov byte [rsi + 0x11], dl
movzx edx, byte [rax + 0x12]
mov byte [rsi + 0x12], dl
movzx edx, byte [rax + 0x13]
mov byte [rsi + 0x13], dl
movzx edx, byte [rax + 0x14]
mov byte [rsi + 0x14], dl
movzx edx, byte [rax + 0x15]
mov byte [rsi + 0x15], dl
movzx eax, byte [rax + 0x16]
mov byte [rsi + 0x16], al
mov rax, qword [rsp + 0x68]
mov dword [rsp + 0x64], 1
mov r15d, r14d
mov ebx, dword [rax + 0x18]
cmp r14d, ebx
jl 0x404a16
mov eax, dword [rsp + 0x64]
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 r15d, 8
movsxd r15, r15d
movsxd rax, dword [rbx + r15*4]
add rax, r13
sub rax, r10
add rax, rcx
jmp 0x404a6e
call qword [0x00d6f0e8]
movsxd r8, r12d
xor edx, edx
mov rcx, rax
call qword [0x00d6f090]
mov rdi, rax
jmp 0x40484b
lea r10, [rax + 0x17]
mov rcx, rsi
sub rcx, rax
nop
movzx edx, byte [rax]
mov byte [rcx + rax], dl
add rax, 1
cmp rax, r10
jne 0x404b40
jmp 0x404abd
mov dword [rsp + 0x64], 0
jmp 0x404ad9
mov rbx, rax
jmp 0x40497c