Function at 0x4051b0
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x17dc
call fcn.00430ca0
mov eax, dword [0x45f540]
xor eax, esp
mov dword [esp + 0x17d8], eax
mov eax, dword [esp + 0x17e4]
mov dword [esp + 4], eax
push ebx
push ebp
push esi
mov esi, dword [0x45dbd0]
mov eax, 0x3d2f2c3f
imul esi
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push edi
mov edi, dword [0x45dbe4]
mov eax, 0xc7eb4e25
imul edi
add edx, edi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x92bc6f7d
imul esi
add edx, esi
sar edx, 0xb
add ecx, edx
mov ebx, edx
shr ebx, 0x1f
add ebx, ecx
mov ecx, dword [0x45dbe0]
imul ecx, ecx, 0x736
mov eax, 0x6931b881
imul esi
sar edx, 9
add ebx, ecx
add ebx, edx
mov ecx, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x4de
mov ebp, dword [0x45dbd8]
shr ecx, 0x1f
imul ebp, ebp, 0x224e
add ecx, ebx
add ecx, edx
mov edx, dword [0x45dbdc]
mov ebx, dword [0x45dbe8]
mov eax, 0x77668d35
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebp, eax
mov edx, ebx
imul edx, edx, 0x2214
add ebp, edx
mov eax, 0x8e8c0a95
imul esi
add edx, esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
imul edx, edx, 0x147d
sub ebp, eax
add ebp, edx
mov eax, 0x6931b881
imul dword [0x45dbd8]
sar edx, 9
mov esi, edx
shr esi, 0x1f
add ebp, edx
mov dword [0x45dbc8], ecx
add esi, ebp
mov ebp, dword [esp + 0x17f0]
sub esi, edi
sub esi, 0x4de
test ebp, ebp
mov dword [0x45dbd0], esi
je 0x40561f
mov edi, ebp
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x4052e0
sub edi, edx
mov dword [esp + 0x10], edi
je 0x40561f
mov edi, dword [esp + 0x14]
test edi, edi
je 0x40561f
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x405302
sub edi, edx
mov dword [esp + 0x10], edi
je 0x40561f
mov edx, dword [0x45dbd4]
imul ecx, ecx, 0x2263
mov eax, 0x771da23
imul edx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x1e0c7127
imul ebx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, edi
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, 0x3d2f2c3f
imul ebx
mov eax, dword [esp + 0x10]
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
mov ecx, dword [0x45dbe0]
mov dword [esp + 0x10], eax
mov eax, 0x49e7e4dd
imul ecx
imul ecx, ecx, 0xddb
mov eax, dword [esp + 0x10]
sar edx, 0xa
add eax, edx
mov edi, edx
mov edx, ebx
imul edx, edx, 0x4de
shr edi, 0x1f
add edi, eax
add edi, ecx
sub edi, edx
lea ecx, [esp + 0xfe8]
mov dword [0x45dbd8], edi
mov eax, ebp
sub ecx, ebp
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x4053a8
lea eax, [esp + 0xfe8]
push eax
call fcn.00404f50
imul edi, edi, 0xdf5
mov ecx, dword [0x45dbd4]
imul ecx, ecx, 0x2214
add esi, ebx
imul esi, esi, 0x1cbc
sub esi, ecx
mov ecx, dword [0x45dbcc]
mov eax, 0x8e8c0a95
imul ecx
add edx, ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x98742075
imul ebx
add edx, ebx
sar edx, 0xc
mov ecx, edx
add esi, edx
mov edx, dword [0x45dbdc]
imul edx, edx, 0x4de
add esp, 4
shr ecx, 0x1f
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
add ecx, esi
push 0x800
add ecx, edi
sub ecx, edx
lea eax, [esp + 0x7f0]
push eax
mov dword [0x45dbe0], ecx
mov ecx, dword [esp + 0x20]
push 0x44de89
push ecx
push str.GameType1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x7e8]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405455
sub eax, edx
mov dword [esp + 0x10], eax
je 0x4055bc
mov eax, dword [0x45dbd0]
mov edx, dword [0x45dbd8]
mov esi, dword [0x45dbc8]
lea ecx, [edx + eax]
imul eax, eax, 0x2263
imul ecx, ecx, 0x2179
sub ecx, eax
mov eax, 0x771da23
imul esi
sar edx, 8
add ecx, edx
mov edi, edx
shr edi, 0x1f
add edi, ecx
mov ecx, dword [str._r_____r____]
mov eax, 0x92bc6f7d
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x49e7e4dd
imul esi
sar edx, 0xa
mov ecx, edx
add edi, edx
mov edx, dword [0x45dbe4]
imul edx, edx, 0x4de
shr ecx, 0x1f
add ecx, edi
sub ecx, edx
lea eax, [esp + 0x7e8]
push eax
mov dword [0x45dbe8], ecx
lea ecx, [esp + 0x1c]
push 0x1f4
push ecx
call fcn.00410140
mov ebx, eax
add esp, 0xc
xor esi, esi
test ebx, ebx
jle 0x4055bc
jmp 0x405510
mov edi, dword [0x45dbd4]
mov ecx, dword [0x45dbcc]
mov eax, 0x771da23
imul edi
sar edx, 8
mov ebp, edx
shr ebp, 0x1f
add ebp, edx
mov eax, 0x77668d35
imul ecx
sar edx, 0xc
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0x77668d35
imul edi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
sub ebp, eax
imul edx, edx, 0x2214
mov eax, ecx
imul eax, eax, 0x2179
add ebp, edx
add ebp, eax
mov eax, 0x98742075
imul ecx
mov eax, dword [esp + esi*4 + 0x18]
add edx, ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x45dbdc]
imul edx, edx, 0x147d
sub ebp, ecx
push eax
lea ecx, [esp + 0xfec]
add ebp, edx
push ecx
mov dword [str._r_____r____], ebp
call fcn.004310b0
add esp, 8
test eax, eax
jne 0x40563a
inc esi
cmp esi, ebx
jl 0x405510
mov ecx, dword [0x45dbdc]
mov esi, dword [str._r_____r____]
mov eax, 0x771da23
imul esi, esi, 0x36e0
imul ecx
sar edx, 8
add esi, edx
mov edi, edx
mov edx, dword [0x45dbd8]
mov eax, ecx
imul edx, edx, 0x147d
imul eax, eax, 0x2179
shr edi, 0x1f
add edi, esi
add edi, eax
add edi, edx
mov eax, 0x49e7e4dd
imul ecx
mov ecx, dword [0x45dbe0]
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
lea edx, [edi + ecx - 0x4de]
mov dword [0x45dbd4], edx
xor eax, eax
mov ecx, dword [esp + 0x17e8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043045d
add esp, 0x17dc
ret
mov ecx, dword [0x45dbd4]
mov eax, 0x771da23
imul ecx
sar edx, 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45dbe8]
imul edx, edx, 0x2214
mov esi, eax
mov eax, dword [0x45dbe0]
imul eax, eax, 0x2179
sub esi, edx
add esi, eax
mov eax, 0xc7eb4e25
imul ecx
add edx, ecx
mov ecx, dword [0x45dbcc]
sar edx, 0xc
add esi, edx
mov edi, edx
mov eax, 0x49e7e4dd
imul ecx
sar edx, 0xa
shr edi, 0x1f
add edi, esi
add edi, edx
mov ecx, edx
mov edx, dword [0x45dbe4]
imul edx, edx, 0x4de
shr ecx, 0x1f
add ecx, edi
add ecx, edx
sub ecx, dword [str._r_____r____]
add ecx, 0x1cbc
mov dword [0x45dbcc], ecx
mov eax, 1
jmp 0x405621