Function at 0x4018e0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x649290
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x703eb0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
mov dword [ebp - 0x24], edi
call fcn.0041a80c
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x401927
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
lea esi, [ebp - 0x10]
mov dword [ebp - 4], edi
call fcn.00401520
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x10]
push ecx
push edi
push str.TotalViruses
push str.Main
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
lea edx, [ebp - 0x10]
push edx
mov ecx, str.StartedFullRepair
mov esi, eax
call fcn.00401670
test al, al
je 0x401ac8
mov eax, dword [0x72289c]
push eax
lea ecx, [ebp - 0x24]
push 0xb2
push ecx
call fcn.0040ba30
mov esi, eax
mov byte [ebp - 4], 2
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x20]
push 0xb4
push eax
call fcn.0040ba30
mov edi, eax
mov byte [ebp - 4], 3
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x1c]
push 0xb3
push edx
call fcn.0040ba30
push edi
push eax
lea eax, [ebp - 0x18]
mov bl, 4
push eax
mov byte [ebp - 4], bl
call fcn.00402540
push esi
mov esi, dword [ebp + 8]
push eax
push esi
mov byte [ebp - 4], 5
call fcn.00402540
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
add esp, 0x3c
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a00
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401a8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401ab2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea ecx, [ebp - 0x10]
push ecx
mov ecx, str.HasFinished
call fcn.00401670
test al, al
jne 0x401cf4
call fcn.0041a80c
xor ecx, ecx
cmp eax, edi
setne cl
cmp ecx, edi
jne 0x401af8
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
lea ecx, [ebp - 0x10]
push ecx
mov ecx, str.StabilityIssues
mov byte [ebp - 4], 6
call fcn.00401670
cmp esi, edi
jle 0x401c19
test al, al
je 0x401bcb
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x1c]
push 0xb6
push eax
call fcn.0040ba30
mov edi, eax
mov byte [ebp - 4], 7
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x20]
push 0xb5
push edx
call fcn.0040ba30
push edi
push eax
lea eax, [ebp - 0x24]
mov bl, 8
push eax
mov byte [ebp - 4], bl
call fcn.00402540
mov byte [ebp - 4], 9
mov eax, dword [eax]
push esi
push eax
lea ecx, [ebp - 0x18]
push ecx
call fcn.00402d30
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
add esp, 0x30
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x401b9f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401bc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x1c]
jmp 0x401bfb
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x24]
push 0xb7
push edx
call fcn.0040ba30
mov byte [ebp - 4], 0xa
mov eax, dword [eax]
push esi
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00402d30
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x24]
add esp, 0x18
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401c6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x401c6c
test al, al
je 0x401c3b
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x24]
push 0xb8
push eax
call fcn.0040ba30
add esp, 0xc
mov byte [ebp - 4], 0xb
jmp 0x401c57
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x24]
push 0xb9
push edx
call fcn.0040ba30
add esp, 0xc
mov byte [ebp - 4], 0xc
push eax
lea ecx, [ebp - 0x18]
call fcn.00402930
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 6
call fcn.0040be80
mov eax, dword [0x72289c]
push eax
lea ecx, [ebp - 0x20]
push 0xb2
push ecx
call fcn.0040ba30
push eax
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x24]
mov bl, 0xd
push eax
mov byte [ebp - 4], bl
call fcn.00402540
add esp, 0x18
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0xe
call fcn.00402930
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401cc5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401ce8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
jmp 0x401f67
lea ecx, [ebp - 0x10]
push ecx
mov ecx, str.StabilityIssues
call fcn.00401670
cmp esi, edi
jle 0x401e94
test al, al
je 0x401dd7
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x1c]
push 0xbb
push eax
call fcn.0040ba30
mov edi, eax
mov byte [ebp - 4], 0xf
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x20]
push 0xba
push edx
call fcn.0040ba30
push edi
push eax
lea eax, [ebp - 0x24]
mov bl, 0x10
push eax
mov byte [ebp - 4], bl
call fcn.00402540
mov byte [ebp - 4], 0x11
mov eax, dword [eax]
push esi
push eax
lea ecx, [ebp - 0x14]
push ecx
call fcn.00402d30
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
add esp, 0x30
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x401d88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401dab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x401f06
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x1c]
push 0xbb
push edx
call fcn.0040ba30
mov edi, eax
mov byte [ebp - 4], 0x12
mov eax, dword [0x72289c]
push eax
lea ecx, [ebp - 0x20]
push 0xbc
push ecx
call fcn.0040ba30
push edi
push eax
lea edx, [ebp - 0x24]
mov bl, 0x13
push edx
mov byte [ebp - 4], bl
call fcn.00402540
mov byte [ebp - 4], 0x14
mov eax, dword [eax]
push esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00402d30
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
add esp, 0x30
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401e4c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401e6f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x401f06
test al, al
je 0x401f06
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x1c]
push 0xbb
push eax
call fcn.0040ba30
mov esi, eax
mov byte [ebp - 4], 0x15
mov ecx, dword [0x72289c]
push ecx
lea edx, [ebp - 0x20]
push 0xbd
push edx
call fcn.0040ba30
push esi
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 0x16
call fcn.00402540
mov byte [ebp - 4], 0x17
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x14]
push ecx
call fcn.00402d30
add esp, 0x2c
lea ecx, [ebp - 0x24]
call fcn.0040be80
lea ecx, [ebp - 0x20]
call fcn.0040be80
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.0040be80
mov edx, dword [0x72289c]
push edx
lea eax, [ebp - 0x2c]
push 0xbe
push eax
call fcn.0040ba30
push eax
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0x28]
mov bl, 0x18
push edx
mov byte [ebp - 4], bl
call fcn.00402540
add esp, 0x18
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x19
call fcn.00402930
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f60
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401f83
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [ebp - 0x14]
add esi, 0xfffffff0
push esi
call fcn.00402be0
mov edi, dword [ebp + 8]
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401fbd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x401fdd
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4