Function at 0x40b9b0
Capabilities:
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x458ea7
mov eax, dword fs:[0]
push eax
sub esp, 0x440
mov eax, dword [0x4727f0]
xor eax, esp
mov dword [esp + 0x438], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4727f0]
xor eax, esp
push eax
lea eax, [esp + 0x454]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x464]
mov eax, dword [ebp + 0x80]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push eax
push 0x200
lea eax, [esp + 0x54]
push eax
push 0
push str.latest_game
push 0x464fc0
call ebx
lea eax, [esp + 0x4c]
lea esi, [ebp + 0xa0]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40ba24
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00401e30
mov eax, dword [esi]
mov edx, dword [ebp + 0x64]
push 0
push eax
push 0x464
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp + 0x98]
push eax
push esi
call fcn.0040d200
add esp, 8
test al, al
je 0x40ba90
lea ecx, [ebp + 0xb0]
call fcn.00401ed0
lea ecx, [ebp + 0xac]
call fcn.00401ed0
lea edi, [ebp + 0xb4]
call fcn.0040d260
xor eax, eax
jmp 0x40c03a
call fcn.00422455
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40baaa
push 0x80004005
call fcn.00401f40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov dword [esp + 0x45c], 0
call fcn.00422455
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40badf
push 0x80004005
call fcn.00401f40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x45c], 1
call fcn.00422455
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bb11
push 0x80004005
call fcn.00401f40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x45c], 2
call fcn.00422455
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bb43
push 0x80004005
call fcn.00401f40
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
xor esi, esi
push esi
lea ecx, [esp + 0x1c]
push str.patch__d
push ecx
mov byte [esp + 0x468], 3
call fcn.00404570
mov eax, dword [ebp + 0x80]
mov edi, dword [esp + 0x24]
add esp, 0xc
push eax
push 0x200
lea edx, [esp + 0x54]
push edx
push esi
push str.from
push edi
call ebx
test eax, eax
je 0x40bc4c
lea eax, [esp + 0x4c]
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x40bba0
sub eax, edx
sar eax, 1
push eax
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x24]
call fcn.00401e30
mov ecx, dword [ebp + 0x98]
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x40baa0
mov eax, dword [esp + 0x1c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40bbfd
test dx, dx
je 0x40bbf9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40bbfd
add eax, 4
add ecx, 4
test dx, dx
jne 0x40bbd7
xor eax, eax
jmp 0x40bc02
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x40bd20
add esi, 1
push esi
lea ecx, [esp + 0x1c]
push str.patch__d
push ecx
call fcn.00404570
mov eax, dword [ebp + 0x80]
mov edi, dword [esp + 0x24]
add esp, 0xc
push eax
push 0x200
lea edx, [esp + 0x54]
push edx
push 0
push str.from
push edi
call ebx
test eax, eax
jne 0x40bb96
mov ecx, dword [0x476eec]
mov ebx, str.PatchNotFound
call fcn.004187b0
push 5
push 0
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 4
jne 0x40bd19
lea eax, [edi - 0x10]
mov byte [esp + 0x45c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bc96
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x45c], 1
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bcbe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x45c], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bce6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x45c], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bd11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
or eax, 0xffffffff
jmp 0x40c03a
push 0
call fcn.0043e0aa
mov eax, dword [ebp + 0x80]
push eax
push 0x200
lea ecx, [esp + 0x54]
push ecx
push 0
push 0x465008
push edi
call ebx
lea eax, [esp + 0x4c]
lea ecx, [ebp + 0xb0]
lea edx, [eax + 2]
jmp 0x40bd50
mov si, word [eax]
add eax, 2
test si, si
jne 0x40bd50
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x50]
push edx
call fcn.00401e30
mov eax, dword [ebp + 0x80]
push eax
push 0x200
lea eax, [esp + 0x54]
push eax
push 0
push 0x465010
push edi
call ebx
lea eax, [esp + 0x4c]
lea ecx, [ebp + 0xac]
lea edx, [eax + 2]
mov si, word [eax]
add eax, 2
test si, si
jne 0x40bd92
sub eax, edx
sar eax, 1
push eax
lea edx, [esp + 0x50]
push edx
call fcn.00401e30
mov eax, dword [ebp + 0x80]
push eax
push 0x200
lea eax, [esp + 0x54]
push eax
xor esi, esi
push esi
push 0x465018
push edi
call ebx
lea eax, [esp + 0x4c]
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], esi
mov word [esp + 0x34], si
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x40bde0
sub eax, edx
sar eax, 1
push eax
lea ecx, [esp + 0x50]
push ecx
lea esi, [esp + 0x38]
call fcn.0040d6e0
push 1
mov eax, esi
mov byte [esp + 0x460], 4
call fcn.0040e550
cmp eax, 0xffffffff
je 0x40be43
mov edi, 1
mov ebx, esi
call fcn.0040e5e0
mov esi, eax
push edi
mov eax, ebx
call fcn.0040e550
sub esi, eax
add esi, edi
push esi
push edi
mov eax, ebx
call fcn.0040e550
push eax
mov eax, ebx
mov ecx, ebx
call fcn.0040d7a0
jmp 0x40be4c
lea edi, [esp + 0x30]
call fcn.0040e230
cmp dword [esp + 0x48], 8
mov eax, dword [esp + 0x34]
jae 0x40be5b
lea eax, [esp + 0x34]
mov esi, dword [ebp + 0x60]
mov edx, dword [esi + 0x24]
push 0
push 0
push 0x10000
mov byte [edx], 0
mov ecx, dword [esi + 0x24]
push ecx
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, dword [esi + 0x24]
mov eax, esi
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x40be90
sub eax, ecx
push eax
add ebp, 0xb4
push esi
mov ecx, ebp
call fcn.00402d90
mov ecx, dword [ebp + 0x18]
cmp ecx, 0x10
lea eax, [ebp + 4]
jb 0x40beb9
mov ebx, dword [eax]
jmp 0x40bebb
mov ebx, eax
test ebx, ebx
je 0x40bede
cmp ecx, 0x10
jb 0x40bec8
mov edx, dword [eax]
jmp 0x40beca
mov edx, eax
cmp edx, ebx
ja 0x40bede
cmp ecx, 0x10
jb 0x40bed5
mov eax, dword [eax]
mov edx, dword [ebp + 0x14]
add edx, eax
cmp ebx, edx
jbe 0x40bee3
call fcn.0043dbb7
mov esi, dword [ebp + 0x18]
cmp esi, 0x10
lea eax, [ebp + 4]
jb 0x40bef2
mov ecx, dword [eax]
jmp 0x40bef4
mov ecx, eax
mov edx, dword [ebp + 0x14]
lea edi, [edx + ecx]
test edi, edi
je 0x40bf1a
cmp esi, 0x10
jb 0x40bf07
mov ecx, dword [eax]
jmp 0x40bf09
mov ecx, eax
cmp ecx, edi
ja 0x40bf1a
cmp esi, 0x10
jb 0x40bf14
mov eax, dword [eax]
add edx, eax
cmp edi, edx
jbe 0x40bf1f
call fcn.0043dbb7
mov edx, dword [ebp + 0x18]
cmp edx, 0x10
lea eax, [ebp + 4]
jb 0x40bf2e
mov esi, dword [eax]
jmp 0x40bf30
mov esi, eax
test esi, esi
je 0x40bf53
cmp edx, 0x10
jb 0x40bf3d
mov ecx, dword [eax]
jmp 0x40bf3f
mov ecx, eax
cmp ecx, esi
ja 0x40bf53
cmp edx, 0x10
jb 0x40bf4a
mov eax, dword [eax]
mov ecx, dword [ebp + 0x14]
add ecx, eax
cmp esi, ecx
jbe 0x40bf58
call fcn.0043dbb7
push ebx
push ebp
push edi
push ebp
push esi
lea edx, [esp + 0x3c]
push ebp
push edx
call fcn.0040dc30
add esp, 0x1c
cmp dword [esp + 0x48], 8
jb 0x40bf7f
mov eax, dword [esp + 0x34]
push eax
call fcn.0041a866
add esp, 4
xor eax, eax
mov dword [esp + 0x44], eax
mov word [esp + 0x34], ax
mov byte [esp + 0x45c], 2
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov dword [esp + 0x48], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bfba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x45c], 1
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40bfe2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x45c], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c00a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x45c], 0xffffffff
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c035
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x454]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x438]
xor ecx, esp
call fcn.0043d963
add esp, 0x44c
ret 4