Function at 0x4085f0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4499d0
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e700]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
call fcn.00410248
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x408631
push 0x80004005
call fcn.00401dd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x44], 0
call fcn.00410248
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x408663
push 0x80004005
call fcn.00401dd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
mov byte [esp + 0x44], 1
call fcn.00410248
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x408692
push 0x80004005
call fcn.00401dd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x4c]
push str.static.ini
add ecx, 0x20c
push ecx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0x50], 2
call fcn.00409ca0
add esp, 0xc
mov byte [esp + 0x44], 3
mov eax, dword [esp + 0x14]
push eax
push 0xffffffffffffffff
push str.start
push str.nslm
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp eax, 1
je 0x408884
mov eax, dword [edi - 8]
mov ebx, dword [esp + 0x14]
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x408713
push 0x104
lea ecx, [esp + 0x20]
call fcn.00401b80
mov edi, dword [esp + 0x1c]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push ebx
push 0x104
push edi
push 0x450c80
push str.filename
push str.nslm
call ebp
mov eax, dword [edi - 8]
push eax
push edi
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
cmp eax, dword [edi - 8]
jg 0x40887a
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp dword [edi - 0xc], ecx
je 0x40877f
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.00409320
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x462ef8
call fcn.00401ce0
mov edi, dword [esp + 0x1c]
mov eax, dword [esi - 8]
mov ebx, dword [esp + 0x14]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x64
or eax, ecx
jge 0x4087a4
push 0x64
lea ecx, [esp + 0x24]
call fcn.00401b80
mov esi, dword [esp + 0x20]
push ebx
push 0x64
push esi
push 0x450c80
push 0x45191c
push str.nslm
call ebp
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
cmp eax, dword [esi - 8]
jg 0x40887a
push ecx
xor edx, edx
lea ebp, [edi - 0x10]
mov dword [esi - 0xc], eax
mov dword [esp + 0x30], esp
mov ebx, esp
push ebp
mov word [esi + eax*2], dx
call fcn.00401e00
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x4c], 4
add esi, 0xfffffff0
mov dword [esp + 0x30], esp
mov ebx, esp
push esi
call fcn.00401e00
add eax, 0x10
mov dword [ebx], eax
mov ebx, dword [esp + 0x58]
add esp, 4
mov ecx, ebx
mov byte [esp + 0x4c], 3
call fcn.00407c10
lea eax, [esp + 0x1c]
lea ecx, [ebx + 0x230]
push eax
call fcn.00401ce0
mov ecx, dword [esp + 0x14]
mov ebx, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push ecx
push 0x451484
push str.start
push str.nslm
call ebx
mov edx, dword [esp + 0x14]
push edx
push edi
push str.filename
push str.nslm
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
push ecx
push 0x451924
push str.nslm
call ebx
jmp 0x408c06
push 0x80070057
call fcn.00401dd0
call fcn.00410248
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40889e
push 0x80004005
call fcn.00401dd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x24], ebx
mov byte [esp + 0x44], 5
call fcn.00410248
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4088cd
push 0x80004005
call fcn.00401dd0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x28], ebp
mov byte [esp + 0x44], 6
mov ecx, dword [esp + 0x14]
mov eax, dword [edi - 8]
mov dword [esp + 0x2c], ecx
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, 0x104
or eax, ecx
jge 0x408910
push 0x104
lea ecx, [esp + 0x20]
call fcn.00401b80
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
push edx
push 0x104
push edi
push 0x450c80
push str.filename
push str.nslm
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [edi - 8]
push eax
push edi
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
cmp eax, dword [edi - 8]
jg 0x40887a
mov dword [edi - 0xc], eax
xor ecx, ecx
mov word [edi + eax*2], cx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x18]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x14
or eax, ecx
jge 0x408984
push 0x14
lea ecx, [esp + 0x1c]
call fcn.00401b80
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
push eax
push 0x14
push edx
push 0x450c80
push 0x451924
push str.nslm
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 8]
push eax
push ecx
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
mov ecx, dword [esp + 0x18]
cmp eax, dword [ecx - 8]
jg 0x40887a
mov dword [ecx - 0xc], eax
xor edx, edx
mov word [ecx + eax*2], dx
lea eax, [esp + 0x18]
push eax
mov ecx, 0x462ef8
call fcn.00401ce0
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx - 8]
mov dword [esp + 0x2c], ecx
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, 0x1e
or eax, ecx
jge 0x408a08
push 0x1e
lea ecx, [esp + 0x28]
call fcn.00401b80
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
push edx
push 0x1e
push ebx
push 0x450c80
push 0x4518e0
push str.nslm
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
cmp eax, dword [ebx - 8]
jg 0x40887a
mov dword [ebx - 0xc], eax
xor ecx, ecx
mov word [ebx + eax*2], cx
mov eax, dword [ebp - 8]
mov edx, dword [esp + 0x14]
mov ecx, 1
sub ecx, dword [ebp - 4]
sub eax, 0x104
or eax, ecx
mov dword [esp + 0x2c], edx
jge 0x408a7a
push 0x104
lea ecx, [esp + 0x2c]
call fcn.00401b80
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
push eax
push 0x104
push ebp
push 0x450c80
push 0x4518e8
push str.nslm
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [ebp - 8]
push eax
push ebp
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
cmp eax, dword [ebp - 8]
jg 0x40887a
mov dword [ebp - 0xc], eax
xor ecx, ecx
mov word [ebp + eax*2], cx
mov eax, dword [esi - 8]
mov edx, dword [esp + 0x14]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x14
or eax, ecx
mov dword [esp + 0x2c], edx
jge 0x408aeb
push 0x14
lea ecx, [esp + 0x24]
call fcn.00401b80
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
push eax
push 0x14
push esi
push 0x450c80
push 0x45191c
push str.nslm
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0042f0e5
add esp, 8
test eax, eax
jl 0x40887a
cmp eax, dword [esi - 8]
jg 0x40887a
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
mov ecx, dword [esp + 0x4c]
lea edx, [esp + 0x1c]
add ecx, 0x230
push edx
call fcn.00401ce0
push ecx
lea eax, [ebx - 0x10]
mov dword [esp + 0x34], esp
mov dword [esp + 0x50], esp
push eax
mov dword [esp + 0x34], eax
call fcn.00401e00
mov ecx, dword [esp + 0x54]
add eax, 0x10
mov dword [ecx], eax
mov byte [esp + 0x4c], 7
lea ebx, [ebp - 0x10]
mov dword [esp + 0x3c], esp
mov dword [esp + 0x54], esp
push ebx
call fcn.00401e00
mov edx, dword [esp + 0x58]
add eax, 0x10
mov dword [edx], eax
mov byte [esp + 0x50], 8
lea ebp, [edi - 0x10]
mov dword [esp + 0x44], esp
mov dword [esp + 0x58], esp
push ebp
call fcn.00401e00
mov ecx, dword [esp + 0x5c]
add eax, 0x10
mov dword [ecx], eax
add esi, 0xfffffff0
mov dword [esp + 0x5c], esp
mov edi, esp
push esi
mov byte [esp + 0x58], 9
call fcn.00401e00
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x54], 6
call fcn.004094d0
mov byte [esp + 0x44], 5
lea edx, [ebx + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x408be4
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebx
call eax
mov byte [esp + 0x44], 3
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408c06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 2
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408c2b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 1
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408c50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 0
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408c6e
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [esp + 0x44], 0xffffffff
lea eax, [ebp + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x408c90
mov ecx, dword [ebp]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push ebp
call eax
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4