Function at 0x4050b0
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x17e4
call fcn.00430d10
mov eax, dword [0x45f640]
xor eax, esp
push ebx
push ebp
push esi
mov dword [esp + 0x17ec], eax
mov eax, dword [esp + 0x17f8]
push edi
mov dword [esp + 0x10], eax
mov eax, dword [0x45dbdc]
push 1
cdq
push 0xc6fcd893
push edx
push eax
call fcn.004305f0
mov ebp, dword [0x45dbe0]
mov ecx, dword [0x45dbd0]
mov ebx, eax
mov eax, 0x1f64bb9f
mul ebp
shr edx, 0x1c
sub ebx, edx
mov eax, 0x2d0ae8c5
mul ecx
sub ecx, edx
mov esi, dword [0x45dbe4]
shr ecx, 1
add ecx, edx
mov edx, dword [0x45dbd8]
shr ecx, 0x1f
imul edx, edx, 0x7672ee00
add ebx, ecx
mov ecx, ebp
imul ecx, ecx, 0x3053d3f1
add ebx, ecx
add ebx, edx
mov eax, 0x45291d0f
imul esi
sar edx, 0x1d
mov edi, edx
add ebx, edx
shr edi, 0x1f
add edi, ebx
mov ebx, dword [0x45dbe8]
push 0xfffffffffffffffd
mov eax, ebx
cdq
push 0xf414a551
push edx
push eax
mov dword [0x45dbc8], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
call fcn.004305f0
imul esi, esi, 0x7d86eec7
mov ecx, eax
mov eax, 0x9a168f41
mul dword [0x45dbd0]
shr edx, 0x1f
sub ecx, edx
mov edx, dword [0x45dbc4]
imul edx, edx, 0xbeb5aaf
mov eax, ebx
imul eax, eax, 0x1531b042
sub ecx, edx
sub ecx, eax
mov eax, 0x45291d0f
imul dword [0x45dbd8]
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add ecx, edx
add eax, ecx
sub eax, esi
lea ecx, [eax + ebp - 0x7672ee00]
mov eax, dword [esp + 0x17f8]
mov dword [0x45dbd0], ecx
test eax, eax
je 0x4054e9
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4051d5
sub eax, edx
mov dword [esp + 0x14], eax
je 0x4054e9
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4054e9
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4051f7
sub eax, edx
mov dword [esp + 0x14], eax
je 0x4054e9
push 1
mov eax, ebp
cdq
push 0x388a7f11
push edx
push eax
call fcn.004305f0
mov esi, eax
push 2
mov eax, edi
cdq
push 0x1b912b5c
push edx
push eax
call fcn.004305f0
sub esi, eax
mov eax, dword [0x45dbc4]
push 1
cdq
push 0xeace4fbe
push edx
push eax
call fcn.004305f0
mov ecx, dword [0x45dbcc]
add esi, eax
imul ecx, ecx, 0x388a7f11
mov eax, 0x2d0ae8c5
mul ebx
mov eax, ebx
imul ebx, ebx, 0x7672ee00
sub eax, edx
shr eax, 1
add eax, edx
mov edx, edi
imul edx, edx, 0x1b912b5c
shr eax, 0x1f
add esi, eax
mov eax, dword [esp + 0x17f8]
sub esi, ecx
add esi, edx
sub esi, ebx
lea ecx, [esp + 0xff0]
mov dword [0x45dbd8], esi
sub ecx, eax
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x405290
lea eax, [esp + 0xff0]
push eax
call fcn.00404e70
mov ecx, dword [0x45dbd0]
mov ebx, dword [0x45dbd4]
sub ebx, ecx
mov eax, 0x9a168f41
imul ebx, ebx, 0x2b57abfe
mul ecx
mov ecx, dword [esp + 0x20]
add esp, 4
push 1
shr edx, 0x1f
push 0xba7a7bcd
sub ebx, edx
mov edx, dword [esp + 0x20]
push ecx
push edx
call fcn.004305f0
imul edi, edi, 0x1531b042
imul esi, esi, 0x3903276d
mov edx, dword [esp + 0x10]
add ebx, eax
mov eax, dword [0x45dbcc]
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
imul eax, eax, 0x7672ee00
push 0x800
lea ecx, [esp + 0x7f8]
push ecx
sub ebx, edi
push 0x44de89
sub ebx, esi
push edx
sub ebx, eax
push str.GameType1
mov dword [0x45dbe0], ebx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [esp + 0x7f0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405336
sub eax, edx
mov dword [esp + 0x14], eax
je 0x405483
mov eax, dword [0x45dbdc]
push 1
cdq
push 0x388a7f11
push edx
push eax
call fcn.004305f0
mov esi, eax
mov eax, dword [0x45dbc8]
push 2
cdq
push 0x1b912b5c
push edx
push eax
call fcn.004305f0
mov edi, eax
sub edi, esi
mov esi, dword [0x45dbd8]
push 1
mov eax, esi
cdq
push 0xc6fcd893
push edx
push eax
call fcn.004305f0
imul esi, esi, 0xabc7628
mov ecx, dword [0x45dbd0]
sub edi, eax
imul ecx, ecx, 0x264da184
mov eax, dword [0x45dbd4]
imul eax, eax, 0x7672ee00
lea edx, [esp + 0x7f0]
sub edi, esi
push edx
sub edi, eax
lea eax, [esp + 0x24]
sub edi, ecx
push 0x1f4
push eax
mov dword [0x45dbe8], edi
call fcn.0040f9e0
add esp, 0xc
xor ebx, ebx
test eax, eax
mov dword [esp + 0x10], eax
jle 0x405483
mov eax, dword [0x45dbd4]
cdq
mov esi, eax
mov eax, dword [0x45dbcc]
push 2
mov edi, edx
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov ebp, eax
mov eax, dword [0x45dbd8]
push 2
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
push 1
push 0xba7a7bcd
push edi
push esi
add ebp, eax
call fcn.004305f0
push 2
push 0x1b912b5c
push edi
push esi
sub ebp, eax
call fcn.004305f0
mov ecx, dword [0x45dbdc]
mov edx, dword [0x45dbe0]
imul ecx, ecx, 0x6d4760f7
imul edx, edx, 0x264da184
add ebp, eax
mov eax, dword [esp + ebx*4 + 0x20]
add ebp, ecx
push eax
lea ecx, [esp + 0xff4]
add ebp, edx
push ecx
mov dword [0x45dbc4], ebp
call fcn.00431120
add esp, 8
test eax, eax
jne 0x405504
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, eax
jl 0x4053e1
mov eax, dword [0x45dbdc]
cdq
push 2
push 0x1b912b5c
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.004305f0
push 1
push 0x388a7f11
push edi
push esi
mov ebx, eax
call fcn.004305f0
mov ecx, dword [0x45dbe8]
mov edx, dword [0x45dbc4]
imul ecx, ecx, 0x1b912b5c
mov esi, dword [0x45dbe4]
imul edx, edx, 0x4f22272
sub ebx, eax
mov eax, dword [0x45dbc8]
imul eax, eax, 0x264da184
add ebx, ecx
add edx, esi
add edx, ebx
lea ecx, [eax + edx + 0x7672ee00]
mov dword [0x45dbd4], ecx
xor eax, eax
mov ecx, dword [esp + 0x17f0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043040d
add esp, 0x17e4
ret
mov eax, dword [0x45dbd8]
push 2
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov esi, eax
mov eax, dword [0x45dbc8]
push 2
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov edi, eax
mov eax, dword [0x45dbe0]
push 1
cdq
push 0xba7a7bcd
push edx
push eax
sub edi, esi
call fcn.004305f0
add edi, eax
mov eax, 0x1f64bb9f
mul dword [0x45dbd0]
shr edx, 0x1c
sub edi, edx
mov ecx, dword [0x45dbd4]
mov eax, 0x9a168f41
mul dword [0x45dbdc]
shr edx, 0x1f
add edi, edx
mov edx, dword [0x45dbc4]
imul edx, edx, 0x1531b042
sub edi, edx
mov eax, 0x45291d0f
imul ecx
sar edx, 0x1d
mov eax, edx
shr eax, 0x1f
add edi, edx
add eax, edi
mov dword [0x45dbcc], eax
mov eax, 1
jmp 0x4054eb