Function at 0x402979
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x405b7b
call fcn.004026d0
sub esp, 0x188
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
push esi
push edi
je 0x403068
cmp dword [ebp + 0xc], ebx
je 0x403068
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x193]
mov byte [ebp - 0x194], bl
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x194]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetLongPathNameA]
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x4c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.CheckFileTrust:_
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [ebp + 0xc]
mov dword [ebp - 4], ebx
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea ecx, [ebp - 0x4c]
push dword [ebp + 0xc]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov esi, 0x408504
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
lea eax, [ebp - 0x194]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
mov esi, 0x408500
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::append_char_const___unsigned_int_]
test byte [0x408998], 1
jne 0x402a86
mov al, byte [ebp + 0xf]
or byte [0x408998], 1
push ebx
mov ecx, 0x408988
mov byte [0x408988], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 0x403084
call fcn.004026a6
pop ecx
test byte [0x408998], 2
jne 0x402ab4
or byte [0x408998], 2
lea eax, [ebp + 0xf]
push eax
lea eax, [ebp + 0xb]
push ebx
push eax
mov ecx, 0x408978
call fcn.0040404c
push 0x40307a
call fcn.004026a6
pop ecx
cmp dword [0x4089a4], ebx
jne 0x402c46
push 1
mov edi, 0x408988
pop esi
push 0x408978
push edi
mov dword [0x4089a4], esi
call fcn.004031ec
pop ecx
test eax, eax
pop ecx
je 0x402bb3
push dword [0x408394]
lea eax, [ebp - 0x1c]
push edi
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
push dword [0x408384]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 1
push edi
push eax
call sub.MSVCP60.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_std::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__
mov eax, dword [ebp - 0x28]
add esp, 0x18
cmp eax, ebx
jne 0x402b16
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push ebx
push dword [0x408390]
push dword [0x408388]
call esi
mov dword [0x4089ac], eax
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x402b3d
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push ebx
push dword [0x40839c]
push dword [0x408398]
call esi
cmp eax, ebx
mov dword [0x4089a8], eax
jne 0x402b77
mov eax, dword [ebp - 0x28]
cmp eax, ebx
jne 0x402b62
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push ebx
push dword [0x40838c]
push dword [0x408388]
call esi
mov dword [0x4089a8], eax
mov eax, dword [ebp - 0x18]
cmp eax, ebx
jne 0x402b83
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push eax
push ebx
push dword [0x4083a0]
push dword [0x408398]
call esi
push 1
lea ecx, [ebp - 0x2c]
mov dword [0x4089b0], eax
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x402bbf
lea eax, [ebp - 0x4c]
push esi
push eax
call fcn.00403d69
pop ecx
pop ecx
cmp dword [0x4089a8], 1
je 0x402c4f
cmp dword [0x4089b0], 1
jne 0x402c46
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.Enable_Check_Game_Dir
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [0x4089ac]
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00403097
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
push 1
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push 0x408978
push edi
call fcn.004038d3
pop ecx
test eax, eax
pop ecx
jne 0x402c46
push dword [0x4089ac]
lea eax, [ebp - 0x4c]
push eax
call fcn.00403d69
pop ecx
pop ecx
cmp dword [0x4089a8], 1
jne 0x402c9f
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.Check_Closed
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [0x4089ac]
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00403097
add esp, 0xc
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x1c]
push 1
pop esi
push esi
jmp 0x402ffc
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x3c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [ebp - 0x194]
push eax
call sub.MSVCRT.dll_strlen
pop ecx
push eax
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov edi, dword [ebp - 0x38]
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Freeze_void_]
mov eax, dword [ebp - 0x34]
mov dword [ebp + 0xc], edi
mov edi, dword [ebp - 0x38]
add eax, esi
neg esi
sbb esi, esi
and esi, eax
cmp edi, esi
je 0x402d1d
movsx eax, byte [edi]
push eax
call dword [sym.imp.MSVCRT.dll_tolower]
pop ecx
inc edi
mov ecx, dword [ebp + 0xc]
inc dword [ebp + 0xc]
mov byte [ecx], al
jmp 0x402d03
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, 0x4082dc
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov edi, 0x4084d4
push edi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push edi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00403f87
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
push 1
pop edi
push edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 7
mov byte [ebp - 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, 0x4084d0
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00403f87
add esp, 0xc
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 7
push edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [ebp - 0x3c]
mov ecx, 0x408978
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.00404198
mov eax, dword [ebp - 0x50]
cmp eax, dword [0x40897c]
je 0x403015
cmp dword [eax + 0x30], ebx
jne 0x403015
sub esp, 0x10
mov dword [eax + 0x30], edi
mov al, byte [ebp - 0x3c]
mov esi, esp
mov dword [ebp + 0xc], esp
push ebx
mov ecx, esi
mov byte [esi], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ecx, esi
push dword [eax]
lea eax, [ebp - 0x3c]
push ebx
push eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
lea ecx, [ebp - 0x90]
call fcn.0040486f
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xa
call fcn.004048eb
test eax, eax
je 0x402f7f
xor eax, eax
lea edi, [ebp - 0x5f]
mov byte [ebp - 0x60], bl
lea ecx, [ebp - 0x90]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], ebx
push eax
call fcn.004048f3
push dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.004056ff
mov eax, dword [ebp - 0x50]
add esp, 0xc
lea ecx, [ebp - 0x90]
lea esi, [eax + 0xc]
call fcn.004048ef
cmp eax, dword [esi + 0x10]
jne 0x402fd0
mov eax, dword [ebp - 0x50]
push 0x10
add eax, 0x20
push eax
lea eax, [ebp - 0x60]
push eax
call sub.MSVCRT.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x402fd0
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.PE_Md5_Matched
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [0x4089ac]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00403097
add esp, 0xc
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xa
push 1
pop esi
push esi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.004048e0
push esi
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], bl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or dword [ebp - 4], 0xffffffff
push esi
jmp 0x403008
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x1c]
mov byte [ebp - 0x1c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.Analyze_PE_Failed
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x1c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [0x4089ac]
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00403097
add esp, 0xc
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xa
push edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
jmp 0x402fd3
push 1
pop edi
push dword [0x4089ac]
lea eax, [ebp - 0x4c]
push eax
call fcn.00403d69
pop ecx
mov esi, eax
pop ecx
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x90]
call fcn.004048e0
mov byte [ebp - 4], bl
push edi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, esi
jmp 0x40306b
mov al, byte [ebp + 0xf]
push ebx
lea ecx, [ebp - 0x2c]
mov byte [ebp - 0x2c], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.Last_have_Checked
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [0x4089ac]
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.00403097
add esp, 0xc
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
push edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, edi
jmp 0x402ff5
push 1
pop eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret