Function at 0x100002ff0
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
mov r11, rsp
sub rsp, 0x6a8
mov rax, qword [0x100011410]
mov qword [rsp + 0x660], rax
mov qword [r11 - 0x30], r14
mov qword [r11 - 0x38], r15
mov r14, rcx
lea rcx, [r11 - 0x558]
lea rax, [r11 - 0x558]
mov r11, r14
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r8
mov r15, rdx
sub r11, rcx
mov r10d, 0x104
nop
nop
movzx ecx, byte [r11 + rax]
test cl, cl
je 0x100003055
mov byte [rax], cl
inc rax
dec r10
jne 0x100003040
jmp 0x10000305a
test r10, r10
jne 0x10000305d
dec rax
mov qword [rsp + 0x6a0], rbx
mov qword [rsp + 0x698], rbp
mov qword [rsp + 0x690], rsi
mov byte [rax], 0
movzx eax, byte [rsp + 0x150]
mov qword [rsp + 0x688], rdi
cmp al, 0x22
mov qword [rsp + 0x680], r12
lea rsi, [0x100001630]
jne 0x100003147
movsx edx, byte [rsp + 0x151]
lea rcx, [0x10000162c]
lea r12, [rsp + 0x151]
lea rbx, [rsp + 0x151]
xor ebp, ebp
call fcn.100009900
test rax, rax
je 0x1000030ed
nop
nop
cmp byte [rbx], bpl
je 0x100003140
movsx edx, byte [rbx + 1]
inc rbx
lea rcx, [0x10000162c]
call fcn.100009900
test rax, rax
jne 0x1000030d0
movsx edx, byte [rbx]
lea rcx, [0x10000162c]
mov r12, rbx
call fcn.100009900
test rax, rax
jne 0x100003126
mov rdi, rbx
cmp byte [rdi], 0
je 0x100003126
movsx edx, byte [rdi + 1]
inc rdi
lea rcx, [0x10000162c]
inc ebp
call fcn.100009900
test rax, rax
je 0x100003107
movsxd rax, ebp
add rbx, rax
cmp byte [rbx], 0
je 0x1000031cf
mov byte [rbx], 0
inc rbx
jmp 0x1000031cf
xor ebx, ebx
jmp 0x1000031cf
movsx edx, al
mov rcx, rsi
lea r12, [rsp + 0x150]
lea rbx, [rsp + 0x150]
xor ebp, ebp
call fcn.100009900
test rax, rax
je 0x10000318d
nop
nop
cmp byte [rbx], bpl
je 0x100003220
movsx edx, byte [rbx + 1]
inc rbx
mov rcx, rsi
call fcn.100009900
test rax, rax
jne 0x100003170
movsx edx, byte [rbx]
mov rcx, rsi
mov r12, rbx
call fcn.100009900
test rax, rax
jne 0x1000031be
mov rdi, rbx
cmp byte [rdi], 0
je 0x1000031be
movsx edx, byte [rdi + 1]
inc rdi
mov rcx, rsi
inc ebp
call fcn.100009900
test rax, rax
je 0x1000031a3
movsxd rax, ebp
add rbx, rax
cmp byte [rbx], 0
je 0x1000031cf
mov byte [rbx], 0
inc rbx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 3
jl 0x1000031fa
movzx eax, byte [r12 + 1]
cmp al, 0x3a
jne 0x1000031ef
cmp byte [r12 + 2], 0x5c
je 0x100003224
cmp byte [r12], 0x5c
jne 0x1000031fa
cmp al, 0x5c
je 0x100003224
lea rdx, [0x100012350]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rcx, [rsp + 0x40]
mov r8, r12
mov edx, 0x104
call fcn.100009a40
jmp 0x100003232
xor ebx, ebx
jmp 0x1000031cf
lea rcx, [rsp + 0x40]
mov rdx, r12
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov dx, 0x2e
mov rcx, r12
call fcn.100009ba0
test rax, rax
je 0x10000351a
lea rdx, [0x100001624]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10000351a
lea rcx, [rsp + 0x40]
call fcn.100009b70
test eax, eax
jne 0x100003294
mov dword [rsp + 0x28], eax
lea r8, [rsp + 0x40]
xor r9d, r9d
mov edx, 0x525
xor ecx, ecx
mov dword [rsp + 0x20], 0x10
call fcn.100005260
xor eax, eax
jmp 0x100003758
movsx edx, byte [rbx]
lea rcx, [0x100001620]
mov rdi, rbx
xor ebp, ebp
call fcn.100009900
test rax, rax
je 0x1000032d1
nop
cmp byte [rdi], bpl
je 0x10000349f
movsx edx, byte [rdi + 1]
inc rdi
lea rcx, [0x100001620]
call fcn.100009900
test rax, rax
jne 0x1000032b0
movsx edx, byte [rdi]
lea rcx, [0x100001620]
mov rbx, rdi
call fcn.100009900
test rax, rax
jne 0x10000330f
mov rsi, rdi
nop
nop
cmp byte [rsi], 0
je 0x10000330f
movsx edx, byte [rsi + 1]
inc rsi
lea rcx, [0x100001620]
inc ebp
call fcn.100009900
test rax, rax
je 0x1000032f0
movsxd rax, ebp
add rdi, rax
cmp byte [rdi], 0
je 0x100003320
mov byte [rdi], 0
inc rdi
lea r12, [0x1000111b8]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_lstrlenA]
test rdi, rdi
je 0x1000033d1
cmp byte [rdi], 0
lea rcx, [0x10000161c]
cmovne rbx, rdi
xor ebp, ebp
movsx edx, byte [rbx]
mov rdi, rbx
call fcn.100009900
test rax, rax
je 0x10000337d
nop
nop
cmp byte [rdi], bpl
je 0x1000033c3
movsx edx, byte [rdi + 1]
inc rdi
lea rcx, [0x10000161c]
call fcn.100009900
test rax, rax
jne 0x100003360
movsx edx, byte [rdi]
lea rcx, [0x10000161c]
mov rbx, rdi
call fcn.100009900
test rax, rax
jne 0x1000033b6
mov rsi, rdi
cmp byte [rsi], 0
je 0x1000033b6
movsx edx, byte [rsi + 1]
inc rsi
lea rcx, [0x10000161c]
inc ebp
call fcn.100009900
test rax, rax
je 0x100003397
movsxd rax, ebp
cmp byte [rax + rdi], 0
je 0x1000033c3
mov byte [rax + rdi], 0
cmp byte [rbx], 0
je 0x1000033d1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, 0x200
mov ecx, 0x40
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
test rax, rax
mov rbp, rax
je 0x1000035a5
cmp byte [rbx], 0
mov rcx, r12
lea r9, [rsp + 0x40]
cmovne rcx, rbx
lea rdx, [0x100001614]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea r8, [0x100001555]
lea rdx, [0x100001608]
mov dword [0x100012174], eax
mov rax, qword [rsp + 0x30]
lea rcx, [0x100001600]
mov dword [rax], 1
lea rax, [rsp + 0x40]
mov r9, rbp
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 8
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x1000034b7
or dword [0x100012ba4], 4
cmp byte [rbx], 0
mov rdx, r15
cmovne r12, rbx
mov rcx, r14
mov r8, r12
call fcn.1000027a0
lea rcx, [rsp + 0x40]
mov r11, rbp
sub rcx, rbp
nop
nop
movzx eax, byte [rcx + r11]
test al, al
je 0x1000034a6
mov byte [r11], al
inc r11
dec rdi
jne 0x100003480
dec r11
mov byte [r11], dil
jmp 0x10000374b
xor edi, edi
jmp 0x100003320
test rdi, rdi
jne 0x1000034ae
dec r11
mov byte [r11], 0
jmp 0x10000374b
and dword [0x100012ba4], 0xfffffffb
cmp word [0x100012178], 0
jne 0x1000034e7
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x40]
mov r8d, 0x104
lea rdi, [0x1000015f0]
call qword [sym.imp.KERNEL32.dll_GetShortPathNameA]
jmp 0x1000034ee
lea rdi, [0x1000015e0]
cmp byte [rbx], 0
lea rax, [rsp + 0x40]
lea rdx, [0x100011118]
cmovne r12, rbx
mov r8, rdi
mov rcx, rbp
mov r9, r12
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x10000374b
mov dx, 0x2e
mov rcx, r12
call fcn.100009ba0
test rax, rax
je 0x10000358d
lea rdx, [0x1000015d8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x10000358d
lea rcx, str.Command.com__c__s
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea rcx, [rsp + 0x40]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [rbx + rax + 8]
movsxd rdx, ecx
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
test rax, rax
mov rbp, rax
je 0x1000035a5
lea r8, [rsp + 0x40]
lea rdx, str.Command.com__c__s
mov rcx, rax
call qword [sym.imp.USER32.dll_wsprintfA]
jmp 0x10000374b
mov edx, 0x400
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
test rax, rax
mov rbp, rax
jne 0x1000035ce
xor r9d, r9d
xor r8d, r8d
mov edx, 0x4b5
xor ecx, ecx
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0x10
call fcn.100005260
xor eax, eax
jmp 0x100003758
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x1000036fd
test al, 0x10
jne 0x1000036fd
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x260]
lea rax, [rsp + 0x260]
sub r8, rcx
mov edx, 0x400
movzx ecx, byte [r8 + rax]
test cl, cl
je 0x10000361c
mov byte [rax], cl
inc rax
dec rdx
jne 0x100003607
jmp 0x100003621
test rdx, rdx
jne 0x100003624
dec rax
test rbx, rbx
mov byte [rax], 0
je 0x100003735
cmp byte [rbx], 0
je 0x100003735
lea rax, [rsp + 0x260]
mov ecx, 0x400
cmp byte [rax], 0
je 0x100003655
inc rax
dec rcx
jne 0x100003646
jmp 0x100003696
test rcx, rcx
je 0x100003696
mov eax, 0x400
mov edx, 0x400
sub rax, rcx
sub rdx, rax
lea rcx, [rsp + rax + 0x260]
je 0x100003696
sub rsi, rcx
movzx eax, byte [rsi + rcx]
test al, al
je 0x10000368b
mov byte [rcx], al
inc rcx
dec rdx
jne 0x100003677
jmp 0x100003690
test rdx, rdx
jne 0x100003693
dec rcx
mov byte [rcx], 0
lea rax, [rsp + 0x260]
mov ecx, 0x400
cmp byte [rax], 0
je 0x1000036b5
inc rax
dec rcx
jne 0x1000036a3
jmp 0x100003735
test rcx, rcx
je 0x100003735
mov eax, 0x400
mov edx, 0x400
sub rax, rcx
sub rdx, rax
lea rcx, [rsp + rax + 0x260]
je 0x100003735
sub rbx, rcx
movzx eax, byte [rbx + rcx]
test al, al
je 0x1000036f0
mov byte [rcx], al
inc rcx
dec rdx
jne 0x1000036d7
dec rcx
mov byte [rcx], dl
jmp 0x100003735
test rdx, rdx
jne 0x1000036f8
dec rcx
mov byte [rcx], 0
jmp 0x100003735
lea rcx, [rsp + 0x260]
lea rax, [rsp + 0x260]
mov edx, 0x400
sub r14, rcx
movzx ecx, byte [r14 + rax]
test cl, cl
je 0x10000372a
mov byte [rax], cl
inc rax
dec rdx
jne 0x100003715
jmp 0x10000372f
test rdx, rdx
jne 0x100003732
dec rax
mov byte [rax], 0
lea rcx, [rsp + 0x260]
mov r8d, 0x400
mov rdx, rbp
call fcn.100002da0
mov rcx, qword [rsp + 0x38]
mov eax, 1
mov qword [rcx], rbp
mov r15, qword [rsp + 0x670]
mov r14, qword [rsp + 0x678]
mov r12, qword [rsp + 0x680]
mov rdi, qword [rsp + 0x688]
mov rsi, qword [rsp + 0x690]
mov rbp, qword [rsp + 0x698]
mov rbx, qword [rsp + 0x6a0]
mov rcx, qword [rsp + 0x660]
call fcn.10000ea20
add rsp, 0x6a8
ret