Function at 0x404970
Capabilities:
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 rsi, rdx
mov edx, 0x249f1b15
lea rcx, [0x0041c0e0]
mov dword [rsp + 0x8c], 0
call fcn.00402580
mov edx, 0x47cd1d7d
mov rcx, rax
call fcn.00402310
lea rcx, [0x0041b0a1]
test rax, rax
je 0x4049d7
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 [0x0048f0d8]
xor edx, edx
mov rbx, rax
mov rcx, rax
call qword [0x0048f0d0]
mov edi, eax
call qword [0x0048f128]
movsxd r8, edi
xor edx, edx
mov rcx, rax
call qword [0x0048f0c8]
mov r8d, edi
mov rcx, rbx
mov qword [rsp + 0x20], 0
mov rdi, rax
mov qword [rsp + 0x48], rax
mov rdx, rax
lea r9, [rsp + 0x8c]
call qword [0x0048f0c0]
movsxd r11, dword [rdi + 0x3c]
lea r14, [rdi + r11]
mov eax, dword [r14 + 0x88]
lea r12, [r14 + 0x18]
movzx ebx, word [r14 + 0x14]
cmp word [r14 + 6], 0
mov dword [rsp + 0x50], eax
lea rdi, [r12 + rbx]
je 0x404cf3
mov rbp, rdi
xor r15d, r15d
movdqa xmm6, xmmword [0x00489b60]
mov qword [rsp + 0xf8], rsi
mov r13, qword [0x0048c100]
jmp 0x404aa8
mov rbp, rbx
movzx ebx, word [r14 + 0x14]
lea eax, [r15 + r15*4]
add rbx, r12
mov edx, 0x19
shl eax, 3
mov rcx, r13
movzx eax, ax
add rbx, rax
call fcn.00404620
lea rcx, [0x0041c0b0]
movups xmmword [rax], xmm6
movzx edx, byte [rbx]
mov rsi, 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, 0x3b77a20f
call fcn.00402580
mov edx, 0x4e56bc7
mov rcx, rax
call fcn.00402310
mov rcx, rsi
mov rdx, rax
call fcn.004106b0
test rax, rax
cmovs rbx, rbp
add r15d, 1
cmp word [r14 + 6], r15w
ja 0x404aa0
mov rsi, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x48]
movsxd rcx, dword [rsp + 0x50]
movsxd rdx, dword [rbx + 0xc]
movsxd rax, dword [rbx + 0x14]
add rcx, r8
sub rcx, rdx
lea r9, [rcx + rax]
movsxd r11, dword [r9 + 0x20]
mov qword [rsp + 0x78], r9
movsxd rcx, dword [r9 + 0x1c]
add r11, r8
add rcx, r8
mov r8d, dword [r9 + 0x18]
sub r11, rdx
sub rcx, rdx
add r11, rax
lea r10, [rcx + rax]
test r8d, r8d
jle 0x404cfb
mov qword [rsp + 0x50], r10
xor r12d, r12d
mov r10, rbx
xor r13d, r13d
mov dword [rsp + 0x74], 0
lea r9, [rsi + 0x10]
mov rbx, qword [rsp + 0xf0]
jmp 0x404c0f
test rcx, rcx
je 0x404bfe
test rbx, rbx
je 0x404bfe
mov rdx, rbx
mov qword [rsp + 0x68], r9
mov dword [rsp + 0x70], r8d
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], r10
call sub.msvcrt.dll_exit_34
mov r10, qword [rsp + 0x58]
test eax, eax
mov r11, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x70]
mov r9, qword [rsp + 0x68]
je 0x404c3b
cmp r12d, r8d
jge 0x404cae
movsxd rdx, dword [r10 + 0xc]
movsxd rax, dword [r10 + 0x14]
movsxd rcx, dword [r11 + r13*4]
add r12d, 1
add rcx, qword [rsp + 0x48]
movsxd r13, r12d
movsxd r15, dword [rdi + 0xc]
movsxd r14, dword [rdi + 0x14]
sub rcx, rdx
add rcx, rax
mov rax, qword [rsp + 0x50]
cmp rbx, rcx
movsxd rbp, dword [rax + r13*4]
jne 0x404bc0
add rbp, qword [rsp + 0x48]
sub rbp, r15
add r14, rbp
lea rax, [r14 + 0x10]
cmp r9, r14
jbe 0x404c54
cmp rsi, rax
jb 0x404cce
movdqu xmm0, xmmword [r14]
movups xmmword [rsi], xmm0
movzx eax, byte [r14 + 0x10]
mov byte [r9], al
movzx eax, byte [r14 + 0x11]
mov byte [rsi + 0x11], al
movzx eax, byte [r14 + 0x12]
mov byte [rsi + 0x12], al
movzx eax, byte [r14 + 0x13]
mov byte [rsi + 0x13], al
movzx eax, byte [r14 + 0x14]
mov byte [rsi + 0x14], al
movzx eax, byte [r14 + 0x15]
mov byte [rsi + 0x15], al
movzx eax, byte [r14 + 0x16]
mov byte [rsi + 0x16], al
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x74], 1
mov r8d, dword [rax + 0x18]
cmp r12d, r8d
jl 0x404c07
mov eax, dword [rsp + 0x74]
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [r14 + 0x17]
mov rcx, rsi
sub rcx, r14
nop dword [rax + rax]
movzx eax, byte [r14]
mov byte [rcx + r14], al
add r14, 1
cmp r14, rdx
jne 0x404ce0
jmp 0x404c94
mov rbx, rdi
jmp 0x404b49
mov dword [rsp + 0x74], 0
jmp 0x404cae