Function at 0x405020
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x17dc
call fcn.00430290
mov eax, dword [0x45e540]
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 [0x45cbd0]
mov eax, 0x94adc77f
imul esi
add edx, esi
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, 0x6051edb
imul esi
sar edx, 0xb
add ecx, edx
push edi
mov edi, edx
mov eax, 0xc26c7c39
imul esi
add edx, esi
sar edx, 0xf
shr edi, 0x1f
add edi, ecx
add edi, edx
mov ecx, edx
mov edx, dword [0x45cbc8]
imul edx, edx, 0xa88a
mov ebx, dword [0x45cbe8]
mov ebp, dword [0x45cbe0]
shr ecx, 0x1f
add ecx, edi
add ecx, edx
mov eax, 0x7f915fef
imul dword [0x45cbe4]
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, ebx
imul eax, eax, 0xd60e
mov dword [esp + 0x10], eax
mov edx, ebp
imul edx, edx, 0x8088
sub ecx, edx
mov edi, dword [0x45cbd8]
mov eax, 0x1840c0e3
imul esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, 0xc26c7c39
imul edi
mov eax, dword [esp + 0x10]
add edx, edi
sar edx, 0xf
add eax, edx
mov esi, edx
mov edx, ecx
imul edx, edx, 0x100de
shr esi, 0x1f
add esi, eax
add esi, edx
mov edx, dword [0x45cbdc]
mov eax, 0x2aa871e5
imul edx
sar edx, 0xe
mov eax, edx
mov dword [0x45cbc8], ecx
shr eax, 0x1f
imul edi, edi, 0x18014
add eax, edx
sub esi, eax
add esi, edi
sub esi, dword [0x45cbe4]
mov edi, dword [esp + 0x17f0]
sub esi, 0xa88a
test edi, edi
mov dword [0x45cbd0], esi
je 0x40548b
lea edx, [edi + 1]
mov edi, edi
mov al, byte [edi]
inc edi
test al, al
jne 0x405160
sub edi, edx
mov dword [esp + 0x10], edi
je 0x40548b
mov edi, dword [esp + 0x14]
test edi, edi
je 0x40548b
lea edx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x405182
sub edi, edx
mov dword [esp + 0x10], edi
je 0x40548b
mov eax, 0x94adc77f
imul ecx, ecx, 0xff9f
imul ebx
add edx, ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edi, eax
mov eax, 0x264545a3
imul ebx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
sub eax, edi
mov edx, ebx
imul edx, edx, 0xa88a
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, 0x3e77639f
imul ebp
imul ebp, ebp, 0x10649
mov eax, dword [esp + 0x10]
sar edx, 0xe
add eax, edx
mov edi, edx
mov edx, dword [0x45cbd4]
shr edi, 0x1f
add edi, eax
mov eax, 0x1006124d
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edi, ebp
add eax, edx
sub edi, eax
mov eax, dword [esp + 0x17f0]
add edi, ecx
lea ebp, [esp + 0xfe8]
mov dword [0x45cbd8], edi
sub ebp, eax
mov cl, byte [eax]
mov byte [eax + ebp], cl
inc eax
test cl, cl
jne 0x405221
lea ecx, [esp + 0xfe8]
push ecx
call fcn.00404df0
imul edi, edi, 0x15433
lea ecx, [ebx + esi]
imul ecx, ecx, 0xa8e3
mov eax, 0x5fa6246b
imul ebx
sar edx, 0xf
add ecx, edx
mov esi, edx
mov edx, dword [0x45cbd4]
imul edx, edx, 0xd60e
shr esi, 0x1f
add esi, ecx
mov ecx, dword [0x45cbcc]
sub esi, edx
mov eax, 0x1840c0e3
imul ecx
mov ecx, dword [0x45cbdc]
add esp, 4
imul ecx, ecx, 0xa88a
sar edx, 0xc
mov eax, edx
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
shr eax, 0x1f
add eax, edx
push 0x800
add esi, edi
lea edx, [esp + 0x7f0]
push edx
sub esi, eax
mov eax, dword [esp + 0x20]
push 0x44ce89
push eax
sub esi, ecx
push str.GameType1
mov dword [0x45cbe0], esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x7e8]
lea edx, [eax + 1]
jmp 0x4052d0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4052d0
sub eax, edx
mov dword [esp + 0x10], eax
je 0x405427
mov ecx, dword [0x45cbd0]
mov edx, dword [0x45cbd8]
lea edi, [edx + ecx]
imul ecx, ecx, 0xff9f
mov edx, dword [str._r_____r____]
imul edi, edi, 0xdc65
mov esi, dword [0x45cbc8]
mov eax, 0x6051edb
imul edx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe4]
imul edx, edx, 0xa88a
sub edi, eax
sub edi, edx
mov eax, 0x3e77639f
imul esi
sar edx, 0xe
mov ebx, edx
add edi, edx
mov eax, 0x1006124d
imul esi
shr ebx, 0x1f
add ebx, edi
sar edx, 0xc
sub ebx, ecx
mov eax, edx
lea ecx, [esp + 0x7e8]
push ecx
add ebx, edx
shr eax, 0x1f
lea edx, [esp + 0x1c]
add eax, ebx
push 0x1f4
push edx
mov dword [0x45cbe8], eax
call fcn.0040fab0
mov edi, eax
add esp, 0xc
xor esi, esi
test edi, edi
jle 0x405427
mov edi, edi
mov ecx, dword [0x45cbcc]
mov eax, 0x5fa6246b
imul ecx
sar edx, 0xf
mov ebx, ecx
mov eax, edx
imul ebx, ebx, 0xdc65
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45cbe8]
sub ebx, eax
imul edx, edx, 0xd60e
mov eax, dword [0x45cbdc]
imul eax, eax, 0x100de
add ebx, edx
add ebx, eax
mov eax, 0x2aa871e5
imul ecx
mov ecx, dword [0x45cbd4]
sar edx, 0xe
mov ebp, edx
add ebx, edx
mov eax, 0x2aa871e5
imul ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
shr ebp, 0x1f
add ebp, ebx
sub ebp, eax
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
mov ecx, edx
add ebp, edx
mov edx, dword [esp + esi*4 + 0x18]
shr ecx, 0x1f
push edx
lea eax, [esp + 0xfec]
add ecx, ebp
push eax
mov dword [str._r_____r____], ecx
call fcn.004306a0
add esp, 8
test eax, eax
jne 0x4054a6
inc esi
cmp esi, edi
jl 0x405380
mov esi, dword [0x45cbdc]
mov ecx, dword [str._r_____r____]
mov edx, dword [0x45cbd8]
lea edi, [ecx + edx]
imul ecx, ecx, 0xff9f
imul edi, edi, 0x100de
mov eax, esi
imul eax, eax, 0xdc65
add edi, eax
mov eax, 0x3e77639f
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
add ecx, dword [0x45cbe0]
mov eax, 0x1006124d
imul esi
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
add ecx, edi
lea ecx, [eax + ecx - 0xa88a]
mov dword [0x45cbd4], ecx
xor eax, eax
mov ecx, dword [esp + 0x17e8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042fa4d
add esp, 0x17dc
ret
mov esi, dword [0x45cbe0]
mov ecx, dword [0x45cbe8]
imul esi, esi, 0xdc65
mov edx, dword [0x45cbe4]
imul ecx, ecx, 0xd60e
imul edx, edx, 0xa88a
sub esi, ecx
mov ecx, dword [0x45cbcc]
add esi, edx
mov eax, 0x3e77639f
imul ecx
mov ecx, dword [0x45cbd4]
sar edx, 0xe
add esi, edx
mov edi, edx
mov eax, 0x7f915fef
imul ecx
sar edx, 0xf
shr edi, 0x1f
add edi, esi
add edi, edx
mov esi, edx
mov eax, 0x1006124d
imul ecx
sar edx, 0xc
shr esi, 0x1f
add esi, edi
mov eax, edx
shr eax, 0x1f
add esi, edx
mov edx, dword [str._r_____r____]
add eax, esi
sub eax, edx
add eax, 0xa8e3
mov dword [0x45cbcc], eax
mov eax, 1
jmp 0x40548d