Function at 0x4100f0
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x3658
call fcn.00430d10
mov eax, dword [0x45f640]
xor eax, esp
push ebx
push ebp
mov ebp, dword [0x45dbd8]
mov dword [esp + 0x365c], eax
mov eax, dword [0x45dbd4]
push esi
cdq
push edi
mov edi, eax
push 2
mov ebx, edx
mov eax, ebp
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov esi, eax
mov eax, dword [0x45dbcc]
push 2
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
push 1
push 0xba7a7bcd
push ebx
push edi
add esi, eax
call fcn.004305f0
push 2
push 0x1b912b5c
push ebx
push edi
sub esi, eax
call fcn.004305f0
mov ebx, dword [0x45dbe0]
mov edi, dword [0x45dbe8]
add esi, eax
mov eax, dword [0x45dbdc]
imul eax, eax, 0x6d4760f7
mov ecx, ebx
imul ecx, ecx, 0x264da184
add esi, eax
push 2
mov eax, edi
cdq
push 0xbeb5aaf
push edx
add esi, ecx
push eax
mov dword [0x45dbc4], esi
call fcn.004305f0
imul esi, esi, 0xf414a551
imul edi, edi, 0x1531b042
sub esi, eax
mov ecx, dword [0x45dbe4]
mov eax, 0x9a168f41
imul ecx, ecx, 0x7d86eec7
mul dword [0x45dbd0]
shr edx, 0x1f
sub esi, edx
mov eax, 0x45291d0f
imul ebp
sar edx, 0x1d
sub esi, edi
mov eax, edx
shr eax, 0x1f
add esi, edx
add eax, esi
sub eax, ecx
lea edx, [eax + ebx - 0x7672ee00]
mov eax, dword [esp + 0x366c]
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
mov dword [0x45dbd0], edx
push 0x2800
test eax, eax
jne 0x410216
lea eax, [esp + 0xe6c]
push eax
push 0x44de89
push str.ConfigL4
jmp 0x410228
lea ecx, [esp + 0xe6c]
push ecx
push 0x44de89
push str.ConfigL4x
push str.GameType1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov esi, dword [0x45dbd0]
push 2
mov eax, esi
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov ebx, dword [0x45dbe4]
mov edi, eax
push 2
mov eax, ebx
cdq
push 0x1b912b5c
push edx
push eax
call fcn.004305f0
mov ecx, dword [0x45dbcc]
add edi, eax
mov eax, 0x1f64bb9f
mul ecx
imul ecx, ecx, 0x74f4f79a
mov eax, dword [0x45dbc4]
shr edx, 0x1c
imul eax, eax, 0x7672ee00
sub edi, edx
mov edx, dword [0x45dbc8]
imul edx, edx, 0x3903276d
sub edi, edx
add edi, eax
add edi, ecx
lea eax, [esp + 0xe64]
mov dword [0x45dbdc], edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4102b0
sub eax, edx
mov dword [esp + 0x10], eax
jne 0x4102c7
or eax, 0xffffffff
jmp 0x410afa
push 1
mov eax, edi
cdq
push 0xc6fcd893
push edx
push eax
call fcn.004305f0
mov ecx, dword [0x45dbe0]
mov edi, eax
mov eax, 0x1f64bb9f
mul ecx
imul ecx, ecx, 0x3053d3f1
shr edx, 0x1c
sub edi, edx
mov eax, 0x2d0ae8c5
mul esi
sub esi, edx
shr esi, 1
add esi, edx
mov eax, 0x45291d0f
imul ebx
shr esi, 0x1f
sar edx, 0x1d
add edi, esi
add edi, ecx
mov ecx, edx
add edi, edx
mov edx, dword [0x45dbd8]
imul edx, edx, 0x7672ee00
shr ecx, 0x1f
add ecx, edi
add ecx, edx
lea eax, [esp + 0xe64]
push eax
mov dword [0x45dbc8], ecx
lea ecx, [esp + 0x28]
push 0x190
push ecx
call fcn.0040f9e0
add esp, 0xc
cmp eax, 4
mov dword [esp + 0x10], eax
jl 0x410af5
and eax, reloc.WS2_32.dll_closesocket
jns 0x410360
dec eax
or eax, 0xfffffffc
inc eax
jne 0x410af5
mov eax, dword [0x45dbdc]
cdq
push 1
push 0x388a7f11
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.004305f0
push 2
push 0x1b912b5c
push edi
push esi
mov ebx, eax
call fcn.004305f0
mov edi, dword [0x45dbc4]
mov esi, dword [0x45dbe8]
mov ebp, dword [0x45dbe4]
mov ecx, edi
imul ecx, ecx, 0x4f22272
mov edx, esi
imul edx, edx, 0x1b912b5c
sub eax, ebx
add eax, edx
add ecx, ebp
mov ebp, dword [0x45dbc8]
mov edx, ebp
imul edx, edx, 0x264da184
add ecx, eax
mov eax, dword [esp + 0x10]
lea ebx, [edx + ecx + 0x7672ee00]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [0x5605d8], eax
mov eax, dword [0x571808]
test eax, eax
mov dword [0x45dbd4], ebx
jg 0x4105b2
push 1
mov eax, esi
cdq
push 0xba7a7bcd
push edx
push eax
call fcn.004305f0
imul ebp, ebp, 0x1531b042
mov ecx, dword [0x45dbd0]
mov esi, eax
sub ebx, ecx
mov eax, 0x9a168f41
imul ebx, ebx, 0x2b57abfe
mul ecx
mov eax, dword [0x45dbd8]
mov ecx, dword [0x45dbcc]
imul eax, eax, 0x3903276d
add esi, ebx
imul ecx, ecx, 0x7672ee00
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
shr edx, 0x1f
sub esi, edx
push 0x800
sub esi, ebp
lea edx, [esp + 0x66c]
push edx
sub esi, eax
push 0x44de89
sub esi, ecx
push str.ConfigL1
mov dword [0x45dbe0], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.GameType1
call esi
lea eax, [esp + 0x664]
push eax
call fcn.00430cd2
mov edi, 3
add esp, 4
cmp eax, edi
mov ebx, 0x78
jge 0x410499
mov dword [0x571808], edi
jmp 0x4104ca
lea ecx, [esp + 0x664]
push ecx
call fcn.00430cd2
add esp, 4
cmp eax, ebx
jle 0x4104b5
mov dword [0x571808], ebx
jmp 0x4104ca
lea edx, [esp + 0x664]
push edx
call fcn.00430cd2
add esp, 4
mov dword [0x571808], eax
mov eax, dword [0x45dbe8]
push 1
cdq
push 0xba7a7bcd
push edx
push eax
call fcn.004305f0
mov ecx, dword [0x45dbd0]
mov ebp, eax
mov eax, dword [0x45dbd4]
sub eax, ecx
imul eax, eax, 0x2b57abfe
add ebp, eax
mov eax, 0x9a168f41
mul ecx
mov ecx, dword [0x45dbc8]
mov eax, dword [0x45dbcc]
imul ecx, ecx, 0x1531b042
shr edx, 0x1f
imul eax, eax, 0x7672ee00
sub ebp, edx
mov edx, dword [0x45dbd8]
imul edx, edx, 0x3903276d
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
sub ebp, ecx
push 0x800
lea ecx, [esp + 0x66c]
push ecx
push 0x44de89
sub ebp, edx
push str.ConfigL2
sub ebp, eax
push str.GameType1
mov dword [0x45dbe0], ebp
call esi
lea edx, [esp + 0x664]
push edx
call fcn.00430cd2
add esp, 4
cmp eax, edi
jge 0x41056f
mov dword [0x57180c], edi
jmp 0x4105a0
lea eax, [esp + 0x664]
push eax
call fcn.00430cd2
add esp, 4
cmp eax, ebx
jle 0x41058b
mov dword [0x57180c], ebx
jmp 0x4105a0
lea ecx, [esp + 0x664]
push ecx
call fcn.00430cd2
add esp, 4
mov dword [0x57180c], eax
mov edi, dword [0x45dbc4]
mov esi, dword [0x45dbe8]
mov ebp, dword [0x45dbc8]
mov eax, ebp
cdq
mov ebx, eax
mov eax, dword [0x45dbe0]
mov dword [esp + 0x20], edx
cdq
mov dword [esp + 0x14], eax
mov eax, dword [0x45dbd8]
push 2
mov dword [esp + 0x1c], edx
cdq
push 0xbeb5aaf
push edx
push eax
mov dword [esp + 0x2c], ebx
call fcn.004305f0
mov edx, dword [esp + 0x20]
push 2
push 0xbeb5aaf
push edx
push ebx
mov dword [esp + 0x20], eax
call fcn.004305f0
mov ecx, dword [esp + 0x10]
sub eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, 0x1f64bb9f
mul dword [0x45dbd0]
mov eax, dword [esp + 0x10]
push 1
shr edx, 0x1c
push 0xba7a7bcd
sub eax, edx
mov edx, dword [esp + 0x1c]
push ecx
push edx
mov dword [esp + 0x20], eax
call fcn.004305f0
mov ecx, dword [esp + 0x10]
add ecx, eax
mov eax, 0x9a168f41
mul dword [0x45dbdc]
mov eax, edi
imul eax, eax, 0x1531b042
shr edx, 0x1f
add ecx, edx
sub ecx, eax
mov eax, 0x45291d0f
imul dword [0x45dbd4]
mov eax, dword [0x5605dc]
sar edx, 0x1d
mov ebx, edx
shr ebx, 0x1f
add ecx, edx
add ebx, ecx
test eax, eax
mov dword [0x45dbcc], ebx
jg 0x41085c
push 1
mov eax, edi
cdq
push 0xeace4fbe
push edx
push eax
call fcn.004305f0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
push 1
push 0x388a7f11
push ecx
push edx
mov edi, eax
call fcn.004305f0
mov ecx, dword [esp + 0x1c]
push 2
add edi, eax
mov eax, dword [esp + 0x24]
push 0x1b912b5c
push eax
push ecx
call fcn.004305f0
imul ebx, ebx, 0x388a7f11
imul ebp, ebp, 0x1b912b5c
sub edi, eax
mov eax, 0x2d0ae8c5
mul esi
mov eax, esi
imul esi, esi, 0x7672ee00
sub eax, edx
shr eax, 1
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
add eax, edx
push 0x800
shr eax, 0x1f
add edi, eax
lea ecx, [esp + 0x66c]
push ecx
sub edi, ebx
push 0x44de89
add edi, ebp
push str.ConfigL3
sub edi, esi
push str.GameType1
mov dword [0x45dbd8], edi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [0x45dbe4]
push 2
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov esi, eax
mov eax, dword [0x45dbd0]
push 0xfffffffffffffffe
cdq
push 0x45858433
push edx
push eax
call fcn.004305f0
mov edi, eax
mov eax, dword [0x45dbcc]
push 2
cdq
push 0x1b912b5c
push edx
push eax
sub edi, esi
call fcn.004305f0
add edi, eax
mov eax, 0x9a168f41
mul dword [0x45dbc4]
mov eax, dword [0x45dbd4]
shr edx, 0x1f
add edi, edx
mov edx, dword [0x45dbd8]
imul edx, edx, 0x1b912b5c
sub edi, edx
imul eax, eax, 0x7114fe22
lea ecx, [esp + 0x664]
add edi, eax
push ecx
mov dword [0x45dbe4], edi
call fcn.00430cd2
mov ecx, dword [0x5605d8]
add esp, 4
cmp eax, ecx
jge 0x4107af
mov dword [0x5605dc], ecx
jmp 0x410850
lea edx, [esp + 0x664]
push edx
call fcn.00430cd2
add esp, 4
cmp eax, 0x64
jle 0x41083b
mov eax, dword [0x45dbdc]
cdq
push 1
push 0x388a7f11
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.004305f0
push 2
push 0x1b912b5c
push edi
push esi
mov ebx, eax
call fcn.004305f0
mov esi, dword [0x45dbe8]
mov edi, dword [0x45dbc4]
mov ebp, dword [0x45dbe4]
mov ecx, esi
imul ecx, ecx, 0x1b912b5c
sub eax, ebx
mov edx, edi
imul edx, edx, 0x4f22272
add eax, ecx
mov ecx, dword [0x45dbc8]
imul ecx, ecx, 0x264da184
add edx, ebp
add edx, eax
lea edx, [ecx + edx + 0x7672ee00]
mov dword [0x45dbd4], edx
mov dword [0x5605dc], 0x64
jmp 0x41085c
lea eax, [esp + 0x664]
push eax
call fcn.00430cd2
add esp, 4
mov dword [0x5605dc], eax
mov edi, dword [0x45dbc4]
mov esi, dword [0x45dbe8]
push 2
mov eax, esi
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
imul edi, edi, 0xf414a551
imul esi, esi, 0x1531b042
sub edi, eax
mov eax, 0x9a168f41
mul dword [0x45dbd0]
shr edx, 0x1f
sub edi, edx
mov eax, 0x45291d0f
imul dword [0x45dbd8]
mov eax, dword [0x45dbe4]
imul eax, eax, 0x7d86eec7
sar edx, 0x1d
mov ecx, edx
sub edi, esi
shr ecx, 0x1f
add edi, edx
mov edx, dword [0x45dbe0]
add ecx, edi
sub ecx, eax
lea eax, [ecx + edx - 0x7672ee00]
push 0
mov dword [0x45dbd0], eax
call fcn.00430cd7
sub eax, dword [0x571830]
add esp, 4
cmp eax, 0xa8c0
jl 0x41095e
mov eax, dword [0x45dbdc]
cdq
push 1
push 0x388a7f11
mov edi, edx
mov esi, eax
push edi
push esi
call fcn.004305f0
push 2
push 0x1b912b5c
push edi
push esi
mov ebx, eax
call fcn.004305f0
mov ecx, dword [0x45dbe8]
mov edx, dword [0x45dbc4]
imul ecx, ecx, 0x1b912b5c
mov edi, dword [0x45dbe4]
imul edx, edx, 0x4f22272
sub eax, ebx
add eax, ecx
mov ecx, dword [0x45dbc8]
imul ecx, ecx, 0x264da184
add edx, edi
add edx, eax
lea edx, [ecx + edx + 0x7672ee00]
push 0
mov dword [0x45dbd4], edx
call fcn.00430cd7
add esp, 4
xor edi, edi
mov dword [0x571830], eax
mov dword [0x5605e0], edi
jmp 0x410964
mov edi, dword [0x5605e0]
mov eax, dword [0x45dbe0]
push 1
cdq
push 0x388a7f11
push edx
push eax
call fcn.004305f0
mov esi, dword [0x45dbc8]
mov ebx, eax
push 2
mov eax, esi
cdq
push 0x1b912b5c
push edx
push eax
call fcn.004305f0
sub ebx, eax
mov eax, dword [0x45dbc4]
push 1
cdq
push 0xeace4fbe
push edx
push eax
call fcn.004305f0
imul esi, esi, 0x1b912b5c
mov ecx, dword [0x45dbe8]
add ebx, eax
mov eax, 0x2d0ae8c5
mul ecx
mov eax, ecx
imul ecx, ecx, 0x7672ee00
sub eax, edx
shr eax, 1
add eax, edx
mov edx, dword [0x45dbcc]
imul edx, edx, 0x388a7f11
shr eax, 0x1f
add ebx, eax
mov eax, dword [0x5605dc]
sub ebx, edx
add ebx, esi
sub ebx, ecx
cmp edi, eax
mov dword [0x45dbd8], ebx
jge 0x410aee
cmp edi, dword [0x5605d8]
jge 0x410a21
push 0
call fcn.00430cd7
mov ecx, dword [0x571808]
mov esi, dword [0x5605e4]
imul ecx, ecx, 0x3c
sub eax, esi
add esp, 4
cmp eax, ecx
jge 0x410a5a
mov edi, dword [0x5605e0]
cmp edi, dword [0x5605dc]
jge 0x410aee
cmp edi, dword [0x5605d8]
jl 0x410aee
push 0
call fcn.00430cd7
sub eax, dword [0x5605e4]
mov edx, dword [0x57180c]
imul edx, edx, 0x3c
add esp, 4
cmp eax, edx
jl 0x410aee
mov eax, dword [0x45dbd0]
push 2
cdq
push 0xbeb5aaf
push edx
push eax
call fcn.004305f0
mov esi, eax
mov eax, dword [0x45dbe4]
push 2
cdq
push 0x1b912b5c
push edx
push eax
call fcn.004305f0
mov ecx, dword [0x45dbcc]
add esi, eax
mov eax, 0x1f64bb9f
mul ecx
imul ecx, ecx, 0x74f4f79a
mov eax, dword [0x45dbc8]
shr edx, 0x1c
imul eax, eax, 0x3903276d
sub esi, edx
mov edx, dword [0x45dbc4]
imul edx, edx, 0x7672ee00
sub esi, eax
mov eax, dword [0x5605e0]
add esi, edx
cdq
idiv dword [0x5605d8]
add esi, ecx
mov dword [0x45dbdc], esi
shl edx, 4
mov eax, dword [esp + edx + 0x24]
mov edx, 0x5605e8
sub edx, eax
jmp 0x410ae0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x410ae0
xor eax, eax
jmp 0x410afa
mov eax, 9
jmp 0x410afa
mov eax, 0xfffffffe
mov ecx, dword [esp + 0x3664]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043040d
add esp, 0x3658
ret