Function at 0x401100
Capabilities:
Delete file
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4325d8
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44161c]
xor eax, esp
push eax
lea eax, [esp + 0x34]
mov dword fs:[0], eax
mov eax, dword [esp + 0x44]
mov edx, dword [0x44569c]
mov dword [0x445504], eax
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40115f
push 0x104
mov ecx, 0x44569c
call fcn.00404080
mov edx, dword [0x44569c]
push 0x104
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x44569c]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0041e9cc
add esp, 8
test eax, eax
jl 0x401639
mov ecx, dword [0x44569c]
cmp eax, dword [ecx - 8]
jg 0x401639
mov dword [ecx - 0xc], eax
mov edx, dword [0x44569c]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [0x44569c]
push 0x5c
push eax
call fcn.0041ef57
add esp, 8
test eax, eax
jne 0x4011be
or eax, 0xffffffff
jmp 0x4011c6
sub eax, dword [0x44569c]
sar eax, 1
inc eax
push eax
lea ecx, [esp + 0x48]
push ecx
mov ecx, 0x44569c
call fcn.00402d80
push eax
mov ecx, 0x44569c
mov dword [esp + 0x40], 0
call fcn.00403e90
mov dword [esp + 0x3c], 0xffffffff
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x401212
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00404219
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40122c
push 0x80004005
call fcn.00404100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push ecx
mov ecx, esp
mov dword [esp + 0x40], 1
mov dword [esp + 0x48], esp
push str.GameStart.ini
push 0x44569c
push ecx
call fcn.00402ee0
add esp, 0xc
call fcn.004028e0
add esp, 4
test eax, eax
je 0x4012ab
push str.GameStart.ini
lea edx, [esp + 0x48]
push 0x44569c
push edx
call fcn.00402ee0
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x40], 2
call fcn.00403e90
mov byte [esp + 0x3c], 1
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jmp 0x4012ea
push str.gameyxdown.dat
lea ecx, [esp + 0x48]
push 0x44569c
push ecx
call fcn.00402ee0
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x40], 3
call fcn.00403e90
mov byte [esp + 0x3c], 1
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4012f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00404219
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x401310
push 0x80004005
call fcn.00404100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x44], esi
mov byte [esp + 0x3c], 4
call fcn.00404219
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40133f
push 0x80004005
call fcn.00404100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x3c], 5
mov eax, dword [edi - 8]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x40137a
push 0x104
lea ecx, [esp + 0x20]
call fcn.00404080
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push ebp
push 0x104
push edi
push 0x438958
push str.GameName
push str.main
call ebx
mov eax, dword [edi - 8]
push eax
push edi
call fcn.0041e9cc
add esp, 8
test eax, eax
jl 0x401639
cmp eax, dword [edi - 8]
jg 0x401639
xor ecx, ecx
mov dword [edi - 0xc], eax
lea edx, [esp + 0x1c]
mov word [edi + eax*2], cx
push edx
mov ecx, 0x4456a0
call fcn.00403e90
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x104
or eax, ecx
jge 0x4013f8
push 0x104
lea ecx, [esp + 0x48]
call fcn.00404080
mov esi, dword [esp + 0x44]
push ebp
push 0x104
push esi
push 0x438958
push 0x4386e8
push str.main
call ebx
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0041e9cc
add esp, 8
test eax, eax
jl 0x401639
cmp eax, dword [esi - 8]
jg 0x401639
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov esi, dword [esi - 0xc]
add esi, 0xfffffffc
push esi
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x4c]
call fcn.00402d80
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x40], 6
call fcn.00403e90
mov byte [esp + 0x3c], 5
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401480
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [0x44569c]
mov eax, dword [ecx - 0xc]
dec eax
push eax
lea edx, [esp + 0x24]
push edx
mov ecx, 0x44569c
call fcn.00402d80
mov bl, 7
mov byte [esp + 0x3c], bl
mov ebp, dword [esp + 0x20]
mov esi, dword [ebp - 0xc]
push 0x5c
push ebp
call fcn.0041ef57
add esp, 8
test eax, eax
jne 0x4014bb
or eax, 0xffffffff
jmp 0x4014bf
sub eax, ebp
sar eax, 1
sub esi, eax
dec esi
push esi
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x28]
call fcn.00402d00
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x40], 8
call fcn.00403e90
mov byte [esp + 0x3c], bl
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401504
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.00404219
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40151e
push 0x80004005
call fcn.00404100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x40], 9
call fcn.00402bf0
add esp, 4
mov byte [esp + 0x3c], 0xa
mov edx, dword [esp + 0x2c]
push edi
push edx
lea eax, [esp + 0x2c]
push str._s_s.lnk
push eax
call fcn.00403ce0
add esp, 0x10
call fcn.00402b80
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x401573
mov ecx, dword [esp + 0x24]
push ecx
call esi
xor eax, eax
cmp dword [esp + 0x44], eax
setne al
test eax, eax
jne 0x40158a
push 0x80004005
call fcn.00404100
call fcn.00401cd0
call fcn.00404219
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4015a9
push 0x80004005
call fcn.00404100
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x3c], 0xb
mov ecx, dword [0x4456a0]
push ecx
lea edx, [esp + 0x2c]
push 0x438704
push edx
call fcn.00403ce0
mov eax, dword [esp + 0x34]
add esp, 0xc
push 0
push 0x43871c
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
push str.unist.xml
lea ecx, [esp + 0x34]
push 0x44569c
push ecx
call fcn.00402ee0
add esp, 0xc
mov byte [esp + 0x3c], 0xc
mov edx, dword [esp + 0x30]
push edx
call esi
call fcn.004029b0
call fcn.00401f10
cmp dword [0x445698], 0
je 0x40162b
mov dword [0x445698], 0
push 0
call fcn.0040475e
push 0
call fcn.0041ee9e
push 0x80070057
call fcn.00404100
int3