Function at 0x40c680
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x3648
call fcn.0042a220
mov eax, dword [0x458000]
mov dword [esp + 0x3644], eax
push ebx
push ebp
push esi
push edi
mov ecx, dword [0x456694]
mov esi, dword [0x45668c]
mov eax, 0x95e7555
imul esi, esi, 0xdcfc
imul ecx
sar edx, 9
add esi, edx
mov ebx, edx
mov ecx, dword [0x4566a8]
shr ebx, 0x1f
add ebx, esi
mov esi, dword [0x456690]
mov eax, 0x5bdd0ecb
imul esi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov edx, ecx
imul ecx, ecx, 0xb25a
imul edx, edx, 0x3117
add ebx, edx
mov edi, dword [0x45669c]
mov eax, 0x6000f003
imul edi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, eax
mov eax, 0x9524e185
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x5bdd0ecb
imul edi
mov esi, dword [0x4566a0]
mov ebp, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x456688]
imul edx, edx, 0x7f22
sub ecx, eax
mov eax, dword [esp + 0x365c]
add ecx, edx
sub ecx, esi
sub ecx, 0xdd0b
test eax, eax
push 0x456958
mov dword [0x456684], ebx
mov dword [0x456690], ecx
push 0x2800
jne 0x40c786
lea eax, [esp + 0xe5c]
push eax
push 0x446e25
push str.ConfigL4
jmp 0x40c798
lea ecx, [esp + 0xe5c]
push ecx
push 0x446e25
push str.ConfigL4x
push str.GameType1
call ebp
mov ecx, dword [0x456694]
mov edi, dword [0x45668c]
mov esi, ecx
mov eax, 0x5bdd0ecb
imul esi, esi, 0xdd0b
imul ecx
sar edx, 0xe
mov ecx, edx
add esi, edx
shr ecx, 0x1f
add ecx, esi
mov esi, dword [0x456690]
mov edx, esi
imul edx, edx, 0xaaa9
mov eax, edi
imul eax, eax, 0x18161
add ecx, edx
add ecx, eax
mov eax, 0x80df83a9
imul edi
add edx, edi
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
lea eax, [esp + 0xe54]
mov dword [0x45669c], ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40c805
sub eax, edi
mov dword [esp + 0x10], eax
jne 0x40c82e
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
mov ecx, dword [esp + 0x3644]
call fcn.00429911
add esp, 0x3648
ret
mov edi, dword [0x4566a0]
imul esi, esi, 0xdd0b
mov eax, 0x55072b69
imul edi, edi, 0xffff5557
imul ecx
mov ecx, dword [0x4566a4]
mov ebx, dword [0x456688]
sar edx, 0xf
sub edi, esi
mov esi, edx
add edi, edx
mov eax, 0x80df83a9
imul ecx
mov eax, dword [0x456684]
add edx, ecx
sar edx, 0xe
mov ecx, edx
shr esi, 0x1f
shr ecx, 0x1f
add ecx, edx
add esi, edi
lea edx, [esp + 0xe54]
sub esi, ecx
push edx
add esi, eax
lea eax, [esp + 0x18]
push 0x190
add ebx, esi
push eax
mov dword [0x456688], ebx
call fcn.0040c0f0
mov ebx, eax
add esp, 0xc
cmp ebx, 4
jl 0x40cf0f
mov ecx, ebx
and ecx, reloc.WS2_32.dll_closesocket
jns 0x40c8b9
dec ecx
or ecx, 0xfffffffc
inc ecx
jne 0x40cf0f
mov ecx, dword [0x45668c]
mov esi, dword [0x456684]
mov edi, dword [0x45669c]
mov eax, ecx
imul eax, eax, 0xdcfc
mov edx, esi
imul edx, edx, 0x36a6
add eax, edx
mov dword [esp + 0x10], eax
mov eax, 0xb73ab967
imul dword [0x45669c]
add edx, edi
mov edi, dword [0x456698]
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [esp + 0x10]
sub edx, eax
add edx, dword [0x4566a4]
mov eax, edi
imul eax, eax, 0x7f22
lea edx, [eax + edx - 0xdd0b]
mov eax, ebx
mov dword [0x456694], edx
cdq
mov ebx, 3
and edx, ebx
add eax, edx
sar eax, 2
mov dword [0x5592a0], eax
mov eax, dword [0x56a4d0]
test eax, eax
jg 0x40ca9b
mov eax, 0x9524e185
imul edi, edi, 0x733f
imul esi, esi, 0xdbb5
imul ecx
add edx, ecx
push 0x456958
sar edx, 0xf
push 0x800
mov eax, edx
lea ecx, [esp + 0x65c]
push ecx
shr eax, 0x1f
add eax, edx
push 0x446e25
sub edi, eax
push str.ConfigL1
add edi, esi
push str.GameType1
mov dword [0x4566a0], edi
call ebp
lea edx, [esp + 0x654]
push edx
call fcn.0042a1d5
add esp, 4
cmp eax, ebx
mov esi, 0x78
jge 0x40c9b3
mov dword [0x56a4d0], ebx
jmp 0x40c9e4
lea eax, [esp + 0x654]
push eax
call fcn.0042a1d5
add esp, 4
cmp eax, esi
jle 0x40c9cf
mov dword [0x56a4d0], esi
jmp 0x40c9e4
lea ecx, [esp + 0x654]
push ecx
call fcn.0042a1d5
add esp, 4
mov dword [0x56a4d0], eax
mov ecx, dword [0x45668c]
mov edi, dword [0x456698]
mov eax, 0x9524e185
imul edi, edi, 0x733f
imul ecx
add edx, ecx
mov ecx, dword [0x456684]
sar edx, 0xf
imul ecx, ecx, 0xdbb5
mov eax, edx
push 0x456958
shr eax, 0x1f
push 0x800
add eax, edx
lea edx, [esp + 0x65c]
push edx
push 0x446e25
sub edi, eax
push str.ConfigL2
add edi, ecx
push str.GameType1
mov dword [0x4566a0], edi
call ebp
lea eax, [esp + 0x654]
push eax
call fcn.0042a1d5
add esp, 4
cmp eax, ebx
jge 0x40ca5e
mov dword [0x56a4d4], ebx
jmp 0x40ca8f
lea ecx, [esp + 0x654]
push ecx
call fcn.0042a1d5
add esp, 4
cmp eax, esi
jle 0x40ca7a
mov dword [0x56a4d4], esi
jmp 0x40ca8f
lea edx, [esp + 0x654]
push edx
call fcn.0042a1d5
add esp, 4
mov dword [0x56a4d4], eax
mov ecx, dword [0x45668c]
mov edi, dword [0x456698]
mov esi, dword [0x4566a0]
mov eax, 0x95e7555
imul dword [0x456690]
mov ebx, esi
imul ebx, ebx, 0xdcfc
sar edx, 9
add ebx, edx
mov eax, edx
shr eax, 0x1f
add eax, ebx
mov ebx, eax
mov eax, 0xb73ab967
imul ecx
add edx, ecx
mov ecx, dword [0x4566a8]
sar edx, 0xf
add ebx, edx
mov eax, edx
mov edx, ecx
imul edx, edx, 0x3117
shr eax, 0x1f
add eax, ebx
mov ebx, dword [0x456694]
sub eax, edx
sub eax, ebx
add eax, 0xdbb5
mov dword [0x45668c], eax
mov eax, dword [0x5592a4]
test eax, eax
jg 0x40cca1
mov eax, 0x6bb7d05b
imul esi, esi, 0xb2d6
imul ecx
sub edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, ecx
mov ecx, eax
imul ebx, ebx, 0xdd0b
mov eax, 0x95e7555
imul dword [0x456694]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, ebx
sub ecx, eax
mov eax, 0x14dc1615
imul edi
sar edx, 0xa
add ecx, esi
push 0x456958
mov eax, edx
add ecx, edx
shr eax, 0x1f
push 0x800
add eax, ecx
lea ecx, [esp + 0x65c]
push ecx
push 0x446e25
push str.ConfigL3
push str.GameType1
mov dword [0x456698], eax
call ebp
mov edx, dword [0x45668c]
mov ecx, dword [0x45669c]
mov eax, 0x95e7555
imul edx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x456688]
mov esi, ecx
imul edx, edx, 0xb2d6
imul esi, esi, 0x36a6
sub esi, eax
add esi, edx
mov edx, dword [0x4566a4]
mov eax, 0x5bdd0ecb
imul edx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
mov eax, 0x6000f003
imul ecx
sar edx, 0xe
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea edx, [esp + 0x654]
sub esi, ecx
push edx
mov dword [0x4566a4], esi
call fcn.0042a1d5
mov ecx, dword [0x5592a0]
add esp, 4
cmp eax, ecx
jge 0x40cc0b
mov dword [0x5592a4], ecx
jmp 0x40cc95
lea eax, [esp + 0x654]
push eax
call fcn.0042a1d5
add esp, 4
cmp eax, 0x64
jle 0x40cc80
mov esi, dword [0x45668c]
mov ecx, dword [0x456684]
imul esi, esi, 0xdcfc
imul ecx, ecx, 0x36a6
add esi, ecx
mov ecx, dword [0x45669c]
mov eax, 0xb73ab967
imul ecx
add edx, ecx
mov ecx, dword [0x456698]
sar edx, 0xf
imul ecx, ecx, 0x7f22
mov eax, edx
shr eax, 0x1f
add eax, edx
sub esi, eax
add esi, dword [0x4566a4]
lea edx, [ecx + esi - 0xdd0b]
mov dword [0x456694], edx
mov dword [0x5592a4], 0x64
jmp 0x40cc95
lea eax, [esp + 0x654]
push eax
call fcn.0042a1d5
add esp, 4
mov dword [0x5592a4], eax
mov ecx, dword [0x4566a8]
mov esi, dword [0x4566a0]
mov edi, dword [0x456690]
imul ecx, ecx, 0xb25a
mov eax, 0x9524e185
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, 0x5bdd0ecb
imul dword [0x45669c]
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [0x456688]
imul edx, edx, 0x7f22
sub ecx, eax
add ecx, edx
sub ecx, esi
sub ecx, 0xdd0b
push 0
mov dword [0x456690], ecx
call fcn.0042a1da
sub eax, dword [0x56a4f8]
add esp, 4
cmp eax, 0xa8c0
jl 0x40cd79
mov esi, dword [0x45668c]
mov eax, dword [0x456684]
imul esi, esi, 0xdcfc
mov ecx, dword [0x45669c]
imul eax, eax, 0x36a6
add esi, eax
mov edi, dword [0x4566a4]
mov eax, 0xb73ab967
imul ecx
add edx, ecx
sar edx, 0xf
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [0x456698]
imul edx, edx, 0x7f22
sub esi, ecx
add esi, edi
lea eax, [edx + esi - 0xdd0b]
push 0
mov dword [0x456694], eax
call fcn.0042a1da
add esp, 4
xor esi, esi
mov dword [0x56a4f8], eax
mov dword [0x5592a8], esi
jmp 0x40cd7f
mov esi, dword [0x5592a8]
mov ecx, dword [0x4566a8]
mov eax, 0x6bb7d05b
imul ecx
sub edx, ecx
mov edi, ecx
sar edx, 0xf
imul edi, edi, 0xdd0b
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov ebx, ecx
mov ecx, dword [0x456694]
mov eax, 0x95e7555
imul ecx
mov ecx, dword [0x4566a0]
sar edx, 9
imul ecx, ecx, 0xb2d6
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ebx, edi
sub ebx, eax
add ebx, ecx
mov ecx, dword [0x456698]
mov eax, 0x14dc1615
imul ecx
sar edx, 0xa
mov eax, edx
shr eax, 0x1f
add ebx, edx
add eax, ebx
mov dword [0x456698], eax
cmp esi, dword [0x5592a4]
jge 0x40cef3
cmp esi, dword [0x5592a0]
jge 0x40ce22
push 0
call fcn.0042a1da
mov ecx, dword [0x56a4d0]
mov esi, dword [0x5592ac]
imul ecx, ecx, 0x3c
sub eax, esi
add esp, 4
cmp eax, ecx
jge 0x40ce5b
mov esi, dword [0x5592a8]
cmp esi, dword [0x5592a4]
jge 0x40cef3
cmp esi, dword [0x5592a0]
jl 0x40cef3
push 0
call fcn.0042a1da
sub eax, dword [0x5592ac]
mov edx, dword [0x56a4d4]
imul edx, edx, 0x3c
add esp, 4
cmp eax, edx
jl 0x40cef3
mov ecx, dword [0x456694]
mov eax, 0x5bdd0ecb
imul ecx
mov eax, dword [0x456690]
mov esi, ecx
imul eax, eax, 0xaaa9
mov ecx, dword [0x45668c]
imul esi, esi, 0xdd0b
sar edx, 0xe
mov edi, edx
add esi, edx
mov edx, ecx
imul edx, edx, 0x18161
shr edi, 0x1f
add edi, esi
add edi, eax
add edi, edx
mov eax, 0x80df83a9
imul ecx
add edx, ecx
sar edx, 0xe
mov eax, edx
shr eax, 0x1f
add eax, edx
sub edi, eax
mov eax, dword [0x5592a8]
cdq
idiv dword [0x5592a0]
mov dword [0x45669c], edi
shl edx, 4
mov eax, dword [esp + edx + 0x14]
mov edx, 0x5592b0
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40ced0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x3644]
call fcn.00429911
add esp, 0x3648
ret
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
mov ecx, dword [esp + 0x3644]
call fcn.00429911
add esp, 0x3648
ret
mov ecx, dword [esp + 0x3654]
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
call fcn.00429911
add esp, 0x3648
ret