Function at 0x404770
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, 0x4272fca8
mov dword [rsp + 0x7c], 0
lea rcx, [0x0041a960]
call fcn.00404070
mov edx, 0x7dc43368
mov rcx, rax
call fcn.004042c0
lea rcx, [0x004190a1]
test rax, rax
je 0x4047cf
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 [0x00d600a0]
xor edx, edx
mov rbx, rax
mov rcx, rax
call qword [0x00d60098]
mov r12d, eax
mov rax, qword [0x00d5dc30]
mov edx, dword [rax]
test edx, edx
je 0x404b09
mov rax, qword [0x00d5d4d0]
call qword [rax]
movsxd r8, r12d
xor edx, edx
mov rcx, rax
mov rax, qword [0x00d5d4c0]
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 [0x00d60088]
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 0x404b51
mov r12, rax
mov rax, qword [0x00d5dbf0]
xor r15d, r15d
mov r13, rcx
mov qword [rsp + 0xe8], rsi
movdqa xmm6, xmmword [0x00d5b150]
mov esi, r15d
mov qword [rsp + 0x50], rdi
mov r15, rax
jmp 0x4048c8
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.00404100
lea rcx, [0x0041a940]
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, 0x4303bc68
call fcn.00404070
mov edx, 0x63dceca8
mov rcx, rax
call fcn.004042c0
mov rcx, rdi
mov rdx, rax
call fcn.0040f8d0
test rax, rax
cmovs rbx, r12
add esi, 1
cmp word [r14 + 6], si
ja 0x4048c0
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 0x404b44
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 0x404a10
lea r14d, [r15 + 1]
test rcx, rcx
je 0x4049fa
test rbp, rbp
je 0x4049fa
mov rdx, rbp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x404a25
cmp r14d, ebx
mov r15d, r14d
jge 0x404ac9
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 0x4049e0
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 [0x00d5dc30]
mov eax, dword [rax]
test eax, eax
jne 0x404af0
movsxd rax, edx
add rax, r13
sub rax, r10
add rax, rcx
cmp qword [rsp + 0x48], rax
lea rdx, [rax + 0x10]
jbe 0x404a72
cmp rsi, rdx
jb 0x404b25
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 0x404a06
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 0x404a5e
call qword [0x00d600e0]
movsxd r8, r12d
xor edx, edx
mov rcx, rax
call qword [0x00d60090]
mov rdi, rax
jmp 0x40483b
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 0x404b30
jmp 0x404aad
mov dword [rsp + 0x64], 0
jmp 0x404ac9
mov rbx, rax
jmp 0x40496c