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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3f0]
sub rsp, 0x4f0
mov rax, qword [0x1401198e8]
xor rax, rsp
mov qword [rbp + 0x3e0], rax
mov rdi, r8
mov qword [rsp + 0x58], r8
mov r15, rdx
mov qword [rsp + 0x50], rdx
mov r12, rcx
mov qword [rsp + 0x60], rcx
mov qword [rbp - 0x60], rcx
xor esi, esi
mov dword [rsp + 0x30], esi
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx], rsi
mov qword [rcx + 8], rsi
mov qword [rcx + 0x10], rsi
mov dword [rsp + 0x30], 1
call fcn.140008180
mov rcx, rax
test rax, rax
je 0x140024982
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
call fcn.140008180
mov rcx, rax
test rax, rax
je 0x14002498d
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x48], rax
call fcn.140008180
mov rcx, rax
test rax, rax
je 0x140024998
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x58], rax
mov rdx, rdi
lea rcx, [rbp - 0x58]
call fcn.1400062d0
lea r14, [rsi - 1]
test al, al
jne 0x14002420a
test rdi, rdi
jne 0x1400241e5
mov eax, esi
jmp 0x1400241fa
mov rax, r14
nop dword [rax + rax]
inc rax
cmp word [rdi + rax*2], 0
jne 0x1400241f0
mov r8d, eax
mov rdx, rdi
lea rcx, [rbp - 0x58]
call fcn.1400068f0
nop
mov edx, 0x5c
mov rbx, qword [rbp - 0x58]
mov rcx, rbx
call fcn.14009eee8
test rax, rax
jne 0x140024225
mov eax, r14d
jmp 0x14002422b
sub rax, rbx
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x58]
call fcn.140012c30
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14002429c
mov eax, dword [rbx + 0x10]
shr eax, 0x1f
test al, al
jne 0x14002428e
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14002428e
call fcn.140006780
mov rdi, rax
mov eax, r14d
lock xadd dword [rbx + 0x10], eax
sub eax, 1
jg 0x14002427f
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + VariantCopy]
lea rax, [rdi + 0x18]
mov qword [rbp - 0x58], rax
mov rdi, qword [rsp + 0x58]
jmp 0x14002429c
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x58]
call fcn.1400068f0
nop
mov rdx, qword [rbp - 0x78]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400242ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov r13d, esi
mov dword [rsp + 0x34], esi
xor r8d, r8d
lea rdx, str._dCmdLine
lea rcx, [rbp - 0x50]
call fcn.14002af10
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
lea r9, [rbp - 0x40]
lea r8, [0x1400f1b38]
mov rdx, qword [rbp - 0x50]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ebx, eax
test eax, eax
je 0x1400248e3
mov rsi, qword [rbp - 0x48]
nop word [rax + rax]
mov r8d, r13d
lea rdx, str._dParameters
lea rcx, [rbp - 0x50]
call fcn.14002af10
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x1d0]
lea r8, [0x1400f1b38]
mov rdx, qword [rbp - 0x50]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp ebx, 2
jbe 0x14002439f
mov r8d, 2
lea rdx, [0x1400f482c]
lea rcx, [rbp - 0x40]
call fcn.1400b49b0
test eax, eax
je 0x140024371
cmp word [rbp - 0x3e], 0x3a
jne 0x14002439f
lea rcx, [rbp - 0x40]
mov rax, r14
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140024380
mov r8d, eax
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x48]
call fcn.1400068f0
jmp 0x1400247ce
xor r12d, r12d
mov qword [rsp + 0x38], r12
mov rdi, qword [rbp - 0x58]
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x1400243c2
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x1400243d3
call fcn.140008180
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x140024977
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x38], rbx
mov r13d, dword [rsp + 0x30]
or r13d, 8
mov dword [rsp + 0x30], r13d
test r15, r15
jne 0x140024403
mov r14d, r12d
jmp 0x14002440e
inc r14
cmp word [r15 + r14*2], 0
jne 0x140024403
movsxd r15, dword [rdi - 0x10]
lea r12d, [r14 + r15]
test r12d, r12d
js 0x14002496c
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r12d
or eax, ecx
jge 0x140024443
mov edx, r12d
lea rcx, [rsp + 0x38]
call fcn.140006870
mov rbx, qword [rsp + 0x38]
add r15, r15
je 0x140024479
test rbx, rbx
je 0x140024469
mov r8, r15
mov rcx, rbx
test rdi, rdi
je 0x140024462
mov rdx, rdi
call fcn.14009d3c0
jmp 0x140024479
xor edx, edx
call fcn.14009e880
call fcn.1400a31cc
mov dword [rax], 0x16
call fcn.1400a3060
movsxd r8, r14d
add r8, r8
lea rcx, [r15 + rbx]
je 0x1400244b0
test rcx, rcx
je 0x1400244a0
mov rdx, qword [rsp + 0x50]
test rdx, rdx
je 0x14002449b
call fcn.14009d3c0
jmp 0x1400244b0
call fcn.14009e880
call fcn.1400a31cc
mov dword [rax], 0x16
call fcn.1400a3060
lea r14, [rbx - 0x18]
mov qword [rbp - 0x68], r14
cmp r12d, dword [r14 + 0xc]
jg 0x14002496c
mov dword [r14 + 8], r12d
movsxd rax, r12d
xor ecx, ecx
mov word [rbx + rax*2], cx
mov qword [rsp + 0x40], rcx
mov rcx, qword [r14]
test rcx, rcx
je 0x1400244ea
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x1400244fb
call fcn.140008180
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x1400249ca
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
or r13d, 4
mov dword [rsp + 0x30], r13d
movsxd r13, dword [r14 + 8]
lea r15d, [r13 + 1]
test r15d, r15d
js 0x1400249bf
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, r15d
or eax, ecx
jge 0x140024551
mov edx, r15d
lea rcx, [rsp + 0x40]
call fcn.140006870
mov rdi, qword [rsp + 0x40]
lea r14, [r13*2]
test r14, r14
je 0x14002458f
test rdi, rdi
je 0x14002457f
mov r8, r14
mov rcx, rdi
test rbx, rbx
je 0x140024578
mov rdx, rbx
call fcn.14009d3c0
jmp 0x14002458f
xor edx, edx
call fcn.14009e880
call fcn.1400a31cc
mov dword [rax], 0x16
call fcn.1400a3060
lea rax, [rdi + r14]
test rax, rax
jne 0x1400245aa
call fcn.1400a31cc
mov dword [rax], 0x16
call fcn.1400a3060
jmp 0x1400245b2
mov ecx, 0x5c
mov word [rax], cx
lea r12, [rdi - 0x18]
mov qword [rbp - 0x70], r12
cmp r15d, dword [r12 + 0xc]
jg 0x1400249bf
mov dword [r12 + 8], r15d
xor ecx, ecx
mov word [rdi + r13*2 + 2], cx
mov qword [rsp + 0x48], rcx
mov rcx, qword [r12]
test rcx, rcx
je 0x1400245ee
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x1400245ff
call fcn.140008180
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x1400249b4
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
mov r13d, dword [rsp + 0x30]
or r13d, 2
mov dword [rsp + 0x30], r13d
lea rax, [rbp - 0x40]
mov r14, 0xffffffffffffffff
inc r14
cmp word [rax + r14*2], 0
jne 0x140024630
movsxd r15, dword [r12 + 8]
lea r12d, [r14 + r15]
test r12d, r12d
js 0x1400249a9
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r12d
or eax, ecx
jge 0x140024671
mov edx, r12d
lea rcx, [rsp + 0x48]
call fcn.140006870
mov rbx, qword [rsp + 0x48]
add r15, r15
je 0x1400246a7
test rbx, rbx
je 0x140024697
mov r8, r15
mov rcx, rbx
test rdi, rdi
je 0x140024690
mov rdx, rdi
call fcn.14009d3c0
jmp 0x1400246a7
xor edx, edx
call fcn.14009e880
call fcn.1400a31cc
mov dword [rax], 0x16
call fcn.1400a3060
movsxd r8, r14d
add r8, r8
lea rcx, [r15 + rbx]
je 0x1400246d3
test rcx, rcx
jne 0x1400246ca
call fcn.1400a31cc
mov dword [rax], 0x16
call fcn.1400a3060
jmp 0x1400246d3
lea rdx, [rbp - 0x40]
call fcn.14009d3c0
lea rdi, [rbx - 0x18]
cmp r12d, dword [rdi + 0xc]
jg 0x1400249a9
mov dword [rdi + 8], r12d
movsxd rax, r12d
xor ecx, ecx
mov word [rbx + rax*2], cx
add rsi, 0xffffffffffffffe8
cmp rdi, rsi
je 0x140024753
mov eax, dword [rsi + 0x10]
shr eax, 0x1f
test al, al
jne 0x140024743
mov rax, qword [rsi]
cmp qword [rdi], rax
jne 0x140024743
mov rcx, rdi
call fcn.140006780
mov rbx, rax
mov r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x140024734
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + VariantCopy]
lea rax, [rbx + 0x18]
mov qword [rbp - 0x48], rax
mov r13d, dword [rsp + 0x30]
jmp 0x14002475a
mov r8d, dword [rdi + 8]
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.1400068f0
mov r14, 0xffffffffffffffff
and r13d, 0xfffffffd
mov dword [rsp + 0x30], r13d
mov eax, r14d
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14002477c
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + VariantCopy]
and dword [rsp + 0x30], 0xfffffffb
mov eax, r14d
mov rdx, qword [rbp - 0x70]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002479b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
and dword [rsp + 0x30], 0xfffffff7
mov eax, r14d
mov rdx, qword [rbp - 0x68]
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400247ba
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
mov r13d, dword [rsp + 0x34]
mov rdi, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
mov rsi, qword [rbp - 0x48]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140024899
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
xor ebx, ebx
mov qword [rsp + 0x78], rbx
mov qword [rbp - 0x80], rbx
mov r8, r14
nop word [rax + rax]
inc r8
cmp word [rsi + r8*2], bx
jne 0x140024800
mov rdx, rsi
lea rcx, [rsp + 0x68]
call fcn.140003860
nop
mov rdx, qword [r12 + 8]
cmp rdx, qword [r12 + 0x10]
je 0x14002484b
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0x78]
movups xmmword [rdx + 0x10], xmm1
mov eax, 7
mov qword [rbp - 0x80], rax
mov word [rsp + 0x68], bx
add qword [r12 + 8], 0x20
jmp 0x14002485c
lea r8, [rsp + 0x68]
mov rcx, r12
call fcn.14002bb20
mov rax, qword [rbp - 0x80]
cmp rax, 8
jb 0x140024899
lea rdx, [rax*2 + 2]
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140024894
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400249a3
call fcn.14009bfe4
inc r13d
mov dword [rsp + 0x34], r13d
mov r8d, r13d
lea rdx, str._dCmdLine
lea rcx, [rbp - 0x50]
call fcn.14002af10
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x104
lea r9, [rbp - 0x40]
lea r8, [0x1400f1b38]
mov rdx, qword [rbp - 0x50]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ebx, eax
test eax, eax
jne 0x140024310
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140024902
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140024921
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x14002493f
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rVariantCopy + 8]
mov rax, r12
mov rcx, qword [rbp + 0x3e0]
xor rcx, rsp
call fcn.14009c570
mov rbx, qword [rsp + 0x548]
add rsp, 0x4f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.140007f00
nop
mov ecx, 0x80004005
call fcn.140007f00
nop
mov ecx, 0x80004005
call fcn.140007f00
nop
mov ecx, 0x80004005
call fcn.140007f00
nop
mov ecx, 0x80004005
call fcn.140007f00
nop
call fcn.1400a3080
nop
mov ecx, 0x80070057
call fcn.140007f00
nop
mov ecx, 0x80004005
call fcn.140007f00
nop
mov ecx, 0x80070057
call fcn.140007f00
nop
mov ecx, 0x80004005
call fcn.140007f00
int3