Function at 0x4011c0
Capabilities:
Copy file
Create directory
Create process on windows
Delete directory
Delete file
Get common file path
Move file
Persist via default file association registry key
Query or enumerate registry value
Resolve function by parsing pe exports
Self delete
Set registry value

Disassembly:
mov eax, 0x54c4
call fcn.00403700
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x40948c
push str.regfix.ini
mov byte [0x409f80], bl
call fcn.004036ea
add esp, 8
cmp eax, ebx
mov dword [esp + 0x10], eax
jne 0x40120d
push ebx
push str.9KGames_Regfix2.0_Error
push str.Cant_open_REGFIX.INI
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x10]
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push eax
lea ecx, [esp + 0x2dc8]
push 0x270f
push ecx
mov byte [esp + 0x2dd0], bl
call fcn.00403673
mov al, byte [esp + 0x2dd0]
add esp, 0xc
cmp al, bl
jne 0x401250
mov dword [esp + 0x18], 0x186a2
jmp 0x4020c8
lea edx, [esp + 0x2dc4]
push edx
call fcn.004022d0
push 0x40a18c
push str.debug
call fcn.00407e00
add esp, 0xc
test eax, eax
jne 0x40128c
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push str.Debug_mode_is_now_ON
push ebx
mov byte [0x4fe3d0], 1
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40a18c
push str.makedir
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x40137a
lea eax, [esp + 0x2dc4]
push eax
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401321
push 0x40c89c
lea edx, [esp + 0x6b8]
push str.Creating_folder__s
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
push 0x40c89c
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x40137a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0xb7
jne 0x4020f4
cmp byte [0x4fe3d0], 1
jne 0x40137a
push 0x40c89c
lea ecx, [esp + 0x6b8]
push str.The_folder__s_exists__Not_an_error_
push ecx
call ebp
add esp, 0xc
lea edx, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push edx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40a18c
push str.copy
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x40142d
lea eax, [esp + 0x2dc4]
push eax
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401414
push 0x40efac
push 0x40c89c
lea edx, [esp + 0x6bc]
push str.Copy__s_to__s
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push ebx
push 0x40efac
push 0x40c89c
call dword [sym.imp.KERNEL32.dll_CopyFileA]
test eax, eax
je 0x40212e
push 0x40a18c
push str.modcopy
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x401569
lea ecx, [esp + 0x2dc4]
push ecx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x4014c7
push 0x40efac
push 0x40c89c
lea edx, [esp + 0x6bc]
push str.ModCopy__s_to__s
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40948c
push 0x40c89c
call fcn.004036ea
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x402175
push 0x409384
push 0x40efac
call fcn.004036ea
mov ebp, eax
add esp, 8
cmp ebp, ebx
je 0x4021a6
xor edi, edi
push esi
lea ecx, [esp + 0x2dc8]
push 0x270f
push ecx
mov byte [esp + 0x2dd0], bl
call fcn.00403673
mov al, byte [esp + 0x2dd0]
add esp, 0xc
cmp al, bl
jne 0x401530
mov edi, 0x186a2
jmp 0x40154b
lea edx, [esp + 0x2dc4]
push edx
call fcn.00402d80
push ebp
push 0x40a18c
call fcn.00403630
add esp, 0xc
inc edi
cmp edi, 0x186a0
jl 0x401501
push ebp
call fcn.004035da
push esi
call fcn.004035da
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
push 0x40a18c
push str.modcopy2
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x4016a7
lea eax, [esp + 0x2dc4]
push eax
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401603
push 0x40efac
push 0x40c89c
lea edx, [esp + 0x6bc]
push str.ModCopy__s_to__s
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40948c
push 0x40c89c
call fcn.004036ea
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x402175
push 0x409384
push 0x40efac
call fcn.004036ea
mov ebp, eax
add esp, 8
cmp ebp, ebx
je 0x4021a6
xor edi, edi
push esi
lea ecx, [esp + 0x2dc8]
push 0x270f
push ecx
mov byte [esp + 0x2dd0], bl
call fcn.00403673
mov al, byte [esp + 0x2dd0]
add esp, 0xc
cmp al, bl
jne 0x40166c
mov edi, 0x186a2
jmp 0x401689
lea edx, [esp + 0x2dc4]
push 1
push edx
call fcn.00402390
push ebp
push 0x40a18c
call fcn.00403630
add esp, 0x10
inc edi
cmp edi, 0x186a0
jl 0x40163d
push ebp
call fcn.004035da
push esi
call fcn.004035da
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
add esp, 8
push 0x40a18c
push str.rename
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x401759
lea eax, [esp + 0x2dc4]
push eax
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401741
push 0x40efac
push 0x40c89c
lea edx, [esp + 0x6bc]
push str.Rename__s_to__s
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40efac
push 0x40c89c
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x4021f4
push 0x40a18c
push str.move
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x40180b
lea ecx, [esp + 0x2dc4]
push ecx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x4017f3
push 0x40efac
push 0x40c89c
lea edx, [esp + 0x6bc]
push str.Move__s_to__s
push edx
call ebp
add esp, 0x10
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40efac
push 0x40c89c
call dword [sym.imp.KERNEL32.dll_MoveFileA]
test eax, eax
je 0x402210
push 0x40a18c
push str.startmenu
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x4019d0
lea ecx, [esp + 0x2dc4]
push ecx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
add esp, 8
lea edx, [esp + 0x20]
push edx
push 0xb
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x88]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov edi, str.ProgramH9KGames
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x88]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov al, byte [0x4fe3d0]
mov ecx, edx
and ecx, 3
cmp al, 1
rep movsb byte es:[edi], byte [esi]
jne 0x4018f9
lea eax, [esp + 0x88]
lea ecx, [esp + 0x6b4]
push eax
push str.Creating_folder__s
push ecx
call ebp
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 0xc
lea edx, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push edx
push ebx
call edi
jmp 0x4018ff
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
lea eax, [esp + 0x88]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test eax, eax
jne 0x40195a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp esi, 0xb7
jne 0x40222c
cmp byte [0x4fe3d0], 1
jne 0x4019a7
lea ecx, [esp + 0x88]
lea edx, [esp + 0x6b4]
push ecx
push str.The_folder__s_exists__Not_an_error_
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call edi
cmp byte [0x4fe3d0], 1
jne 0x4019a7
push 0x4164dc
push 0x413dcc
push 0x40c89c
push 0x40efac
lea ecx, [esp + 0x98]
push 0x4116bc
push ecx
lea edx, [esp + 0x6cc]
push str.Fixing_startmenu___s__n_nShortcut:__s_nFile:__s__In__s__nArgs:__s_nWorkdir:__s
push edx
call ebp
add esp, 0x20
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call edi
push 0x4164dc
push 0x413dcc
lea ecx, [esp + 0x90]
push 0x4116bc
push ecx
push 0x40efac
push 0x40c89c
call fcn.00403350
add esp, 0x18
push 0x40a18c
push str.fake
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x401aa3
lea edx, [esp + 0x2dc4]
push edx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401a65
push 0x40c89c
lea edx, [esp + 0x6b8]
push str.Fake__s
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x4092bc
push 0x40c89c
call fcn.004036ea
mov esi, eax
push esi
push 0x40
call fcn.004035b6
add esp, 0x10
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov ebp, eax
call fcn.004035da
add esp, 4
cmp edi, 0xffffffff
je 0x40223b
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push 0x40a18c
push str.delete
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x401b4b
lea ecx, [esp + 0x2dc4]
push ecx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401b38
push 0x40c89c
lea edx, [esp + 0x6b8]
push str.Delete__s
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40c89c
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x40225e
push 0x40a18c
push str.deldir
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x401bf3
lea ecx, [esp + 0x2dc4]
push ecx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401be0
push 0x40c89c
lea edx, [esp + 0x6b8]
push str.Delete__s
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x40c89c
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
je 0x40225e
push 0x40a18c
push str.startlast
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x401cad
lea ecx, [esp + 0x2dc4]
push ecx
call fcn.00402d80
mov edi, 0x40a18c
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2dc8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2dc8]
push ecx
call fcn.004022d0
mov al, byte [0x4fe3d0]
add esp, 8
cmp al, 1
jne 0x401c88
push 0x40c89c
lea edx, [esp + 0x6b8]
push str.Startlast:__s
push edx
call ebp
add esp, 0xc
lea eax, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, 0x40c89c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, 0x409f80
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x40a18c
push str.regedit4
call fcn.00407e00
add esp, 8
test eax, eax
jne 0x4020c8
cmp byte [0x4fe3d0], 1
jne 0x401cf7
lea eax, [esp + 0x6b4]
push str.Starting_Register_fixing
push eax
call ebp
add esp, 8
lea ecx, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0__Debug_message_
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0x409384
push str.regfix.reg
call fcn.004036ea
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x4022a0
push esi
push str.REGEDIT4_n
call fcn.00403630
add esp, 8
xor edi, edi
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x2dc4]
push edx
push 0x270f
push eax
mov byte [esp + 0x2dd0], bl
call fcn.00403673
mov al, byte [esp + 0x2dd0]
add esp, 0xc
cmp al, bl
jne 0x401d56
mov edi, 0x186a2
jmp 0x401d73
lea ecx, [esp + 0x2dc4]
push 1
push ecx
call fcn.00402390
push esi
push 0x40a18c
call fcn.00403630
add esp, 0x10
inc edi
cmp edi, 0x186a0
jl 0x401d23
push esi
mov dword [esp + 0x1c], 0x186a2
call fcn.004035da
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
add esp, 4
lea edx, [esp + 0x14]
mov eax, 1
push edx
push 0x20019
push ebx
push str..reg
push 0x80000000
mov dword [esp + 0x40], 0x44
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x140
mov dword [esp + 0x5c], 0xc8
mov dword [esp + 0x60], 0x50
mov dword [esp + 0x64], 0x18
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], eax
mov word [esp + 0x70], ax
mov word [esp + 0x72], bx
mov dword [esp + 0x74], ebx
call esi
test eax, eax
jne 0x4020b6
lea eax, [esp + 0x28]
lea ecx, [esp + 0x39c]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x74]
push ecx
push edx
push ebx
push ebx
push eax
mov dword [esp + 0x40], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edx, [esp + 0x39c]
lea eax, [esp + 0x5ac]
push edx
push str._s_shellopencommand
push eax
call ebp
add esp, 0xc
lea ecx, [esp + 0x14]
lea edx, [esp + 0x5ac]
push ecx
push 0x20019
push ebx
push edx
push 0x80000000
call esi
test eax, eax
jne 0x4020a9
lea eax, [esp + 0x24]
lea ecx, [esp + 0x294]
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x78]
push ecx
push edx
push ebx
push ebx
push eax
mov dword [esp + 0x3c], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edi, [esp + 0x294]
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x401f76
mov al, byte [esp + ebp + 0x294]
cmp al, 0x25
jne 0x401f4d
cmp byte [esp + ebp + 0x295], 0x31
jne 0x401f4d
cmp ebp, ebx
je 0x401ee9
cmp byte [esp + ebp + 0x293], 0x5c
je 0x401f5c
lea edx, [esp + 0x18c]
push str.regfix.reg
push edx
lea eax, [esp + 0x4ac]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [esp + 0x4b4]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x18c]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x18c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
inc ebp
mov edx, ecx
jmp 0x401f5c
mov byte [esp + edx + 0x18c], al
inc edx
mov byte [esp + edx + 0x18c], bl
lea edi, [esp + 0x294]
or ecx, 0xffffffff
xor eax, eax
inc ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ebp, ecx
jl 0x401ec6
cmp byte [0x4fe3d0], 1
jne 0x401f94
push ebx
lea ecx, [esp + 0x190]
push str.9KGames_Regfix2.0__Debug_message_
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, dword [sym.imp.KERNEL32.dll_SleepEx]
push ebx
push 0x3e8
call edi
lea edx, [esp + 0x78]
lea eax, [esp + 0x2c]
push edx
push eax
push ebx
push ebx
push 0x10
push 1
push ebx
lea ecx, [esp + 0x1a8]
push ebx
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
xor esi, esi
mov dword [esp + 0x1c], 0x103
mov eax, dword [esp + 0x78]
lea edx, [esp + 0x1c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
cmp dword [esp + 0x1c], 0x103
jne 0x40201b
push ebx
push 0x64
call edi
inc esi
cmp esi, 0x258
jne 0x402013
push 4
push str.9KGames_Regfix2.0
push str.No_answer_from_your_regadding_program_in_60_seconds._n_nContinue_to_wait_
push ebx
call ebp
cmp eax, 6
jne 0x401fd3
xor esi, esi
jmp 0x401fd3
cmp esi, 0x12c
jne 0x401fd3
cmp byte [0x409f80], bl
je 0x4020c8
lea ecx, [esp + 0x78]
lea edx, [esp + 0x2c]
push ecx
push edx
push ebx
mov eax, 1
push ebx
push 0x10
push eax
push ebx
push ebx
push 0x409f80
push ebx
mov dword [esp + 0x54], 0x44
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0x140
mov dword [esp + 0x70], 0xc8
mov dword [esp + 0x74], 0x50
mov dword [esp + 0x78], 0x18
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], eax
mov word [esp + 0x84], ax
mov word [esp + 0x86], bx
mov dword [esp + 0x88], ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
jmp 0x4020c8
push ebx
push str.9KGames_Regfix2.0_Error
push str.Cant_find_the_program_linked_with_.reg_files_
jmp 0x4020c1
push ebx
push str.9KGames_Regfix2.0_Error
push str.Cant_find_any_program_linked_with_.reg_files_
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esp + 0x18]
inc eax
cmp eax, 0x186a0
mov dword [esp + 0x18], eax
jl 0x401211
mov edx, dword [esp + 0x10]
push edx
call fcn.004035da
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret
push 0x40c89c
lea eax, [esp + 0x6b8]
push str.Got_an_error_when_creating_folder__s
push eax
call ebp
lea ecx, [esp + 0x6c0]
push ecx
push esi
call fcn.004031e0
mov edx, dword [esp + 0x24]
push edx
call fcn.004035da
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x40efac
push 0x40c89c
mov esi, eax
push str.Got_an_error_when_copying__s_to__s
lea eax, [esp + 0x6c0]
push eax
call ebp
lea ecx, [esp + 0x6c4]
push ecx
push esi
call fcn.004031e0
mov edx, dword [esp + 0x28]
push edx
call fcn.004035da
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret
push 0x40c89c
lea eax, [esp + 0x6b8]
push str.Cant_open__s
push eax
call ebp
add esp, 0xc
lea ecx, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0_Error
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x4020dc
push 0x40c89c
lea eax, [esp + 0x6b8]
push str.Cant_open__s_for_saving
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x6b4]
push ebx
push str.9KGames_Regfix2.0_Error
push ecx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push esi
call fcn.004035da
mov edx, dword [esp + 0x14]
push edx
call fcn.004035da
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x40efac
push 0x40c89c
mov esi, eax
push str.Got_an_error_when_renaming__s_to__s
jmp 0x402145
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x40efac
push 0x40c89c
mov esi, eax
push str.Got_an_error_when_moving__s_to__s
jmp 0x402145
lea eax, [esp + 0x88]
push eax
push str.Got_an_error_when_creating_folder__s
jmp 0x402270
push 0x40c89c
lea ecx, [esp + 0x6b8]
push str.Got_an_error_when_faking__s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [esp + 0x6c0]
push edx
push ebp
jmp 0x402283
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x40c89c
mov esi, eax
push str.Got_an_error_when_deleting__s
lea ecx, [esp + 0x6bc]
push ecx
call ebp
lea edx, [esp + 0x6c0]
push edx
push esi
call fcn.004031e0
mov eax, dword [esp + 0x24]
push eax
call fcn.004035da
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret
push ebx
push str.9KGames_Regfix2.0_Error
push str.Cant_create_regfix.reg
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004035da
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54c4
ret