Function at 0x402284
Capabilities:
Create directory
Parse pe header
Set current directory

Disassembly:
mov eax, 0x42745a
call fcn.00425734
sub esp, 0x2fc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
xor edi, edi
push 0x34
mov byte [ebp - 0x15], bl
inc edi
mov byte [ebp - 4], 1
call fcn.0040f1ae
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x4022fc
lea esi, [ebp - 0xec]
call fcn.00425443
push str.Reader
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 4], 3
push eax
mov dword [ebp - 0x14], edi
call fcn.004055b3
add esp, 0xc
mov dword [ebp - 4], 4
push eax
push dword [ebp - 0x1c]
mov dword [ebp - 0x14], 3
call fcn.004234c0
jmp 0x4022fe
xor eax, eax
push eax
mov dword [ebp - 4], 6
call fcn.0040c660
test byte [ebp - 0x14], 2
pop ecx
je 0x402320
and dword [ebp - 0x14], 0xfffffffd
push ebx
push edi
lea ecx, [ebp - 0x3c]
call fcn.00404329
test byte [ebp - 0x14], 1
je 0x402333
push ebx
push edi
lea ecx, [ebp - 0xec]
call fcn.00404329
mov byte [ebp - 0x15], 1
mov dword [ebp - 4], ebx
jmp 0x402348
push str.SLOW_PCfighter.Installation
lea ecx, [ebp - 0xec]
call fcn.004038f1
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0xb4]
push eax
mov byte [ebp - 4], 8
call fcn.004012b7
push ebx
push 1
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0xa
call fcn.00404329
push ebx
lea eax, [ebp - 0xb4]
push eax
call fcn.0040153a
cmp al, bl
jne 0x4023ca
cmp byte [0x433f19], bl
jne 0x4023ac
push ebx
push str.Already_Running
push str.Another_installation_is_already_running_or_in_the_process_of_starting_up._nPlease_wait_until_the_other_installation_has_completed_before_trying_again.
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push dword [ebp - 0xb0]
mov dword [ebp - 0xb4], vtable.replay::real_mutex.0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
jmp 0x403868
lea esi, [ebp - 0x3c]
call fcn.00425443
push 0xffffffffffffffff
push ebx
mov edi, 0x432b64
push eax
mov ecx, edi
mov byte [ebp - 4], 0xb
call fcn.00403e29
push ebx
push 1
mov ecx, esi
mov byte [ebp - 4], 0xa
call fcn.00404329
cmp dword [0x432b78], ebx
jne 0x402422
cmp byte [0x433f19], bl
jne 0x402416
push ebx
push str.GetTempPath_failed
push str.Unable_to_get_Temporary_Directory
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
push str.C:Temp_
mov ecx, edi
call fcn.00403ebb
cmp dword [0x432b7c], 0x10
mov eax, dword [0x432b68]
jae 0x402435
mov eax, 0x432b68
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push ebx
push eax
call esi
push ebx
call fcn.0040f15d
push edx
push eax
lea eax, [ebp - 0x3c]
push str.SLOW_PCF_i_
push eax
call fcn.004253b6
add esp, 0x14
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [ebp - 4], 0xc
call fcn.0040488b
push ebx
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xa
call fcn.00404329
cmp dword [0x432b7c], 0x10
mov eax, dword [0x432b68]
jae 0x402489
mov eax, 0x432b68
push ebx
push eax
call esi
cmp dword [0x432b7c], 0x10
mov eax, dword [0x432b68]
jae 0x4024a0
mov eax, 0x432b68
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x4024c7
cmp byte [0x433f19], bl
jne 0x4023ac
push ebx
push str.SetCurrentDirectory_failed
push str.Unable_to_set_Working_Directory
jmp 0x4023a5
push str.source
lea ecx, [ebp - 0x90]
call fcn.004038f1
mov byte [ebp - 4], 0xd
mov eax, dword [0x432b78]
dec eax
push eax
push ebx
push edi
lea esi, [ebp - 0x3c]
call fcn.00403aa1
mov esi, eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0xe
call fcn.00403b95
push 0xffffffffffffffff
push ebx
push esi
mov ecx, eax
call fcn.00403e29
push ebx
push 1
lea ecx, [ebp - 0x3c]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0x90]
call fcn.00404329
mov byte [ebp - 4], 0xf
push dword [ebp + 0x10]
lea ecx, [ebp - 0x74]
call fcn.004038f1
mov byte [ebp - 4], 0x10
push dword [ebp + 0x10]
lea ecx, [ebp - 0x90]
call fcn.004038f1
lea eax, [ebp - 0x90]
push eax
lea esi, [ebp - 0x58]
mov byte [ebp - 4], 0x11
call fcn.00425131
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x13
call fcn.00404329
mov esi, 0x42abbc
push esi
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0x58]
push eax
xor eax, eax
call fcn.004040ad
mov edi, eax
cmp edi, 0xffffffff
je 0x4026b9
mov esi, 0x42abc0
push esi
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0x58]
push eax
xor eax, eax
call fcn.004040ad
mov dword [ebp - 0x14], eax
cmp eax, 0xffffffff
lea eax, [ebp - 0x58]
je 0x40261f
mov esi, dword [ebp - 0x14]
add esi, 3
push esi
push 0x42abc4
push eax
call fcn.00403a64
mov edi, eax
sub edi, dword [ebp - 0x14]
lea eax, [edi - 3]
push eax
push esi
lea eax, [ebp - 0x74]
push eax
lea esi, [ebp - 0x3c]
call fcn.00403aa1
push 0xffffffffffffffff
push ebx
mov esi, 0x432b80
push eax
mov ecx, esi
mov byte [ebp - 4], 0x14
call fcn.00403e29
push ebx
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
call fcn.00404329
inc edi
push edi
push dword [ebp - 0x14]
lea ecx, [ebp - 0x74]
call fcn.0040395b
push str.commandline
lea ecx, [ebp - 0xac]
call fcn.004038f1
mov byte [ebp - 4], 0x15
jmp 0x40268f
push edi
push 0x42abd4
push eax
call fcn.00403a64
cmp eax, 0xffffffff
jne 0x402633
mov eax, dword [ebp - 0x60]
sub eax, edi
mov dword [ebp - 0x1c], eax
add eax, 0xfffffffe
push eax
lea eax, [edi + 2]
push eax
lea eax, [ebp - 0x74]
push eax
lea esi, [ebp - 0x3c]
call fcn.00403aa1
push 0xffffffffffffffff
push ebx
mov esi, 0x432b80
push eax
mov ecx, esi
mov byte [ebp - 4], 0x16
call fcn.00403e29
push ebx
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x13
call fcn.00404329
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x74]
push edi
call fcn.0040395b
push str.commandline
lea ecx, [ebp - 0xac]
call fcn.004038f1
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0xac]
push eax
call fcn.00403b95
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x74]
push ecx
mov ecx, eax
call fcn.00403e29
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.00404329
jmp 0x402706
push str.commandline
lea ecx, [ebp - 0xac]
call fcn.004038f1
lea eax, [ebp - 0xac]
push eax
mov byte [ebp - 4], 0x18
call fcn.00403b95
push dword [ebp + 0x10]
mov ecx, eax
call fcn.00403ebb
push ebx
push 1
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x13
call fcn.00404329
mov esi, 0x432b80
push 0x42abd7
mov ecx, esi
call fcn.00403ebb
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0x74]
call fcn.00404329
mov dword [ebp - 4], 0xa
jmp 0x402785
push 0x104
lea eax, [ebp - 0x308]
push eax
push ebx
mov edi, 0x42abc0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
sub esp, 0x1c
lea eax, [ebp - 0x308]
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.004038f1
call fcn.004018a1
add esp, 0x1c
push str.parameters
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x1b
call fcn.004038f1
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00403b95
push eax
lea ecx, [ebp - 0x74]
call fcn.00403916
push ebx
push 1
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x1e
call fcn.00404329
push 0x42abbc
call fcn.0040ebd0
pop ecx
push eax
push 0x42abbc
lea eax, [ebp - 0x74]
push eax
xor eax, eax
call fcn.004040ad
cmp eax, 0xffffffff
je 0x402898
push edi
call fcn.0040ebd0
pop ecx
push eax
push edi
lea eax, [ebp - 0x74]
push eax
xor eax, eax
call fcn.004040ad
mov edi, eax
cmp edi, 0xffffffff
je 0x40285e
push 0x42abe4
lea eax, [ebp - 0x3c]
push esi
push eax
call fcn.004055b3
add esp, 0xc
push 0xffffffffffffffff
push ebx
lea esi, [edi + 3]
push eax
lea edi, [ebp - 0x74]
mov byte [ebp - 4], 0x1f
call fcn.00403eda
lea ecx, [ebp - 0x3c]
jmp 0x4028da
push esi
mov esi, 0x42abc4
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.00405561
add esp, 0xc
push esi
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x20
call fcn.004055b3
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
push 2
pop esi
lea edi, [ebp - 0x74]
mov byte [ebp - 4], 0x21
call fcn.00403eda
jmp 0x4028cc
push esi
lea eax, [ebp - 0x58]
push edi
push eax
call fcn.00405561
add esp, 0xc
push 0x42abc4
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x22
call fcn.004055b3
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x23
call fcn.0040488b
push ebx
push 1
lea ecx, [ebp - 0x3c]
call fcn.00404329
lea ecx, [ebp - 0x58]
push ebx
push 1
mov byte [ebp - 4], 0x1e
call fcn.00404329
push str.commandline
lea ecx, [ebp - 0x58]
call fcn.004038f1
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], 0x24
call fcn.00403b95
push 0x42abe4
push eax
lea eax, [ebp - 0xac]
push eax
call fcn.004055b3
add esp, 0xc
lea ecx, [ebp - 0x74]
push ecx
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x25
call fcn.00405600
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x26
call fcn.00403e29
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x3c]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0xac]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x1e
call fcn.00404329
push str.parameters
lea ecx, [ebp - 0x58]
call fcn.004038f1
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], 0x27
call fcn.00403b95
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x74]
push ecx
mov ecx, eax
call fcn.00403e29
push ebx
push esi
lea ecx, [ebp - 0x58]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x74]
call fcn.00404329
mov dword [ebp - 4], 0xa
jmp 0x4029b6
push str.msilog
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x29
call fcn.004038f1
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x2a
call fcn.00403b95
push 0x42abe8
mov ecx, eax
call fcn.00403acf
cmp eax, ebx
sete byte [ebp + 0x13]
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x29
call fcn.00404329
cmp byte [ebp + 0x13], bl
je 0x402be0
mov eax, dword [0x432b78]
add eax, 0xfffffffe
push eax
call fcn.00403a83
push eax
push ebx
push 0x432b64
lea esi, [ebp - 0x58]
call fcn.00403aa1
push str.RCPRO_msi.log.txt
mov eax, esi
push eax
mov byte [ebp - 4], 0x2b
call fcn.0040393f
push str.parameters
lea ecx, [ebp - 0x90]
call fcn.004038f1
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x2c
call fcn.00403b95
push eax
lea ecx, [ebp - 0x74]
call fcn.00403916
push ebx
push edi
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x2e
call fcn.00404329
mov esi, 0x42abbc
push esi
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0x74]
push eax
xor eax, eax
call fcn.004040ad
cmp eax, 0xffffffff
je 0x402b35
mov esi, 0x42abc0
push esi
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0x74]
push eax
xor eax, eax
call fcn.004040ad
mov esi, eax
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xac]
cmp esi, 0xffffffff
je 0x402b04
push str._lv__
push eax
call fcn.00405561
add esp, 0xc
push 0x42ac08
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x2f
call fcn.004055b3
add esp, 0xc
push 0xffffffffffffffff
push ebx
mov byte [ebp - 4], 0x30
push eax
add esi, 3
lea edi, [ebp - 0x74]
call fcn.00403eda
push ebx
push 1
lea ecx, [ebp - 0x3c]
call fcn.00404329
push ebx
push 1
jmp 0x402b7f
push str.__lv__
push eax
call fcn.00405561
add esp, 0xc
push 0x42ac14
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x31
call fcn.004055b3
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
push 2
mov byte [ebp - 4], 0x32
pop esi
jmp 0x402aec
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xac]
push str._V__lv__
push eax
call fcn.00405561
add esp, 0xc
push 0x42ac14
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x33
call fcn.004055b3
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x34
call fcn.0040488b
push ebx
push edi
lea ecx, [ebp - 0x3c]
call fcn.00404329
push ebx
push edi
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x2e
call fcn.00404329
push str.parameters
lea ecx, [ebp - 0xac]
call fcn.004038f1
lea eax, [ebp - 0xac]
push eax
mov byte [ebp - 4], 0x35
call fcn.00403b95
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x74]
push ecx
mov ecx, eax
call fcn.00403e29
push ebx
push 1
lea ecx, [ebp - 0xac]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0x74]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.00404329
mov dword [ebp - 4], 0xa
jmp 0x402bf8
cmp byte [0x433f18], bl
jne 0x402c26
cmp byte [0x433f19], bl
jne 0x402c1a
push ebx
push str.Invalid_Archive_
push str.We_are_sorry__but_your_installation___update_did_not_complete_due_to_unexpected_download_errors._r_nPlease_download_full_version_of_the_program
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp + 0x10], 1
jmp 0x4037ce
push str.parameters
lea ecx, [ebp - 0x90]
call fcn.004038f1
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 0x37
call fcn.00403b95
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.00401e01
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x39
call fcn.00404329
push 0x42abd7
lea ecx, [ebp - 0xac]
call fcn.004038f1
mov esi, 0x42ac2c
push esi
mov byte [ebp - 4], 0x3a
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0xd0]
push eax
xor eax, eax
call fcn.004040ad
cmp eax, 0xffffffff
je 0x403040
mov esi, str.USER_BRAND_NAME
push esi
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0xd0]
push eax
xor eax, eax
call fcn.004040ad
mov esi, eax
lea edi, [esi + 0x10]
push edi
lea ecx, [ebp - 0xd0]
call fcn.00403a13
cmp byte [eax], 0x5c
lea eax, [ebp - 0xd0]
jne 0x402d05
lea edi, [esi + 0x12]
push edi
push 0x42a780
push eax
call fcn.00403a64
push 0xffffffffffffffee
pop ecx
sub ecx, esi
add eax, ecx
push eax
push edi
lea eax, [ebp - 0xd0]
push eax
lea esi, [ebp - 0x3c]
call fcn.00403aa1
mov byte [ebp - 4], 0x3b
jmp 0x402d2d
push edi
push 0x42abe4
push eax
call fcn.00403a64
push 0xfffffffffffffff0
pop ecx
sub ecx, esi
add eax, ecx
push eax
push edi
lea eax, [ebp - 0xd0]
push eax
lea esi, [ebp - 0x3c]
call fcn.00403aa1
mov byte [ebp - 4], 0x3c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0xac]
call fcn.00403e29
push ebx
push 1
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x3a
call fcn.00404329
mov eax, dword [ebp - 0x98]
dec eax
push eax
lea ecx, [ebp - 0xac]
call fcn.00403a13
cmp byte [eax], 0x5c
jne 0x402d98
mov eax, dword [ebp - 0x98]
dec eax
push eax
push ebx
lea eax, [ebp - 0xac]
push eax
lea esi, [ebp - 0x3c]
call fcn.00403aa1
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x3d
call fcn.00403e29
push ebx
push 1
mov ecx, esi
call fcn.00404329
push 0x20
mov byte [ebp - 4], 0x3e
push dword [ebp - 0x98]
lea ecx, [ebp - 0xec]
call fcn.00403b18
lea eax, [ebp - 0x1c4]
push eax
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x3f
call fcn.00403b73
mov edi, dword [eax]
mov esi, dword [eax + 4]
lea eax, [ebp - 0x1b4]
push eax
lea ecx, [ebp - 0xac]
call fcn.004039ec
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0x1bc]
mov dword [ebp - 0xf4], ecx
push eax
lea ecx, [ebp - 0xac]
call fcn.004039ca
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x118], ecx
mov ecx, dword [ebp - 0xf0]
sub ecx, eax
mov dword [ebp - 0x114], eax
push ecx
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
call fcn.00405944
mov eax, dword [ebp - 0x114]
cmp eax, dword [ebp - 0xf0]
je 0x402e48
movsx cx, byte [eax]
mov word [esi], cx
inc esi
inc esi
inc eax
jmp 0x402e34
push str.Lang
lea ecx, [ebp - 0x3c]
call fcn.00403af3
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 0x40
call fcn.00424cbf
push ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x40], 0xf
call fcn.0040430a
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x204]
push eax
mov byte [ebp - 4], 0x42
call fcn.00405652
pop ecx
pop ecx
push str.RCPROMisc
push eax
lea eax, [ebp - 0x1e8]
push eax
mov byte [ebp - 4], 0x43
call fcn.004056a6
add esp, 0xc
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x44
call fcn.00424bb2
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x58]
lea esi, [ebp - 0x90]
mov edi, eax
mov byte [ebp - 4], 0x45
call fcn.00424af5
push dword [ebp - 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x1e8]
call fcn.00404465
push ebx
push edi
lea ecx, [ebp - 0x204]
call fcn.00404465
push ebx
push edi
lea ecx, [ebp - 0x58]
call fcn.00404329
push dword [ebp + 0x10]
call esi
push ebx
push edi
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x4c
call fcn.00404465
push 0x42abd7
lea ecx, [ebp - 0x90]
call fcn.00403acf
cmp eax, ebx
je 0x403007
mov edi, 0x42ac88
push edi
call fcn.0040ebd0
pop ecx
push eax
push edi
lea eax, [ebp - 0xd0]
push eax
xor eax, eax
call fcn.004040ad
cmp eax, 0xffffffff
jne 0x403007
lea eax, [ebp - 0xd0]
push eax
push 0x42abe4
sub esp, 0x1c
lea eax, [ebp - 0x90]
mov ecx, esp
mov dword [ebp - 0xf0], esp
push eax
call fcn.00403916
lea esi, [ebp - 0x110]
call fcn.00401f8a
add esp, 0x1c
push eax
lea eax, [ebp - 0x134]
push edi
push eax
mov byte [ebp - 4], 0x4d
call fcn.00405561
add esp, 0xc
push eax
lea eax, [ebp - 0x1ac]
push eax
mov byte [ebp - 4], 0x4e
call fcn.004055b3
add esp, 0xc
push eax
lea eax, [ebp - 0x190]
push eax
mov byte [ebp - 4], 0x4f
call fcn.00405600
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x50
call fcn.00403e29
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x190]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x1ac]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x134]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x110]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0x90]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0xec]
call fcn.00404465
mov dword [ebp - 4], 0x3a
jmp 0x40303b
mov esi, 0x42ac2c
push esi
call fcn.0040ebd0
pop ecx
push eax
push esi
lea eax, [ebp - 0xd0]
push eax
xor eax, eax
call fcn.004040ad
cmp eax, 0xffffffff
je 0x403074
push str.Fighters
lea ecx, [ebp - 0xac]
call fcn.00403acf
cmp eax, ebx
jne 0x4034fe
push 0x42abd7
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x52
call fcn.004038f1
push str.Lang
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x53
call fcn.00403af3
push str.SOFTWAREFightersRCPROMisc
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x54
call fcn.00403af3
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 0x55
call fcn.00424cbf
push ebx
lea ecx, [ebp - 0xec]
mov dword [ebp - 0xd4], 0xf
call fcn.0040430a
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x57
call fcn.00424bb2
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0xec]
lea esi, [ebp - 0x110]
mov edi, eax
mov byte [ebp - 4], 0x58
call fcn.00424af5
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x59
call fcn.00403e29
xor edi, edi
push ebx
inc edi
push edi
mov ecx, esi
call fcn.00404329
push dword [ebp - 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push ebx
push edi
lea ecx, [ebp - 0xec]
call fcn.00404329
push dword [ebp + 0x10]
call esi
push ebx
push edi
lea ecx, [ebp - 0x3c]
call fcn.00404465
push ebx
push edi
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x53
call fcn.00404465
push 0x42abd7
lea ecx, [ebp - 0x58]
call fcn.00403acf
cmp eax, ebx
jne 0x403232
push str.Lang
lea ecx, [ebp - 0x90]
call fcn.00403af3
push str.SOFTWAREFightersSLOW_PCfighterMisc
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x5a
call fcn.00403af3
lea eax, [ebp + 0x10]
push eax
mov byte [ebp - 4], 0x5b
call fcn.00424cbf
push ebx
lea ecx, [ebp - 0xec]
mov dword [ebp - 0xd4], 0xf
call fcn.0040430a
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x5d
call fcn.00424bb2
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0xec]
lea esi, [ebp - 0x110]
mov edi, eax
mov byte [ebp - 4], 0x5e
call fcn.00424af5
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x5f
call fcn.00403e29
xor edi, edi
push ebx
inc edi
push edi
mov ecx, esi
call fcn.00404329
push dword [ebp - 0x1c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push ebx
push edi
lea ecx, [ebp - 0xec]
call fcn.00404329
push dword [ebp + 0x10]
call esi
push ebx
push edi
lea ecx, [ebp - 0x3c]
call fcn.00404465
push ebx
push edi
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x53
call fcn.00404465
push 0x42abd7
lea ecx, [ebp - 0x58]
call fcn.00403acf
cmp eax, ebx
je 0x40331e
mov edi, 0x42ac88
push edi
call fcn.0040ebd0
pop ecx
push eax
push edi
lea eax, [ebp - 0xd0]
push eax
xor eax, eax
call fcn.004040ad
cmp eax, 0xffffffff
jne 0x40331e
lea eax, [ebp - 0xd0]
push eax
push 0x42abe4
sub esp, 0x1c
lea eax, [ebp - 0x58]
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.00403916
lea esi, [ebp - 0x190]
call fcn.00401f8a
add esp, 0x1c
push eax
lea eax, [ebp - 0x1ac]
push edi
push eax
mov byte [ebp - 4], 0x60
call fcn.00405561
add esp, 0xc
push eax
lea eax, [ebp - 0x134]
push eax
mov byte [ebp - 4], 0x61
call fcn.004055b3
add esp, 0xc
push eax
lea eax, [ebp - 0x110]
push eax
mov byte [ebp - 4], 0x62
call fcn.00405600
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0x63
call fcn.00403e29
xor esi, esi
push ebx
inc esi
push esi
lea ecx, [ebp - 0x110]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x134]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x1ac]
call fcn.00404329
push ebx
push esi
lea ecx, [ebp - 0x190]
call fcn.00404329
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.00404329
mov dword [ebp - 4], 0x3a
jmp 0x4034fe
push ebx
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x5c], 0xf
call fcn.0040430a
push str.IsWow64Process
mov byte [ebp - 4], 0x76
push str.kernel32
mov dword [ebp - 0x14], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
je 0x40353f
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
lea ecx, [ebp - 0x3c]
cmp dword [ebp - 0x14], ebx
jne 0x40358d
push str.executable32
call fcn.004038f1
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x77
call fcn.00403b95
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.00401e01
pop ecx
pop ecx
push eax
mov esi, 0x432b64
lea eax, [ebp - 0x110]
push esi
push eax
mov byte [ebp - 4], 0x78
call fcn.00405600
add esp, 0xc
mov byte [ebp - 4], 0x79
jmp 0x4035d1
push str.executable64
call fcn.004038f1
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0x7a
call fcn.00403b95
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.00401e01
pop ecx
pop ecx
push eax
mov esi, 0x432b64
lea eax, [ebp - 0x110]
push esi
push eax
mov byte [ebp - 4], 0x7b
call fcn.00405600
add esp, 0xc
mov byte [ebp - 4], 0x7c
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x74]
call fcn.00403e29
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x110]
call fcn.00404329
push ebx
push edi
lea ecx, [ebp - 0x134]
call fcn.00404329
push ebx
push edi
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x76
call fcn.00404329
push 0x3c
lea eax, [ebp - 0x170]
push ebx
push eax
call fcn.0040efe0
mov eax, dword [ebp - 0x70]
add esp, 0xc
cmp dword [ebp - 0x5c], 0x10
mov dword [ebp - 0x170], 0x3c
mov dword [ebp - 0x16c], 0x40
mov dword [ebp - 0x168], ebx
mov dword [ebp - 0x154], edi
jae 0x403646
lea eax, [ebp - 0x70]
cmp dword [ebp - 0xb8], 0x10
mov dword [ebp - 0x160], eax
mov eax, dword [ebp - 0xcc]
jae 0x403661
lea eax, [ebp - 0xcc]
mov dword [ebp - 0x15c], eax
mov eax, dword [0x432b78]
add eax, 0xfffffffe
push eax
call fcn.00403a83
push eax
push ebx
push esi
lea esi, [ebp - 0x110]
call fcn.00403aa1
cmp dword [eax + 0x18], 0x10
jb 0x40368e
mov eax, dword [eax + 4]
jmp 0x403691
add eax, 4
push ebx
push edi
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x158], eax
call fcn.00404329
cmp byte [ebp - 0x15], bl
je 0x403702
mov esi, 0x42abd7
push esi
call fcn.0040c8b0
pop ecx
push str.SLOW_PCighter
call fcn.0040c8b0
cmp dword [ebp - 0x5c], 0x10
mov eax, dword [ebp - 0x70]
pop ecx
jae 0x4036cc
lea eax, [ebp - 0x70]
push eax
push str.File:__s
call fcn.0040c8b0
cmp dword [ebp - 0xb8], 0x10
mov eax, dword [ebp - 0xcc]
pop ecx
pop ecx
jae 0x4036ee
lea eax, [ebp - 0xcc]
push eax
push str.Parameters:__s
call fcn.0040c8b0
pop ecx
pop ecx
push esi
call fcn.0040c8b0
pop ecx
cmp dword [ebp - 0x60], ebx
je 0x40378d
lea eax, [ebp - 0x170]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
test eax, eax
je 0x40378d
push 0xffffffffffffffff
push dword [ebp - 0x138]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x403762
lea eax, [ebp + 0x10]
push eax
push dword [ebp - 0x138]
mov dword [ebp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x40374d
mov eax, dword [ebp + 0x10]
mov dword [ebp + 0x10], eax
jmp 0x40377f
cmp byte [0x433f19], bl
jne 0x40377c
push ebx
push str.GetExitCodeProcess_failed
push str.Unable_to_get_process_exit_code
jmp 0x403775
cmp byte [0x433f19], bl
jne 0x40377c
push ebx
push str.WaitForSingleObject_failed
push str.Unable_to_wait_for_process
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp + 0x10], edi
push dword [ebp - 0x138]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4037aa
cmp byte [0x433f19], bl
jne 0x4037a7
push ebx
push str.ShellExecuteEx_failed
push str.Unable_to_spawn_process
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp + 0x10], edi
push ebx
push edi
lea ecx, [ebp - 0x74]
call fcn.00404329
push ebx
push edi
lea ecx, [ebp - 0xac]
call fcn.00404329
push ebx
push edi
lea ecx, [ebp - 0xd0]
call fcn.00404329
push ebx
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x40], 0xf
call fcn.0040430a
mov byte [ebp - 4], 0x7d
mov eax, dword [0x432b78]
add eax, 0xfffffffe
push eax
call fcn.00403a83
push eax
push ebx
mov edi, 0x432b64
push edi
lea esi, [ebp - 0x110]
call fcn.00403aa1
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x7e
call fcn.00403e29
push ebx
push 1
mov ecx, esi
mov byte [ebp - 4], 0x7d
call fcn.00404329
cmp dword [ebp - 0x40], 0x10
mov eax, dword [ebp - 0x54]
jae 0x40382d
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push edi
call fcn.0042548c
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x58]
call fcn.00404329
push dword [ebp - 0xb0]
mov dword [ebp - 0xb4], vtable.replay::real_mutex.0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [ebp - 4], 0xffffffff
call fcn.0040c6f0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10