Function at 0x10040ee30
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xb8
cmp dword [0x10044c054], 0
je 0x10040ee5b
mov eax, 1
jmp 0x10040f25a
call fcn.10040ed60
lea rcx, str.IniRegistryLib_is_getting_loaded._r_n
call fcn.10040ed70
cmp qword [rsp + 0xd8], 0
je 0x10040eeb8
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x48], 0xffffffffffffffff
inc qword [rsp + 0x48]
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
cmp word [rax + rcx*2], 0
jne 0x10040ee90
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x80], rax
jmp 0x10040eec4
mov qword [rsp + 0x80], 3
mov eax, dword [rsp + 0x80]
inc eax
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x34]
mov ecx, 0x104
sub rcx, rax
mov rax, rcx
mov r8d, eax
lea rdx, [0x10044c060]
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
jbe 0x10040f253
mov eax, dword [rsp + 0x30]
lea rcx, [0x10044c060]
lea rax, [rcx + rax*2 - 2]
mov qword [rsp + 0x28], rax
mov rdx, qword [rsp + 0x28]
lea rcx, str._s__r_n
call fcn.10040ed70
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x70], 0
cmp qword [rsp + 0x50], 0
jne 0x10040ef9d
lea rax, [0x10044c060]
cmp qword [rsp + 0x28], rax
jbe 0x10040ef9d
cmp qword [rsp + 0x70], 0
jne 0x10040ef76
mov rax, qword [rsp + 0x28]
movzx eax, word [rax]
cmp eax, 0x2e
jne 0x10040ef74
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x70], rax
jmp 0x10040ef8d
mov rax, qword [rsp + 0x28]
movzx eax, word [rax]
cmp eax, 0x5c
jne 0x10040ef8d
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x28]
sub rax, 2
mov qword [rsp + 0x28], rax
jmp 0x10040ef3f
cmp qword [rsp + 0x50], 0
je 0x10040f253
mov dword [rsp + 0x40], 0
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x70]
add rax, 2
mov qword [rsp + 0x98], rax
cmp qword [rsp + 0xd8], 0
je 0x10040effa
mov eax, dword [rsp + 0x34]
shl rax, 1
mov eax, eax
mov rdi, qword [rsp + 0x78]
mov rsi, qword [rsp + 0xd8]
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
jmp 0x10040f0ab
lea rax, [0x10044c060]
mov rcx, qword [rsp + 0x78]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov ecx, dword [rsp + 0x30]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x20], 0
jmp 0x10040f02f
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
cmp rax, 1
jae 0x10040f08c
mov eax, dword [rsp + 0x20]
imul rax, rax, 0x10
lea rcx, [0x1004264c8]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x88], rax
mov r9d, dword [rsp + 0x68]
mov r8, qword [rsp + 0x78]
mov rax, qword [rsp + 0x88]
mov edx, dword [rax + 8]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax]
call fcn.10040ed90
movzx eax, al
test eax, eax
je 0x10040f08a
mov dword [rsp + 0x40], 1
jmp 0x10040f025
mov eax, dword [rsp + 0x34]
shl rax, 1
mov eax, eax
lea rcx, [0x10041dcf8]
mov rdi, qword [rsp + 0x98]
mov rsi, rcx
mov ecx, eax
rep movsb byte [rdi], byte [rsi]
cmp dword [rsp + 0x40], 0
jne 0x10040f253
lea rcx, [0x10044c060]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10040f253
lea rax, [0x10044c270]
lea rcx, [0x10044c060]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x208
rep movsb byte [rdi], byte [rsi]
lea rax, [0x10044c270]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x58], 0xffffffffffffffff
inc qword [rsp + 0x58]
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x58]
cmp word [rax + rcx*2], 0
jne 0x10040f0ff
mov rax, qword [rsp + 0x58]
lea rcx, [0x10044c270]
lea rax, [rcx + rax*2 - 2]
mov qword [rsp + 0x38], rax
mov eax, 2
imul rax, rax, 0
mov rcx, qword [rsp + 0x38]
movzx eax, word [rcx + rax]
cmp eax, 0x5c
je 0x10040f163
lea rax, [0x10044c270]
cmp qword [rsp + 0x38], rax
jbe 0x10040f163
mov rax, qword [rsp + 0x38]
sub rax, 2
mov qword [rsp + 0x38], rax
jmp 0x10040f12e
mov eax, 2
imul rax, rax, 0
xor ecx, ecx
mov rdx, qword [rsp + 0x38]
mov word [rdx + rax], cx
lea rax, [0x10044c270]
mov rcx, qword [rsp + 0x38]
sub rcx, rax
mov rax, rcx
sar rax, 1
inc rax
mov dword [0x10044c058], eax
lea rdx, [0x10044c270]
lea rcx, str.wszIniRegDirectory__s__r_n
call fcn.10040ed70
lea rax, [0x10044c480]
lea rcx, [0x10044c060]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x208
rep movsb byte [rdi], byte [rsi]
lea rax, [0x10044c480]
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x60], 0xffffffffffffffff
inc qword [rsp + 0x60]
mov rax, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x60]
cmp word [rax + rcx*2], 0
jne 0x10040f1db
mov rax, qword [rsp + 0x60]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x6c]
lea rcx, [0x10044c480]
lea rdx, str..ext
lea rdi, [rcx + rax*2]
mov rsi, rdx
mov ecx, 0xa
rep movsb byte [rdi], byte [rsi]
lea rdx, [0x10044c480]
lea rcx, str.g_wszIniRegExtPath:__s__r_n
call fcn.10040ed70
mov eax, dword [rsp + 0xe0]
mov dword [0x10044c050], eax
mov dword [0x10044c054], 1
call fcn.10040ed60
mov eax, 1
jmp 0x10040f25a
call fcn.10040ed60
xor eax, eax
add rsp, 0xb8
pop rdi
pop rsi
ret