Function at 0x420710
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x533e89
mov eax, dword fs:[0]
push eax
mov eax, 0x449c
call fcn.0050ec90
mov eax, dword [0x58dd4c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x59671c]
mov ebx, 1
mov ecx, ebx
sub ecx, dword [esi - 4]
mov eax, dword [esi - 8]
or eax, ecx
jge 0x42076b
push 0
mov ecx, 0x59671c
call fcn.004251b0
mov esi, dword [0x59671c]
mov edx, dword [0x596710]
mov ecx, ebx
sub ecx, dword [edx - 4]
mov eax, dword [edx - 8]
or eax, ecx
jge 0x42078f
push 0
mov ecx, 0x596710
call fcn.004251b0
mov edx, dword [0x596710]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push edx
push 0x583c34
push str.main
call edi
mov esi, dword [0x59671c]
mov ecx, ebx
sub ecx, dword [esi - 4]
mov eax, dword [esi - 8]
or eax, ecx
jge 0x4207c7
push 0
mov ecx, 0x59671c
call fcn.004251b0
mov esi, dword [0x59671c]
mov edx, dword [0x596714]
mov ecx, ebx
sub ecx, dword [edx - 4]
mov eax, dword [edx - 8]
or eax, ecx
jge 0x4207eb
push 0
mov ecx, 0x596714
call fcn.004251b0
mov edx, dword [0x596714]
push esi
push edx
push 0x583c48
push str.main
call edi
mov esi, dword [0x59671c]
mov ecx, ebx
sub ecx, dword [esi - 4]
mov eax, dword [esi - 8]
or eax, ecx
jge 0x42081d
push 0
mov ecx, 0x59671c
call fcn.004251b0
mov esi, dword [0x59671c]
mov edx, dword [0x596718]
mov ecx, ebx
sub ecx, dword [edx - 4]
mov eax, dword [edx - 8]
or eax, ecx
jge 0x420841
push 0
mov ecx, 0x596718
call fcn.004251b0
mov edx, dword [0x596718]
push esi
push edx
push 0x583fdc
push str.main
call edi
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x4014], esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x420872
mov eax, dword [ecx]
jmp 0x420874
mov eax, ecx
push 0
push 0x583fb0
mov byte [eax], 0
call fcn.00424ed0
sub esp, 0x18
mov dword [ebp - 4], 0
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x4208a7
mov eax, dword [ecx]
jmp 0x4208a9
mov eax, ecx
push 3
push 0x583c50
mov byte [eax], 0
call fcn.00424ed0
mov edx, 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40d8]
call fcn.00420ed0
add esp, 0x30
mov dword [ebp - 4], 1
cmp dword [ebp - 0x40c4], 0
je 0x420ce0
cmp dword [ebp - 0x40ac], 0
je 0x420ce0
mov esi, dword [0x59671c]
mov edx, ebx
sub edx, dword [esi - 4]
mov eax, dword [esi - 8]
or eax, edx
jge 0x420917
push 0
mov ecx, 0x59671c
call fcn.004251b0
mov esi, dword [0x59671c]
push 3
lea eax, [ebp - 0x4424]
push esi
lea ecx, [ebp - 0x4428]
mov dword [ebp - 0x4428], eax
call fcn.00423460
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x4428]
mov dword [ebp - 0x4018], 0xf
mov dword [ebp - 0x401c], 0
mov byte [ebp - 0x402c], 0
cmp byte [edx], 0
jne 0x42095f
xor ecx, ecx
jmp 0x42096d
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420964
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x402c]
call fcn.00424ed0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x4424]
mov eax, dword [ebp - 0x4428]
cmp eax, ecx
je 0x420997
push eax
call fcn.00512967
add esp, 4
push 0x400
lea eax, [ebp - 0x410]
push 0
push eax
call fcn.00510f30
add esp, 0xc
lea eax, [ebp - 0x402c]
cmp dword [ebp - 0x4018], 0x10
lea ecx, [ebp - 0x40d4]
cmovae eax, dword [ebp - 0x402c]
cmp dword [ebp - 0x40c0], 0x10
push eax
cmovae ecx, dword [ebp - 0x40d4]
lea eax, [ebp - 0x410]
push 0x400
push eax
push 0x583fb0
push str.date
push ecx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x410]
push eax
call fcn.005139cb
cmp dword [ebp - 0x4048], 0x10
lea ecx, [ebp - 0x405c]
mov esi, eax
cmovae ecx, dword [ebp - 0x405c]
push ecx
call fcn.005139cb
mov edx, dword [ebp - 0x40d8]
sub eax, esi
shl edx, 4
add esp, 8
sub edx, dword [ebp - 0x40d8]
shl edx, 2
cmp eax, edx
jae 0x420a48
push str.time_is_not_enough_
call fcn.00426e00
add esp, 4
jmp 0x420e19
cmp dword [ebp - 0x4060], 0x10
lea edi, [ebp - 0x4074]
lea esi, [ebp - 0x408c]
cmovae edi, dword [ebp - 0x4074]
lea edx, [ebp - 0x40a4]
cmp dword [ebp - 0x4078], 0x10
lea ecx, [ebp - 0x40bc]
push edi
cmovae esi, dword [ebp - 0x408c]
lea eax, [ebp - 0x40d4]
cmp dword [ebp - 0x4090], 0x10
push esi
cmovae edx, dword [ebp - 0x40a4]
cmp dword [ebp - 0x40a8], 0x10
push edx
cmovae ecx, dword [ebp - 0x40bc]
cmp dword [ebp - 0x40c0], 0x10
push ecx
cmovae eax, dword [ebp - 0x40d4]
push eax
lea eax, [ebp - 0x4044]
push str._swg_swg_swg_swg_s
push eax
call fcn.0042a520
add esp, 0x1c
mov byte [ebp - 4], 5
lea eax, [ebp - 0x4044]
cmp dword [ebp - 0x4030], 0x10
lea ecx, [ebp - 0x44a4]
push 3
cmovae eax, dword [ebp - 0x4044]
mov dword [ebp - 0x44a8], ecx
lea ecx, [ebp - 0x44a8]
push eax
mov dword [ebp - 0x4014], 0
call fcn.00423540
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4014]
push dword [ebp - 0x44a8]
call fcn.00424890
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x44a4]
mov eax, dword [ebp - 0x44a8]
cmp eax, ecx
je 0x420b33
push eax
call fcn.00512967
add esp, 4
mov eax, dword [ebp - 0x4014]
mov edx, ebx
sub edx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, edx
jge 0x420b58
push 0
lea ecx, [ebp - 0x4014]
call fcn.004251b0
mov eax, dword [ebp - 0x4014]
push eax
call fcn.00426e00
push 0x1400
lea eax, [ebp - 0x1810]
push 0
push eax
call fcn.00510f30
cmp dword [ebp - 0x4030], 0x10
lea eax, [ebp - 0x4044]
mov esi, dword [ebp - 0x4034]
cmovae eax, dword [ebp - 0x4044]
push esi
push eax
lea eax, [ebp - 0x1810]
push eax
call fcn.00511180
add esp, 0x18
lea ecx, [ebp - 0x439c]
call fcn.0041f760
test esi, esi
jne 0x420bbc
nop dword [eax + eax]
mov al, byte [ebp + esi - 0x1810]
inc esi
test al, al
jne 0x420bb0
xor edi, edi
test esi, esi
jle 0x420bdd
lea eax, [ebp - 0x1810]
add eax, edi
lea ecx, [ebp - 0x439c]
push eax
call fcn.0041fc90
add edi, 0x10
cmp edi, esi
jl 0x420bc2
push 0x2800
lea eax, [ebp - 0x4010]
push 0
push eax
call fcn.00510f30
lea eax, [ebp - 0x4010]
mov edx, edi
push eax
lea ecx, [ebp - 0x1810]
call fcn.00420410
mov esi, eax
lea eax, [ebp - 0x4010]
push eax
call fcn.00426e00
add esp, 0x14
test esi, esi
jle 0x420cae
call fcn.0042ac40
cmp eax, 6
jge 0x420c56
mov ecx, dword [0x596720]
sub ebx, dword [ecx - 4]
mov eax, dword [ecx - 8]
or eax, ebx
jge 0x420c49
push 0
mov ecx, 0x596720
call fcn.004251b0
mov ecx, dword [0x596720]
lea edx, [ebp - 0x4010]
call fcn.00422120
jmp 0x420cae
push ecx
lea eax, [ebp - 0x4010]
mov dword [ebp - 0x43a0], esp
mov ecx, esp
lea esi, [ebp - 0x40e8]
push eax
call fcn.00424890
mov byte [ebp - 4], 9
mov edx, dword [0x596720]
sub ebx, dword [edx - 4]
mov eax, dword [edx - 8]
or eax, ebx
jge 0x420c97
push 0
mov ecx, 0x596720
call fcn.004251b0
mov edx, dword [0x596720]
push ecx
mov ecx, esp
push edx
call fcn.00424890
mov ecx, esi
mov byte [ebp - 4], 8
call fcn.004224a0
add esp, 8
mov byte [ebp - 4], 5
or eax, 0xffffffff
mov edx, dword [ebp - 0x4014]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x420cd0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x4044]
call fcn.00424950
jmp 0x420e19
cmp dword [ebp - 0x4060], 0x10
lea edi, [ebp - 0x4074]
lea esi, [ebp - 0x408c]
cmovae edi, dword [ebp - 0x4074]
lea edx, [ebp - 0x40a4]
cmp dword [ebp - 0x4078], 0x10
lea ecx, [ebp - 0x40bc]
push edi
cmovae esi, dword [ebp - 0x408c]
lea eax, [ebp - 0x40d4]
cmp dword [ebp - 0x4090], 0x10
push esi
cmovae edx, dword [ebp - 0x40a4]
cmp dword [ebp - 0x40a8], 0x10
push edx
cmovae ecx, dword [ebp - 0x40bc]
cmp dword [ebp - 0x40c0], 0x10
push ecx
cmovae eax, dword [ebp - 0x40d4]
push eax
lea eax, [ebp - 0x402c]
push str._swg_swg_swg_swg_s
push eax
call fcn.0042a520
add esp, 0x1c
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x402c]
cmp dword [ebp - 0x4018], 0x10
lea ecx, [ebp - 0x44a4]
push 3
cmovae eax, dword [ebp - 0x402c]
mov dword [ebp - 0x44a8], ecx
lea ecx, [ebp - 0x44a8]
push eax
mov dword [ebp - 0x4014], 0
call fcn.00423540
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x4014]
push dword [ebp - 0x44a8]
call fcn.00424890
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x44a4]
mov eax, dword [ebp - 0x44a8]
cmp eax, ecx
je 0x420dcb
push eax
call fcn.00512967
add esp, 4
mov eax, dword [ebp - 0x4014]
sub ebx, dword [eax - 4]
mov ecx, dword [eax - 8]
or ecx, ebx
jge 0x420dee
push 0
lea ecx, [ebp - 0x4014]
call fcn.004251b0
mov eax, dword [ebp - 0x4014]
push eax
call fcn.00426e00
mov byte [ebp - 4], 0xa
add esp, 4
mov edx, dword [ebp - 0x4014]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x420e19
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x402c]
call fcn.00424950
lea ecx, [ebp - 0x405c]
call fcn.00424950
lea ecx, [ebp - 0x4074]
call fcn.00424950
lea ecx, [ebp - 0x408c]
call fcn.00424950
lea ecx, [ebp - 0x40a4]
call fcn.00424950
lea ecx, [ebp - 0x40bc]
call fcn.00424950
lea ecx, [ebp - 0x40d4]
call fcn.00424950
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050e1f3
mov esp, ebp
pop ebp
ret