Function at 0x402cc0
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4af587
mov eax, dword fs:[0]
push eax
sub esp, 0x90c
mov eax, dword [0x4e5114]
xor eax, ebp
mov dword [ebp - 0x10], eax
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x8ac], ecx
push 0x208
push 0
lea eax, [ebp - 0x420]
push eax
call fcn.0048e340
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x218]
push ecx
call fcn.0048e340
add esp, 0xc
push 0x4cf708
lea ecx, [ebp - 0x848]
call fcn.004020b0
mov dword [ebp - 4], 0
push 0x4cf70c
lea ecx, [ebp - 0x860]
call fcn.004020b0
mov byte [ebp - 4], 1
push 0x4cf710
lea ecx, [ebp - 0x878]
call fcn.004020b0
mov byte [ebp - 4], 2
push 0x4cf714
lea ecx, [ebp - 0x890]
call fcn.004020b0
mov byte [ebp - 4], 3
mov dword [ebp - 0x8b0], 0
push 0
push 0x2b
lea edx, [ebp - 0x420]
push edx
push 0
call fcn.0040e440
add esp, 0x10
lea eax, [ebp - 0x420]
add eax, 0xfffffffe
mov dword [ebp - 0x8d8], eax
mov ecx, dword [ebp - 0x8d8]
mov dx, word [ecx + 2]
mov word [ebp - 0x8de], dx
add dword [ebp - 0x8d8], 2
cmp word [ebp - 0x8de], 0
jne 0x402d9f
mov edi, dword [ebp - 0x8d8]
mov eax, dword [0x4cf718]
mov dword [edi], eax
lea ecx, [ebp - 0x420]
add ecx, 0xfffffffe
mov dword [ebp - 0x8d4], ecx
mov edx, dword [ebp - 0x8d4]
mov ax, word [edx + 2]
mov word [ebp - 0x8e0], ax
add dword [ebp - 0x8d4], 2
cmp word [ebp - 0x8e0], 0
jne 0x402ddd
mov edi, dword [ebp - 0x8d4]
mov ecx, dword [0x4cf71c]
mov dword [edi], ecx
mov edx, dword [0x4cf720]
mov dword [edi + 4], edx
mov eax, dword [0x4cf724]
mov dword [edi + 8], eax
mov ecx, dword [0x4cf728]
mov dword [edi + 0xc], ecx
mov dx, word [0x4cf72c]
mov word [edi + 0x10], dx
lea eax, [ebp - 0x420]
add eax, 0xfffffffe
mov dword [ebp - 0x8d0], eax
mov ecx, dword [ebp - 0x8d0]
mov dx, word [ecx + 2]
mov word [ebp - 0x8e2], dx
add dword [ebp - 0x8d0], 2
cmp word [ebp - 0x8e2], 0
jne 0x402e41
mov edi, dword [ebp - 0x8d0]
mov eax, dword [0x4cf730]
mov dword [edi], eax
lea ecx, [ebp - 0x420]
add ecx, 0xfffffffe
mov dword [ebp - 0x8cc], ecx
mov edx, dword [ebp - 0x8cc]
mov ax, word [edx + 2]
mov word [ebp - 0x8e4], ax
add dword [ebp - 0x8cc], 2
cmp word [ebp - 0x8e4], 0
jne 0x402e7f
mov edi, dword [ebp - 0x8cc]
mov ecx, dword [0x4cf734]
mov dword [edi], ecx
mov edx, dword [0x4cf738]
mov dword [edi + 4], edx
mov eax, dword [0x4cf73c]
mov dword [edi + 8], eax
mov ecx, dword [0x4cf740]
mov dword [edi + 0xc], ecx
mov dx, word [0x4cf744]
mov word [edi + 0x10], dx
lea eax, [ebp - 0x420]
add eax, 0xfffffffe
mov dword [ebp - 0x8dc], eax
mov ecx, dword [ebp - 0x8dc]
mov dx, word [ecx + 2]
mov word [ebp - 0x8e6], dx
add dword [ebp - 0x8dc], 2
cmp word [ebp - 0x8e6], 0
jne 0x402ee3
mov edi, dword [ebp - 0x8dc]
mov eax, dword [0x4cf748]
mov dword [edi], eax
mov ecx, dword [0x4cf74c]
mov dword [edi + 4], ecx
mov dx, word [0x4cf750]
mov word [edi + 8], dx
lea eax, [ebp - 0x420]
push eax
push 0x104
lea ecx, [ebp - 0x218]
push ecx
push 0x4cf754
push 0x4cf758
push 0x4cf768
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x218]
mov dword [ebp - 0x8b4], edx
mov eax, dword [ebp - 0x8b4]
add eax, 2
mov dword [ebp - 0x8f8], eax
mov ecx, dword [ebp - 0x8b4]
mov dx, word [ecx]
mov word [ebp - 0x8f4], dx
add dword [ebp - 0x8b4], 2
cmp word [ebp - 0x8f4], 0
jne 0x402f69
mov eax, dword [ebp - 0x8b4]
sub eax, dword [ebp - 0x8f8]
sar eax, 1
mov dword [ebp - 0x8fc], eax
mov ecx, dword [ebp - 0x8fc]
mov dword [ebp - 0x8b0], ecx
cmp dword [ebp - 0x8b0], 0
jle 0x40304f
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40304f
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x848]
call fcn.00406c60
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x28
call fcn.00406c60
mov edx, dword [ebp - 0x8ac]
mov byte [edx + 6], 1
mov eax, dword [ebp - 0x8ac]
movzx ecx, byte [eax + 8]
test ecx, ecx
jne 0x40304f
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x890]
call fcn.004022e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x878]
call fcn.004022e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x860]
call fcn.004022e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x848]
call fcn.004022e0
jmp 0x4035f5
push 0x208
push 0
lea edx, [ebp - 0x830]
push edx
call fcn.0048e340
add esp, 0xc
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x58
call fcn.00405d30
movzx eax, al
test eax, eax
je 0x4030af
push 0x104
lea ecx, [ebp - 0x830]
push ecx
mov edx, dword [ebp - 0x8ac]
mov eax, dword [edx + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea ecx, [ebp - 0x830]
push ecx
call fcn.00406c40
add esp, 8
xor edx, edx
mov word [eax + 2], dx
jmp 0x403123
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x58
call fcn.00401c90
mov dword [ebp - 0x8ec], eax
lea eax, [ebp - 0x830]
mov dword [ebp - 0x8c8], eax
mov ecx, dword [ebp - 0x8c8]
mov dword [ebp - 0x918], ecx
mov edx, dword [ebp - 0x8ec]
mov ax, word [edx]
mov word [ebp - 0x8c2], ax
mov ecx, dword [ebp - 0x8c8]
mov dx, word [ebp - 0x8c2]
mov word [ecx], dx
mov eax, dword [ebp - 0x8ec]
add eax, 2
mov dword [ebp - 0x8ec], eax
mov ecx, dword [ebp - 0x8c8]
add ecx, 2
mov dword [ebp - 0x8c8], ecx
cmp word [ebp - 0x8c2], 0
jne 0x4030db
push 0x208
push 0
lea edx, [ebp - 0x628]
push edx
call fcn.0048e340
add esp, 0xc
push 0x4cf77c
lea eax, [ebp - 0x830]
push eax
push 0x4cf798
lea ecx, [ebp - 0x628]
push ecx
call fcn.00401b30
add esp, 0x10
lea edx, [ebp - 0x628]
push edx
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x4cf7a4
push 0x4cf7a8
push 0x4cf7b8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x8b8], ecx
mov edx, dword [ebp - 0x8b8]
add edx, 2
mov dword [ebp - 0x900], edx
mov eax, dword [ebp - 0x8b8]
mov cx, word [eax]
mov word [ebp - 0x8f2], cx
add dword [ebp - 0x8b8], 2
cmp word [ebp - 0x8f2], 0
jne 0x40319c
mov edx, dword [ebp - 0x8b8]
sub edx, dword [ebp - 0x900]
sar edx, 1
mov dword [ebp - 0x904], edx
mov eax, dword [ebp - 0x904]
mov dword [ebp - 0x8b0], eax
cmp dword [ebp - 0x8b0], 0
jle 0x403282
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x403282
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x860]
call fcn.00406c60
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x28
call fcn.00406c60
mov ecx, dword [ebp - 0x8ac]
mov byte [ecx + 6], 1
mov edx, dword [ebp - 0x8ac]
movzx eax, byte [edx + 8]
test eax, eax
jne 0x403282
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x890]
call fcn.004022e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x878]
call fcn.004022e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x860]
call fcn.004022e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x848]
call fcn.004022e0
jmp 0x4035f5
push 0x4cf7c8
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x70
call fcn.00401c90
push eax
push 0x4cf7e4
lea ecx, [ebp - 0x628]
push ecx
call fcn.00401b30
add esp, 0x10
lea edx, [ebp - 0x628]
push edx
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x4cf7f0
push 0x4cf7f4
push 0x4cf804
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x8bc], ecx
mov edx, dword [ebp - 0x8bc]
add edx, 2
mov dword [ebp - 0x908], edx
mov eax, dword [ebp - 0x8bc]
mov cx, word [eax]
mov word [ebp - 0x8f0], cx
add dword [ebp - 0x8bc], 2
cmp word [ebp - 0x8f0], 0
jne 0x4032ed
mov edx, dword [ebp - 0x8bc]
sub edx, dword [ebp - 0x908]
sar edx, 1
mov dword [ebp - 0x90c], edx
mov eax, dword [ebp - 0x90c]
mov dword [ebp - 0x8b0], eax
cmp dword [ebp - 0x8b0], 0
jle 0x4033d3
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4033d3
lea edx, [ebp - 0x218]
push edx
lea ecx, [ebp - 0x878]
call fcn.00406c60
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x28
call fcn.00406c60
mov ecx, dword [ebp - 0x8ac]
mov byte [ecx + 6], 1
mov edx, dword [ebp - 0x8ac]
movzx eax, byte [edx + 8]
test eax, eax
jne 0x4033d3
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x890]
call fcn.004022e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x878]
call fcn.004022e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x860]
call fcn.004022e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x848]
call fcn.004022e0
jmp 0x4035f5
push 0x4cf814
push 0x4cf818
push 0x4cf828
lea ecx, [ebp - 0x8a8]
push ecx
mov ecx, dword [ebp - 0x8ac]
call fcn.004058d0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x8a8]
call fcn.00401c90
mov dword [ebp - 0x8c0], eax
mov edx, dword [ebp - 0x8c0]
add edx, 2
mov dword [ebp - 0x910], edx
mov eax, dword [ebp - 0x8c0]
mov cx, word [eax]
mov word [ebp - 0x8ee], cx
add dword [ebp - 0x8c0], 2
cmp word [ebp - 0x8ee], 0
jne 0x403418
mov edx, dword [ebp - 0x8c0]
sub edx, dword [ebp - 0x910]
sar edx, 1
mov dword [ebp - 0x914], edx
mov eax, dword [ebp - 0x914]
mov dword [ebp - 0x8b0], eax
cmp dword [ebp - 0x8b0], 0
jle 0x403512
lea ecx, [ebp - 0x8a8]
call fcn.00401c90
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x403512
lea ecx, [ebp - 0x8a8]
push ecx
lea ecx, [ebp - 0x890]
call fcn.00405e10
lea edx, [ebp - 0x8a8]
push edx
mov ecx, dword [ebp - 0x8ac]
add ecx, 0x28
call fcn.00405e10
mov eax, dword [ebp - 0x8ac]
mov byte [eax + 6], 1
mov ecx, dword [ebp - 0x8ac]
movzx edx, byte [ecx + 8]
test edx, edx
jne 0x403512
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x8a8]
call fcn.004022e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x890]
call fcn.004022e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x878]
call fcn.004022e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x860]
call fcn.004022e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x848]
call fcn.004022e0
jmp 0x4035f5
mov eax, dword [ebp - 0x8ac]
movzx ecx, byte [eax + 8]
test ecx, ecx
je 0x4035a7
mov edx, dword [ebp - 0x8ac]
movzx eax, byte [edx + 6]
test eax, eax
je 0x4035a7
lea ecx, [ebp - 0x860]
push ecx
lea edx, [ebp - 0x848]
push edx
call fcn.00406030
add esp, 8
movzx eax, al
test eax, eax
je 0x403559
mov ecx, dword [ebp - 0x8ac]
mov byte [ecx + 9], 1
lea edx, [ebp - 0x878]
push edx
lea eax, [ebp - 0x848]
push eax
call fcn.00406030
add esp, 8
movzx ecx, al
test ecx, ecx
je 0x403580
mov edx, dword [ebp - 0x8ac]
mov byte [edx + 9], 1
lea eax, [ebp - 0x890]
push eax
lea ecx, [ebp - 0x848]
push ecx
call fcn.00406030
add esp, 8
movzx edx, al
test edx, edx
je 0x4035a7
mov eax, dword [ebp - 0x8ac]
mov byte [eax + 9], 1
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x8a8]
call fcn.004022e0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x890]
call fcn.004022e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x878]
call fcn.004022e0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x860]
call fcn.004022e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x848]
call fcn.004022e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0048b588
mov esp, ebp
pop ebp
ret