Function at 0x421080
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c0
mov eax, dword [0x42f068]
xor eax, ebp
mov dword [ebp - 0xc], eax
push 0x104
lea eax, [ebp - 0x2a8]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea ecx, [ebp - 0x2a8]
push ecx
call fcn.004050a0
add esp, 8
xor edx, edx
mov word [eax + 2], dx
lea eax, [ebp - 0x2a8]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea ecx, [ebp - 0x2a8]
push ecx
mov ecx, 0x4312c4
call fcn.004016c0
push 0x104
lea edx, [ebp - 0x2a8]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x2a8]
push eax
call fcn.00420b80
add esp, 4
test eax, eax
jne 0x42111c
push 0x24
push str.MOPS
push str.Cannot_verify_the_repair_tool__continue_
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x42111e
jmp 0x421126
or eax, 0xffffffff
jmp 0x42134e
push 0
mov ecx, dword [ebp + 8]
push ecx
push 0
mov ecx, 0x4312e4
call fcn.004093f0
push ecx
mov ecx, esp
mov dword [ebp - 0x2b0], esp
push 0x64
call fcn.00409790
mov ecx, 0x4312e0
call fcn.0040ba70
mov byte [ebp - 0x99], 0
mov byte [ebp - 5], 0
lea ecx, [ebp - 0x28]
call fcn.00401650
mov dword [ebp - 0x2ac], 1
jmp 0x421180
mov edx, dword [ebp - 0x2ac]
add edx, 1
mov dword [ebp - 0x2ac], edx
mov eax, dword [ebp - 0x2ac]
cmp eax, dword [0x430678]
jge 0x42121e
push str._autofix
mov ecx, dword [ebp - 0x2ac]
mov edx, dword [0x430680]
mov eax, dword [edx + ecx*4]
push eax
call fcn.0041206d
add esp, 8
test eax, eax
jne 0x4211f4
mov ecx, dword [ebp - 0x2ac]
add ecx, 1
cmp ecx, dword [0x430678]
jge 0x4211f2
mov byte [ebp - 0x99], 1
mov edx, dword [ebp - 0x2ac]
mov eax, dword [0x430680]
mov ecx, dword [eax + edx*4 + 4]
push ecx
lea ecx, [ebp - 0x28]
call fcn.004016c0
mov edx, dword [ebp - 0x2ac]
add edx, 1
mov dword [ebp - 0x2ac], edx
jmp 0x421219
push str._autocheck
mov eax, dword [ebp - 0x2ac]
mov ecx, dword [0x430680]
mov edx, dword [ecx + eax*4]
push edx
call fcn.0041206d
add esp, 8
test eax, eax
jne 0x421219
mov byte [ebp - 5], 1
jmp 0x421171
lea ecx, [ebp - 0x98]
call fcn.00420f50
movzx eax, byte [ebp - 0x99]
test eax, eax
je 0x42125d
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x2b4], esp
lea edx, [ebp - 0x28]
push edx
call fcn.004034b0
movzx eax, byte [ebp - 0x99]
push eax
lea ecx, [ebp - 0x98]
call fcn.00421010
jmp 0x421275
movzx ecx, byte [ebp - 5]
test ecx, ecx
je 0x421275
movzx edx, byte [ebp - 5]
push edx
lea ecx, [ebp - 0x98]
call fcn.00420d00
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x98]
call fcn.0040b620
mov dword [ebp - 4], eax
mov ecx, 0x4312e4
call fcn.004094f0
lea ecx, [ebp - 0x98]
call fcn.00420ca0
movzx eax, al
test eax, eax
je 0x4212d6
lea ecx, [ebp - 0x98]
call fcn.00420c80
mov dword [ebp - 0x2b8], eax
lea ecx, [ebp - 0x98]
call fcn.0040af50
lea ecx, [ebp - 0x28]
call fcn.00401680
mov eax, dword [ebp - 0x2b8]
jmp 0x42134e
lea ecx, [ebp - 0x98]
call fcn.00420ce0
movzx ecx, al
test ecx, ecx
je 0x421316
lea ecx, [ebp - 0x98]
call fcn.00420cc0
mov dword [ebp - 0x2bc], eax
lea ecx, [ebp - 0x98]
call fcn.0040af50
lea ecx, [ebp - 0x28]
call fcn.00401680
mov eax, dword [ebp - 0x2bc]
jmp 0x42134e
mov dword [ebp - 0x2c0], 0
lea ecx, [ebp - 0x98]
call fcn.0040af50
lea ecx, [ebp - 0x28]
call fcn.00401680
mov eax, dword [ebp - 0x2c0]
jmp 0x42134e
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0040e7d1
mov esp, ebp
pop ebp
ret 0x10