Function at 0x40f3e0
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x3648
call fcn.0042e810
mov eax, dword [0x45c540]
xor eax, esp
mov dword [esp + 0x3644], eax
push ebx
push ebp
push esi
mov esi, dword [0x45abd4]
push edi
mov edi, dword [0x45abdc]
mov eax, 0x3159721f
imul esi
sar edx, 4
mov ebp, edx
mov ebx, edi
imul ebx, ebx, 0x37
add ebx, edx
mov eax, 0x63e7063f
imul esi
mov esi, dword [0x45abcc]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
imul edx, edx, 0x59
shr ebp, 0x1f
add ebp, ebx
sub ebp, eax
add ebp, edx
mov ecx, dword [0x45abe8]
mov eax, 0x63e7063f
imul ecx, ecx, 0x54
imul esi
sar edx, 5
add ebp, edx
mov ebx, edx
mov eax, 0x78787879
imul esi
mov esi, dword [0x45abd8]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x45abc8]
shr ebx, 0x1f
imul edx, edx, 0x37
add ebx, ebp
sub ebx, eax
add ebx, ecx
mov dword [str._r_____r____], ebx
mov ebx, esi
imul ebx, ebx, 0x52
add ebx, edx
mov edx, dword [0x45abd0]
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x63e7063f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, esi
cdq
and edx, 0xf
add eax, edx
mov edx, dword [0x45abe4]
sar eax, 4
add ebx, eax
mov eax, dword [esp + 0x365c]
sub ebx, edx
lea ecx, [ebx + ecx - 0x10]
mov dword [0x45abd0], ecx
test eax, eax
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
push 0x2800
jne 0x40f501
lea edx, [esp + 0xe5c]
push edx
push 0x44ae89
push str.ConfigL4
jmp 0x40f513
lea eax, [esp + 0xe5c]
push eax
push 0x44ae89
push str.ConfigL4x
push str.GameType1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [0x45abcc]
mov ecx, dword [0x45abd0]
mov ebp, dword [0x45abe0]
mov esi, dword [0x45abe4]
lea ebx, [ecx + edi]
imul ebx, ebx, 0x44
mov edx, ebp
imul edx, edx, 0x21
add ebx, edx
mov eax, 0x3159721f
imul esi
sar edx, 4
add ebx, edx
mov eax, edx
shr eax, 0x1f
add eax, ebx
mov dword [esp + 0x10], eax
mov eax, 0x63e7063f
imul esi
mov eax, dword [esp + 0x10]
sar edx, 5
add eax, edx
mov ebx, edx
shr ebx, 0x1f
add ebx, eax
mov eax, dword [0x45abdc]
shl eax, 4
add ebx, eax
mov eax, 0x94f2095
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
lea eax, [esp + 0xe54]
mov dword [0x45abdc], ebx
lea edi, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40f5a0
sub eax, edi
mov dword [esp + 0x10], eax
jne 0x40f5b7
or eax, 0xffffffff
jmp 0x40fd3c
mov edx, dword [0x45abc8]
add ebp, edx
mov eax, 0x94f2095
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
shl ebp, 4
sub ebp, eax
mov eax, 0xb81702e1
imul ecx
add edx, ecx
sar edx, 6
mov esi, edx
add ebp, edx
mov eax, 0x3e0f83e1
imul ecx
sar edx, 3
shr esi, 0x1f
mov edi, edx
mov eax, ecx
add esi, ebp
add esi, edx
cdq
and edx, 0xf
add eax, edx
lea ecx, [esp + 0xe54]
shr edi, 0x1f
push ecx
sar eax, 4
add edi, esi
lea edx, [esp + 0x18]
add edi, eax
push 0x190
push edx
mov dword [0x45abc8], edi
call fcn.0040ed30
mov ebx, eax
add esp, 0xc
cmp ebx, 4
jl 0x40fd37
and eax, reloc.WS2_32.dll_closesocket
jns 0x40f640
dec eax
or eax, 0xfffffffc
inc eax
jne 0x40fd37
mov edi, dword [0x45abdc]
mov esi, dword [str._r_____r____]
mov ecx, dword [0x45abd8]
lea ebp, [ecx + esi]
imul ebp, ebp, 0x37
mov edx, edi
imul edx, edx, 0x59
add ebp, edx
mov eax, 0x3159721f
imul edi
sar edx, 4
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
mov ebp, eax
mov eax, 0xdd67c8a7
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
mov esi, dword [0x45abe0]
imul edx, edx, 0x53
sub ebp, eax
add ebp, esi
lea ebp, [edx + ebp - 0x10]
mov eax, ebx
cdq
mov ebx, 3
and edx, ebx
add eax, edx
sar eax, 2
mov dword [0x55d4d8], eax
mov eax, dword [0x56e708]
test eax, eax
mov dword [0x45abd4], ebp
jg 0x40f87e
mov edx, dword [0x45abe8]
imul ecx, ecx, 0x21
imul ebp, ebp, 0x54
mov eax, dword [0x45abd0]
lea esi, [eax + edx]
imul esi, esi, 0x4c
mov eax, 0x78787879
imul edx
add esi, ecx
mov ecx, dword [0x45abcc]
sar edx, 5
add esi, edx
mov eax, edx
shr eax, 0x1f
add eax, esi
sub eax, ebp
mov esi, eax
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov ecx, edx
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
shr ecx, 0x1f
push 0x800
add ecx, edx
lea edx, [esp + 0x65c]
push edx
sub esi, ecx
push 0x44ae89
shl edi, 4
sub esi, edi
push str.ConfigL1
mov dword [0x45abe0], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push str.GameType1
call esi
lea eax, [esp + 0x654]
push eax
call fcn.0042e7d2
add esp, 4
cmp eax, ebx
mov edi, 0x78
jge 0x40f765
mov dword [0x56e708], ebx
jmp 0x40f796
lea ecx, [esp + 0x654]
push ecx
call fcn.0042e7d2
add esp, 4
cmp eax, edi
jle 0x40f781
mov dword [0x56e708], edi
jmp 0x40f796
lea edx, [esp + 0x654]
push edx
call fcn.0042e7d2
add esp, 4
mov dword [0x56e708], eax
mov ecx, dword [0x45abe8]
mov eax, dword [0x45abd0]
mov edx, dword [0x45abd8]
lea ebp, [eax + ecx]
imul edx, edx, 0x21
imul ebp, ebp, 0x4c
add ebp, edx
mov eax, 0x78787879
imul ecx
mov ecx, dword [0x45abd4]
imul ecx, ecx, 0x54
sar edx, 5
add ebp, edx
mov eax, edx
shr eax, 0x1f
add eax, ebp
sub eax, ecx
mov ecx, dword [0x45abcc]
mov ebp, eax
mov eax, 0x6bca1af3
imul ecx
mov ecx, dword [0x45abdc]
sar edx, 5
mov eax, edx
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
shr eax, 0x1f
push 0x800
add eax, edx
lea edx, [esp + 0x65c]
push edx
push 0x44ae89
sub ebp, eax
shl ecx, 4
push str.ConfigL2
sub ebp, ecx
push str.GameType1
mov dword [0x45abe0], ebp
call esi
lea eax, [esp + 0x654]
push eax
call fcn.0042e7d2
add esp, 4
cmp eax, ebx
jge 0x40f83b
mov dword [0x56e70c], ebx
jmp 0x40f86c
lea ecx, [esp + 0x654]
push ecx
call fcn.0042e7d2
add esp, 4
cmp eax, edi
jle 0x40f857
mov dword [0x56e70c], edi
jmp 0x40f86c
lea edx, [esp + 0x654]
push edx
call fcn.0042e7d2
add esp, 4
mov dword [0x56e70c], eax
mov ebp, dword [0x45abd4]
mov edi, dword [0x45abdc]
mov esi, dword [0x45abe0]
mov ecx, dword [0x45abe4]
mov eax, 0x3159721f
imul ebp
sar edx, 4
mov eax, esi
imul eax, eax, 0x59
mov ebx, edx
shl ecx, 4
add eax, ecx
mov ecx, dword [0x45abe8]
shr ebx, 0x1f
add ebx, edx
mov edx, ecx
imul edx, edx, 0x54
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, 0x94f2095
imul ebp
mov eax, dword [esp + 0x10]
sar edx, 1
add eax, edx
mov ebp, edx
mov edx, dword [0x45abcc]
shr ebp, 0x1f
add ebp, eax
mov eax, 0xdd67c8a7
imul edx
add edx, dword [0x45abcc]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add ebp, edx
mov edx, dword [str._r_____r____]
add eax, ebp
sub eax, edx
lea edx, [eax + ebx + 0x4c]
mov eax, dword [0x55d4dc]
test eax, eax
mov dword [0x45abcc], edx
jg 0x40fabc
mov eax, 0xdd67c8a7
imul esi
mov eax, dword [0x45abc8]
imul eax, eax, 0x53
add edx, esi
imul esi, esi, 0x25
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
add edi, esi
add edi, eax
mov eax, 0xb81702e1
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
push str.C:_WINDoWS_system32driversetc_serViCe5.ini
add edi, edx
add eax, edi
shl ecx, 4
push 0x800
sub eax, ecx
lea ecx, [esp + 0x65c]
push ecx
push 0x44ae89
push str.ConfigL3
sub eax, ebx
push str.GameType1
mov dword [0x45abd8], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [0x45abd4]
mov eax, dword [0x45abc8]
mov ecx, dword [0x45abe4]
lea esi, [eax + edx]
mov eax, 0x63e7063f
imul esi, esi, 0x25
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [0x45abd8]
mov eax, 0x3159721f
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub esi, ecx
mov ecx, dword [str._r_____r____]
mov edx, ecx
imul edx, edx, 0x53
add esi, edx
mov eax, 0x6bca1af3
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add esi, edx
lea ecx, [esp + 0x654]
add eax, esi
push ecx
mov dword [0x45abe4], eax
call fcn.0042e7d2
mov ecx, dword [0x55d4d8]
add esp, 4
cmp eax, ecx
jge 0x40fa21
mov dword [0x55d4dc], ecx
jmp 0x40fab0
lea edx, [esp + 0x654]
push edx
call fcn.0042e7d2
add esp, 4
cmp eax, 0x64
jle 0x40fa9b
mov edi, dword [0x45abdc]
mov ecx, dword [str._r_____r____]
mov eax, dword [0x45abd8]
lea esi, [eax + ecx]
imul ecx, ecx, 0x53
imul esi, esi, 0x37
mov edx, edi
imul edx, edx, 0x59
add esi, edx
mov eax, 0x3159721f
imul edi
sar edx, 4
add esi, edx
mov ebx, edx
mov eax, 0xdd67c8a7
imul edi
add edx, edi
sar edx, 5
shr ebx, 0x1f
mov eax, edx
shr eax, 0x1f
add eax, edx
add ebx, esi
sub ebx, eax
add ebx, dword [0x45abe0]
lea ecx, [ecx + ebx - 0x10]
mov dword [0x45abd4], ecx
mov dword [0x55d4dc], 0x64
jmp 0x40fab6
lea edx, [esp + 0x654]
push edx
call fcn.0042e7d2
add esp, 4
mov dword [0x55d4dc], eax
mov edi, dword [0x45abdc]
mov ecx, dword [0x45abe8]
mov esi, dword [0x45abd8]
imul ecx, ecx, 0x54
mov eax, dword [0x45abc8]
mov edx, dword [0x45abd0]
imul eax, eax, 0x37
mov ebx, esi
imul ebx, ebx, 0x52
add ebx, eax
mov eax, 0x6bca1af3
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x63e7063f
imul edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, esi
cdq
and edx, 0xf
add eax, edx
add ebx, ecx
sar eax, 4
add ebx, eax
sub ebx, dword [0x45abe4]
sub ebx, 0x10
push 0
mov dword [0x45abd0], ebx
call fcn.0042e7d7
sub eax, dword [0x56e730]
add esp, 4
cmp eax, 0xa8c0
jl 0x40fbaa
mov esi, dword [0x45abdc]
mov ecx, dword [str._r_____r____]
mov edx, dword [0x45abd8]
lea edi, [edx + ecx]
imul ecx, ecx, 0x53
mov eax, esi
imul edi, edi, 0x37
imul eax, eax, 0x59
add edi, eax
mov eax, 0x3159721f
imul esi
sar edx, 4
mov ebx, edx
add edi, edx
mov eax, 0xdd67c8a7
imul esi
add edx, esi
mov esi, dword [0x45abe0]
sar edx, 5
mov eax, edx
shr ebx, 0x1f
shr eax, 0x1f
add ebx, edi
add eax, edx
sub ebx, eax
add ebx, esi
lea ecx, [ecx + ebx - 0x10]
push 0
mov dword [0x45abd4], ecx
call fcn.0042e7d7
add esp, 4
xor esi, esi
mov dword [0x56e730], eax
mov dword [0x55d4e0], esi
jmp 0x40fbb0
mov esi, dword [0x55d4e0]
mov ecx, dword [0x45abe0]
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
imul ecx, ecx, 0x25
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
mov edx, dword [0x45abc8]
imul edx, edx, 0x53
add edi, ecx
mov ecx, dword [0x45abe8]
add edi, edx
mov eax, 0xb81702e1
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, 0x30c30c31
imul ecx
sar edx, 4
add edi, edx
mov ebx, edx
mov edx, dword [0x45abd4]
mov eax, 0x3159721f
imul edx
sar edx, 4
shr ebx, 0x1f
mov eax, edx
shr eax, 0x1f
add ebx, edi
add eax, edx
sub ebx, eax
mov eax, dword [0x55d4dc]
shl ecx, 4
sub ebx, ecx
cmp esi, eax
mov dword [0x45abd8], ebx
jge 0x40fd30
cmp esi, dword [0x55d4d8]
jge 0x40fc65
push 0
call fcn.0042e7d7
mov ecx, dword [0x56e708]
mov esi, dword [0x55d4e4]
imul ecx, ecx, 0x3c
sub eax, esi
add esp, 4
cmp eax, ecx
jge 0x40fc9e
mov esi, dword [0x55d4e0]
cmp esi, dword [0x55d4dc]
jge 0x40fd30
cmp esi, dword [0x55d4d8]
jl 0x40fd30
push 0
call fcn.0042e7d7
sub eax, dword [0x55d4e4]
mov edx, dword [0x56e70c]
imul edx, edx, 0x3c
add esp, 4
cmp eax, edx
jl 0x40fd30
mov ecx, dword [0x45abcc]
mov eax, dword [0x45abd0]
mov edx, dword [0x45abe0]
mov esi, dword [0x45abe4]
imul edx, edx, 0x21
lea edi, [eax + ecx]
imul edi, edi, 0x44
add edi, edx
mov eax, 0x3159721f
imul esi
sar edx, 4
add edi, edx
mov ebx, edx
mov eax, 0x63e7063f
imul esi
mov eax, dword [0x45abdc]
sar edx, 5
mov esi, edx
shr ebx, 0x1f
shl eax, 4
add ebx, edi
add ebx, edx
shr esi, 0x1f
add esi, ebx
add esi, eax
mov eax, 0x94f2095
imul ecx
mov eax, dword [0x55d4e0]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cdq
idiv dword [0x55d4d8]
sub esi, ecx
mov ecx, 0x55d4e8
mov dword [0x45abdc], esi
shl edx, 4
mov eax, dword [esp + edx + 0x14]
sub ecx, eax
mov dl, byte [eax]
mov byte [ecx + eax], dl
inc eax
test dl, dl
jne 0x40fd22
xor eax, eax
jmp 0x40fd3c
mov eax, 9
jmp 0x40fd3c
mov eax, 0xfffffffe
mov ecx, dword [esp + 0x3654]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042dfcd
add esp, 0x3648
ret