Function at 0x4147d0
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 + 0xf8], rdx
mov rsi, rcx
mov edx, 0x16
lea rcx, [0x0053ad00]
mov dword [rsp + 0x84], 0
call fcn.0040d180
mov r8d, 0xffffc3e3
movdqa xmm0, xmmword [0x00533c60]
mov edx, 0x1efcdd6a
mov word [rax + 0x24], r8w
lea rcx, [0x0041edc0]
mov rdi, rax
movups xmmword [rax + 0x10], xmm0
lea r13, [rax + 0x10]
mov dword [rax + 0x20], 0xff410000
call fcn.00404540
mov rcx, rax
call fcn.004019c0
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 [0x0053a2c8]
xor edx, edx
mov rcx, rax
mov rbx, rax
call qword [0x0053a2c0]
mov ebp, eax
call qword [0x0053ad48]
xor edx, edx
movsxd r8, ebp
mov rcx, rax
call qword [0x00539e78]
mov r8d, ebp
mov rcx, rbx
mov qword [rsp + 0x20], 0
mov r14, rax
mov qword [rsp + 0x40], rax
mov rdx, rax
lea r9, [rsp + 0x84]
call qword [0x0053a2b8]
movsxd r11, dword [r14 + 0x3c]
lea r15, [r14 + r11]
mov eax, dword [r15 + 0x88]
movzx r8d, word [r15 + 0x14]
mov dword [rsp + 0x48], eax
lea rax, [r15 + 0x18]
mov rcx, rax
add rax, r8
cmp word [r15 + 6], 0
mov qword [rsp + 0x50], rax
mov r12, rax
je 0x4149dd
mov rbp, rax
xor ebx, ebx
movdqa xmm6, xmmword [0x00533b70]
mov r14, rcx
mov qword [rsp + 0xf0], rsi
mov r12, r8
jmp 0x414928
mov rbp, r12
movzx r12d, word [r15 + 0x14]
lea eax, [rbx + rbx*4]
add r12, r14
mov ecx, 0x29
shl eax, 3
movzx eax, ax
add r12, rax
call fcn.00403db0
lea rcx, [0x0041eda0]
mov qword [rax + 0x20], 0
lea rsi, [rax + 0x10]
mov qword [rax + 8], 1
mov byte [rax + 0x28], 0
movups xmmword [rax + 0x10], xmm6
movzx edx, byte [r12]
mov byte [rax + 0x20], dl
movzx edx, byte [r12 + 1]
mov byte [rax + 0x21], dl
movzx edx, byte [r12 + 2]
mov byte [rax + 0x22], dl
movzx edx, byte [r12 + 3]
mov byte [rax + 0x23], dl
movzx edx, byte [r12 + 4]
mov byte [rax + 0x24], dl
movzx edx, byte [r12 + 5]
mov byte [rax + 0x25], dl
movzx edx, byte [r12 + 6]
mov byte [rax + 0x26], dl
movzx edx, byte [r12 + 7]
mov byte [rax + 0x27], dl
mov edx, 0x32108dce
call fcn.00404540
mov rcx, rsi
mov rdx, rax
call fcn.00402ad0
test rax, rax
cmovs r12, rbp
add ebx, 1
cmp word [r15 + 6], bx
ja 0x414920
mov rsi, qword [rsp + 0xf0]
mov r11, qword [rsp + 0x40]
movsxd rbx, dword [rsp + 0x48]
movsxd rdx, dword [r12 + 0xc]
movsxd rax, dword [r12 + 0x14]
add rbx, r11
sub rbx, rdx
add rbx, rax
movsxd rcx, dword [rbx + 0x20]
add rcx, r11
sub rcx, rdx
lea r14, [rcx + rax]
movsxd rcx, dword [rbx + 0x1c]
add rcx, r11
sub rcx, rdx
add rcx, rax
mov qword [rsp + 0x70], rcx
mov ecx, dword [rbx + 0x18]
test ecx, ecx
jle 0x414c84
mov r9, qword [rsp + 0xf8]
lea rcx, [r13 + 0x10]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x60], rcx
mov rbx, qword [rsp + 0xf8]
mov dword [rsp + 0x58], 0
lea r8, [r9 + 0x10]
cmp r9, rcx
setae r9b
cmp r8, r13
mov qword [rsp + 0x68], r8
setbe cl
xor r15d, r15d
or r9d, ecx
mov byte [rsp + 0x7f], r9b
jmp 0x414aa5
lea ebp, [r15 + 1]
test rcx, rcx
je 0x414a8a
test rsi, rsi
je 0x414a8a
mov rdx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x414abc
mov rax, qword [rsp + 0x48]
mov r15d, ebp
cmp dword [rax + 0x18], ebp
jle 0x414c1e
movsxd rdx, dword [r12 + 0xc]
movsxd rax, dword [r12 + 0x14]
movsxd rcx, r15d
movsxd rcx, dword [r14 + rcx*4]
add rcx, qword [rsp + 0x40]
sub rcx, rdx
add rcx, rax
cmp rsi, rcx
jne 0x414a70
mov rcx, qword [rsp + 0x70]
lea ebp, [r15 + 1]
movsxd rax, ebp
mov edx, dword [rcx + rax*4]
mov rax, qword [rsp + 0x50]
movsxd r8, dword [rax + 0xc]
movsxd rcx, dword [rax + 0x14]
mov eax, dword [0x0053af50]
test eax, eax
jne 0x414c45
movsxd rax, edx
add rax, qword [rsp + 0x40]
sub rax, r8
add rax, rcx
movzx edx, byte [rax + 4]
lea rcx, [0x0041ed80]
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, 0x1e0f3b4a
mov byte [rdi + 0x17], al
call fcn.00404540
mov rcx, rax
call fcn.004064d0
mov rcx, rax
call qword [0x0053a2b0]
mov rdx, rsi
mov rcx, rax
call qword [0x0053af20]
lea rcx, [rax + 0x27]
jmp 0x414b5d
add rax, 1
cmp rcx, rax
je 0x414c3e
cmp byte [rax], 0xf
mov rdx, rax
jne 0x414b50
cmp byte [rax + 1], 5
jne 0x414b50
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 + 0x58], 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 + 0x58]
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 0x414c65
mov rax, qword [rsp + 0x60]
movdqu xmm1, xmmword [rdi + 0x10]
mov rcx, qword [rsp + 0x68]
movups xmmword [rbx], xmm1
movzx eax, byte [rax]
mov byte [rcx], al
movzx eax, byte [r13 + 0x11]
mov byte [rbx + 0x11], al
movzx eax, byte [r13 + 0x12]
mov byte [rbx + 0x12], al
movzx eax, byte [r13 + 0x13]
mov byte [rbx + 0x13], al
movzx eax, byte [r13 + 0x14]
mov byte [rbx + 0x14], al
mov rax, qword [rsp + 0x48]
mov dword [rsp + 0x58], 1
mov r15d, ebp
cmp dword [rax + 0x18], ebp
jg 0x414a9b
mov eax, dword [rsp + 0x58]
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
xor edx, edx
jmp 0x414b6b
mov rax, qword [rsp + 0x70]
add r15d, 8
movsxd r15, r15d
movsxd rax, dword [rax + r15*4]
add rax, qword [rsp + 0x40]
sub rax, r8
add rax, rcx
jmp 0x414af4
xor eax, eax
nop word [rax + rax]
movzx edx, byte [rdi + rax + 0x10]
mov byte [rbx + rax], dl
add rax, 1
cmp rax, 0x15
jne 0x414c70
jmp 0x414c05
mov dword [rsp + 0x58], 0
jmp 0x414c1e