Function at 0x42a980
Capabilities:
Read .ini file

Disassembly:
push 0x134
mov eax, 0x4678b2
call fcn.00461b38
mov dword [ebp - 0x140], ecx
xor edx, edx
lea ecx, [ebp - 0x124]
call fcn.0043fcc1
mov esi, eax
and dword [ebp - 4], 0
push ecx
push ecx
mov ecx, esp
push str.kgservice_stat.ini
call fcn.00406166
lea eax, [ebp - 0x10c]
mov ecx, esi
push eax
call dword [sym.imp.infra.dll_public:_class_base::FilePath___thiscall_base::FilePath::Append_class_base::BasicStringPiece_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____]
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.004086ef
mov ebx, dword [sym.imp.infra.dll_public:_void___thiscall_base::FilePath::destructor_void_]
lea ecx, [ebp - 0x10c]
call ebx
lea ecx, [ebp - 0x124]
mov byte [ebp - 4], 4
call ebx
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
mov edi, str.Count
cmovae eax, dword [ebp - 0x2c]
xor esi, esi
push eax
push esi
push edi
push str.Start
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebx, dword [sym.imp.infra.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_base::IntToString16_int_]
inc eax
push eax
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x44]
push eax
call ebx
cmp dword [ebp - 0x18], 8
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
cmp dword [eax + 0x14], 8
jb 0x42aa35
mov eax, dword [eax]
push ecx
push eax
push edi
push str.Start
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push esi
push 1
lea ecx, [ebp - 0x44]
call fcn.004061c2
xor eax, eax
push 0x98
mov word [ebp - 0xf4], ax
lea eax, [ebp - 0xec]
push esi
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
lea edi, [ebp - 0xec]
stosd dword es:[edi], eax
add esp, 0xc
stosd dword es:[edi], eax
push 0x78
push esi
stosd dword es:[edi], eax
lea eax, [ebp - 0xe0]
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
lea edi, [ebp - 0x68]
stosd dword es:[edi], eax
xor ecx, ecx
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x5c], ecx
lea edi, [ebp - 0x54]
mov dword [ebp - 0x58], ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
call fcn.00406130
cmp dword [eax + 8], esi
je 0x42aad6
push ecx
push dword [eax + 8]
lea ecx, [ebp - 0xf4]
call fcn.0043fe51
cmp word [ebp - 0xf4], 9
pop ecx
pop ecx
sete al
jmp 0x42aad8
xor al, al
mov esi, dword [ebp - 0xe8]
test al, al
mov edi, dword [sym.imp.infra.dll_public:_static_class_base::CommandLine____cdecl_base::CommandLine::ForCurrentProcess_void_]
push 2
pop ecx
push str.kill_kgservice_at_first
cmove esi, ecx
call edi
mov ecx, eax
call dword [sym.imp.infra.dll_public:_bool___thiscall_base::CommandLine::HasSwitch_char_const__const_const]
test al, al
je 0x42ab04
push 3
pop esi
jmp 0x42ab1b
push str.restart_by_config
call edi
mov ecx, eax
call dword [sym.imp.infra.dll_public:_bool___thiscall_base::CommandLine::HasSwitch_char_const__const_const]
test al, al
push 2
pop eax
cmovne esi, eax
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push 0
push str.Running
push 0x48a460
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push 0
push str.Closing
push 0x48a460
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push 0
push 0x48a474
push 0x48a460
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp dword [ebp - 0x18], 8
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
push eax
push 0
push str.Kill
push 0x48a460
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebp - 0x138], eax
sub esi, 0
je 0x42ac5a
sub esi, 1
je 0x42ac28
sub esi, 1
je 0x42abf6
sub esi, 1
jne 0x42aca1
inc eax
push eax
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x44]
push eax
call ebx
cmp dword [ebp - 0x18], 8
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
cmp dword [eax + 0x14], 8
jb 0x42abea
mov eax, dword [eax]
push ecx
push eax
push str.Kill
jmp 0x42ac8a
mov eax, dword [ebp - 0x12c]
inc eax
push eax
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x44]
push eax
call ebx
cmp dword [ebp - 0x18], 8
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
cmp dword [eax + 0x14], 8
jb 0x42ac1f
mov eax, dword [eax]
push ecx
push eax
push 0x48a474
jmp 0x42ac8a
mov eax, dword [ebp - 0x130]
inc eax
push eax
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x44]
push eax
call ebx
cmp dword [ebp - 0x18], 8
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
cmp dword [eax + 0x14], 8
jb 0x42ac51
mov eax, dword [eax]
push ecx
push eax
push str.Closing
jmp 0x42ac8a
mov eax, dword [ebp - 0x134]
inc eax
push eax
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x44]
push eax
call ebx
cmp dword [ebp - 0x18], 8
pop ecx
pop ecx
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
cmp dword [eax + 0x14], 8
jb 0x42ac83
mov eax, dword [eax]
push ecx
push eax
push str.Running
push 0x48a460
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0
push 1
lea ecx, [ebp - 0x44]
call fcn.004061c2
call edi
cmp dword [eax + 0x10], 0
je 0x42acc0
push str.kill_kgservice_at_first
call edi
mov ecx, eax
call dword [sym.imp.infra.dll_public:_bool___thiscall_base::CommandLine::HasSwitch_char_const__const_const]
test al, al
je 0x42ad4f
push ecx
push ecx
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
call fcn.0041f499
lea ecx, [ebp - 0x44]
call dword [sym.imp.infra.dll_public:_void___thiscall_base::FilePath::constructor_class_base::BasicStringPiece_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t____]
push 0
push eax
mov byte [ebp - 4], 5
call dword [sym.imp.infra.dll_bool___cdecl_base::DeleteFileW_class_base::FilePath_const___bool_]
pop ecx
pop ecx
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 4
mov bl, al
call dword [sym.imp.infra.dll_public:_void___thiscall_base::FilePath::destructor_void_]
test bl, bl
je 0x42ad4f
push 0x20
call fcn.00460973
pop ecx
mov dword [ebp - 0x128], eax
lea ecx, [ebp - 0x138]
mov byte [ebp - 4], 6
push ecx
lea ecx, [ebp - 0x12c]
push ecx
lea ecx, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x134]
push ecx
lea ecx, [ebp - 0x13c]
push ecx
mov ecx, eax
call fcn.004516b0
push ecx
mov ecx, esp
mov byte [ebp - 4], 7
and dword [ebp - 0x128], 0
mov dword [ecx], eax
mov ecx, dword [ebp - 0x140]
call fcn.0042ad61
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.004061c2
call fcn.00461ae2
ret