Function at 0x448880
Capabilities:
Check mutex on windows
Create directory
Create process on windows
Get common file path
Get memory capacity
Hide graphical window
Read .ini file
Read file via mapping
Resolve function by parsing pe exports
Set current directory

Disassembly:
mov eax, 0xc04fc
call fcn.0049bb70
lea eax, [esp + 0x190]
push ebx
push esi
push edi
push ebp
mov esi, dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
push eax
call esi
lea ecx, [esp + 0x1a0]
push ecx
call esi
cmp dword [esp + 0x1a8], 0x1400000
jae 0x448956
lea eax, [esp + 0x8c]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x204]
push str.system.ini
lea eax, [esp + 0x90]
push 0x104
push ecx
push eax
push str.PagingDrive
push str.386Enh
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0x204]
push ecx
call fcn.00488bc0
add esp, 4
cmp eax, 0x64
jge 0x448956
lea ecx, [esp + 0x40c]
push eax
lea eax, [esp + 0x208]
push eax
push str._s:__d_MByte
push ecx
call fcn.0049bae0
lea ecx, [esp + 0x41c]
add esp, 0x10
push 0x31
push ecx
push 0x4b3840
push 0
call fcn.00417af0
add esp, 0x10
cmp eax, 2
jne 0x448956
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0xc04fc
ret 0x10
push 0
call dword [sym.imp.USER32.dll_GetDC]
push 0xc
push eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
cmp eax, 0x10
jge 0x448989
push 0x30
push 0x4ac5e4
push 0x4b37e8
push 0
call fcn.00417af0
add esp, 0x10
mov eax, 1
jmp 0x448949
call fcn.0048c890
test eax, eax
jne 0x4489af
push 0x30
push 0x4ac5e4
push 0x4b37b8
push 0
call fcn.00417af0
add esp, 0x10
mov eax, 2
jmp 0x448949
push str.BIOHAZARD_PC_DoubleStart_Check
mov esi, dword [sym.imp.KERNEL32.dll_OpenMutexA]
push 0
push 0x1f0001
call esi
mov dword [0x6a5f84], eax
test eax, eax
je 0x4489dd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 3
jmp 0x448949
push str.BIOHAZARD_PC_Setup_DoubleStart_Check
push 0
push 0x1f0001
call esi
mov dword [0x6a5f84], eax
test eax, eax
je 0x448a05
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 4
jmp 0x448949
push str.BIOHAZARD_PC_Uninstall_DoubleStart_Check
push 0
push 0x1f0001
call esi
mov dword [0x6a5f84], eax
test eax, eax
je 0x448a2d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 5
jmp 0x448949
push str.BIOHAZARD_PC_DoubleStart_Check
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov byte [0x6a5f90], 0
mov dword [0x6a5f84], eax
lea eax, [esp + 0x50c]
mov dword [0x6a5f80], eax
call fcn.004343b0
test eax, eax
je 0x44967b
push 0x6a5f90
call fcn.00434400
add esp, 4
test eax, eax
je 0x44964a
push 0x6a5f90
call fcn.00434400
add esp, 4
test eax, eax
je 0x44964a
lea eax, [esp + 0x308]
push 0x6a5f90
push eax
call fcn.0049bae0
lea eax, [esp + 0x310]
add esp, 8
push 0x5c
push eax
call fcn.0049c800
mov dword [esp + 0x94], eax
add esp, 8
test eax, eax
je 0x448ac0
mov byte [eax], 0
xor ebx, ebx
lea eax, [esp + 0x24]
lea ecx, [esp + 0x308]
push eax
push ecx
mov ebp, dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov edi, 0x6a5f90
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], 0xc
mov dword [esp + 0x34], ebx
call ebp
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
mov edi, 0xb38cd0
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push str.Test
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
push 6
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov dword [0x6a4fd8], eax
cmp eax, ebx
je 0x448b40
push ebx
push ebx
push ebx
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x8c], eax
cmp eax, ebx
jne 0x449029
mov eax, dword [esp + 0xc0518]
push 0x2f
push eax
call fcn.0049c840
mov dword [esp + 0x94], eax
add esp, 8
test eax, eax
jne 0x448b76
mov eax, dword [esp + 0xc0518]
push 0x2d
push eax
call fcn.0049c840
mov dword [esp + 0x94], eax
add esp, 8
cmp dword [esp + 0x8c], 0
je 0x449078
mov eax, dword [esp + 0xc0518]
push eax
call fcn.0049cb30
mov dword [esp + 0x90], eax
add esp, 4
push 0x4b36e8
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448bdb
push 0
mov eax, dword [0x6a609c]
push 0x449a60
push 0
push 0x6c
push eax
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov ecx, dword [0x6a5f84]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xffffffff
jmp 0x448949
mov eax, dword [esp + 0x8c]
push 0x4b36e4
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448c1e
push 0
push str.BIO_HAZARD
push str.BIO_HAZARD_version_1.01
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xffffffff
jmp 0x448949
mov eax, dword [esp + 0x8c]
push str.monster
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448c48
xor eax, eax
mov dword [0x6a6098], eax
mov dword [0x4ac4a4], eax
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.mystique
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448c7a
mov dword [0x6a6098], 1
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.total
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448cac
mov dword [0x6a6098], 2
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.graphicblaster
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448cde
mov dword [0x6a6098], 0xc
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.blaster
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448d10
mov dword [0x6a6098], 3
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.righteous
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448d42
mov dword [0x6a6098], 4
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.intense
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448d74
mov dword [0x6a6098], 6
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.rage_pro
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448da6
mov dword [0x6a6098], 8
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.stingray
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448dd8
mov dword [0x6a6098], 9
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.pc3d
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448e0a
mov dword [0x6a6098], 0xa
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.pwr128p
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448e3c
mov dword [0x6a6098], 0xb
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.millennium2
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448e6e
mov dword [0x6a6098], 0xd
mov dword [0x4ac4a4], 0
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.nocard1
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x448f57
mov eax, 5
mov dword [0x69e400], eax
mov dword [0x6a6098], eax
call fcn.00449c00
mov dword [esp + 0x8c], eax
cmp eax, 0xffffffff
je 0x448ef4
test eax, eax
je 0x448f05
cmp eax, 1
je 0x448f2a
mov ecx, eax
shl eax, 4
add eax, ecx
lea eax, [ecx + eax*4]
shl eax, 2
mov dword [0x4d7120], 1
mov ecx, dword [eax + 0x69e1e0]
mov edx, dword [eax + 0x69e1e4]
mov dword [0x4d7168], ecx
mov dword [0x4d716c], edx
mov eax, dword [esp + 0x8c]
mov dword [0x4ac4a4], eax
jmp 0x449078
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x448947
mov dword [0x4d7168], 0x140
mov dword [0x4d716c], 0xf0
xor eax, eax
mov dword [0x4ac4a4], eax
mov dword [0x4d7120], eax
jmp 0x449078
mov dword [0x4d7168], 0x280
mov dword [0x4d716c], 0x1e0
mov dword [0x4d7120], 0
mov dword [0x4ac4a4], 1
jmp 0x449078
mov eax, dword [esp + 0x8c]
push str.nocard2
push eax
call fcn.0049cab0
add esp, 8
test eax, eax
je 0x449078
mov eax, 7
mov dword [0x69e400], eax
mov dword [0x6a6098], eax
call fcn.00449c00
mov dword [esp + 0x8c], eax
test eax, eax
je 0x448fdd
cmp eax, 1
je 0x448fff
mov ecx, eax
shl ecx, 4
add ecx, eax
lea edx, [eax + ecx*4]
mov dword [0x4d7120], 1
mov ecx, dword [edx*4 + 0x69e1e0]
lea eax, [edx*4]
mov dword [0x4d7168], ecx
mov edx, dword [eax + 0x69e1e4]
mov dword [0x4d716c], edx
mov eax, dword [esp + 0x8c]
mov dword [0x4ac4a4], eax
jmp 0x449078
mov dword [0x4d7168], 0x140
mov dword [0x4d716c], 0xf0
xor eax, eax
mov dword [0x4d7120], eax
mov dword [0x4ac4a4], eax
jmp 0x449078
mov dword [0x4d7168], 0x280
mov dword [0x4d716c], 0x1e0
mov dword [0x4d7120], 0
mov dword [0x4ac4a4], 1
jmp 0x449078
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov dword [0x69e400], ecx
mov ecx, dword [eax]
mov dword [0x6a6098], ecx
mov edx, dword [eax + 4]
mov dword [0x4d7168], edx
mov ecx, dword [eax + 8]
mov dword [0x4d716c], ecx
mov edx, dword [eax + 0xc]
mov dword [0x4d7120], edx
mov dword [eax + 0x14], 1
mov ecx, dword [eax + 0x18]
mov edx, dword [0x6a4fd8]
push edx
mov dword [0x4ac4a4], ecx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov eax, dword [0x6a6098]
mov dword [0x69e400], eax
cmp eax, 6
jne 0x449091
mov dword [0x69e400], 3
cmp dword [0x6a6098], 4
jne 0x4490a4
mov dword [0x69e400], 0
cmp dword [0x69e400], 0
mov dword [0x4b34f0], 1
je 0x4490c1
mov dword [0x4b34f0], 0
mov dword [0x6a5f88], 0
mov eax, dword [0x69e400]
mov dword [0x6a6094], eax
sub eax, 5
cmp eax, 5
ja case.0x4490dd.6
jmp dword [eax*4 + 0x44976c]
mov dword [0x6a5f88], 1
inc dword [0x4d7124]
cmp dword [0x4b34f0], 0
je 0x4491c9
push str.bio1997
push 0x11c
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [0x4b33ec], eax
cmp eax, 0xffffffff
je 0x449213
test eax, eax
je 0x449213
push 0
push 0
push 0
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [0x6a60a0], eax
test eax, eax
jne 0x449173
push 0x30
push str.BIOHAZARD
push 0x4b3590
push 0
call fcn.00417af0
add esp, 0x10
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0xa
jmp 0x448949
mov eax, dword [0x6a60a0]
xor ecx, ecx
mov byte [eax], 1
mov eax, dword [0x6a60a0]
mov edx, 0xffffffff
mov edi, 8
mov byte [eax + 1], cl
mov eax, dword [0x6a60a0]
mov byte [eax + 4], cl
mov dword [esp + 0x8c], ecx
mov esi, dword [0x6a60a0]
mov eax, dword [esp + 0x8c]
mov byte [esi + eax + 0xc], dl
mov ebx, dword [0x6a60a0]
mov byte [ebx + eax + 0x14], cl
inc dword [esp + 0x8c]
cmp dword [esp + 0x8c], edi
jl 0x44919e
mov eax, dword [esp + 0xc0510]
push 0
push 0x69e3fc
mov dword [0x6a609c], eax
push 0
push 0x10
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [0x69e3fc], 1
jne 0x4491fd
push 2
push 0
push 0
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [0x6a5f88], 1
jne 0x44923f
mov dword [esp + 0x8c], 0xca0000
jmp 0x44924a
push 0x30
push str.BIOHAZARD
push 0x4b35e0
push 0
call fcn.00417af0
add esp, 0x10
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 9
jmp 0x448949
mov dword [esp + 0x8c], 0x82000000
lea eax, [esp + 0x14]
xor esi, esi
push eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
mov ebp, dword [sym.imp.USER32.dll_GetWindowRect]
call ebp
mov eax, dword [esp + 0x8c]
push esi
lea ecx, [esp + 0x18]
push eax
push ecx
call dword [sym.imp.USER32.dll_AdjustWindowRect]
cmp dword [esp + 0xc0514], esi
jne 0x4492eb
mov eax, dword [esp + 0xc0510]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
push 0x67
mov dword [esp + 0x78], eax
push eax
mov dword [esp + 0x6c], 0xb
mov dword [esp + 0x70], 0x4486a0
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [esp + 0x78], eax
push 0x7f00
push esi
mov ebp, dword [sym.imp.USER32.dll_LoadCursorA]
call ebp
mov dword [esp + 0x7c], eax
push 4
call dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], str.BIOHAZARD
lea eax, [esp + 0x64]
push eax
call dword [sym.imp.USER32.dll_RegisterClassA]
mov eax, dword [esp + 0xc0510]
push 0
push eax
push 0
mov eax, dword [esp + 0x2c]
push 0
sub eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x9c]
push eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x28]
push eax
push 0
push 0
push ecx
push str.BIOHAZARD
push str.BIOHAZARD
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [esp + 0x8c], eax
push str.1997_3_21
push str.BIOHAZARD_for_DIRECT_X
call fcn.0043d370
mov ecx, dword [esp + 0xc0524]
mov eax, dword [esp + 0x94]
add esp, 8
push ecx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [esp + 0x8c]
push 0
push ecx
mov dword [0x6a5f8c], ecx
call sub.IMM32.dll_ImmAssociateContext
call fcn.00416cb0
cmp dword [0x4cfd38], 0
jne 0x449389
mov eax, dword [esp + 0x8c]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
xor ebx, ebx
call fcn.004172f0
call fcn.00417410
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
lea eax, [esp + 0x48]
push ebx
push ebx
push ebx
push ebx
push eax
call esi
test eax, eax
je 0x4493f3
lea eax, [esp + 0x48]
push ebx
push ebx
push ebx
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x4495ae
lea eax, [esp + 0x48]
push eax
call edi
cmp dword [esp + 0x4c], 0x112
jne 0x4493ec
cmp dword [esp + 0x50], 0xf060
jne 0x4493ec
call fcn.00417ab0
lea eax, [esp + 0x48]
push eax
call ebp
cmp dword [0x4ac3e4], ebx
je 0x44940e
call fcn.00417ab0
mov eax, dword [0x6a5f8c]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x4493a7
cmp dword [0x4b34f0], ebx
je 0x449439
mov eax, dword [0x6a60a0]
cmp byte [eax + 3], 1
jne 0x449439
cmp byte [eax + 1], bl
jne 0x449439
call fcn.00417ab0
mov eax, dword [esp + 0x8c]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp dword [0x4b32a0], ebx
je 0x44944f
cmp dword [0x4b32a4], ebx
jne 0x44949e
dec dword [0x4b32a4]
call fcn.00449990
call fcn.00416c50
test eax, eax
jne 0x4494a8
cmp dword [0x4b3298], ebx
jne 0x4493a7
mov dword [0x4b3298], 1
push 0x30
push str.BIOHAZARD
push 0x4b350c
push ebx
call fcn.00417af0
add esp, 0x10
call fcn.00417ab0
mov eax, dword [0x6a5f8c]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x4493a7
call fcn.0044c840
jmp 0x4493a7
cmp dword [0x4b3288], ebx
jne 0x4493a7
cmp dword [0x4b3274], ebx
je 0x4493a7
cmp dword [0x6a5f8c], ebx
je 0x4494d0
cmp dword [0x4b3274], ebx
jne 0x4494dc
cmp dword [0x4b3278], ebx
je 0x4495a3
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x6a60a8], eax
mov eax, dword [0x4b327c]
add eax, 0x3e8
cmp eax, dword [0x6a60a8]
jge 0x449527
mov eax, dword [0x6a60a8]
mov ecx, dword [0x4ac474]
mov edx, dword [0x4ac47c]
mov dword [0x4b327c], eax
mov dword [0x4ac478], ecx
mov dword [0x4ac474], ebx
mov dword [0x4d4dd0], edx
mov dword [0x4ac47c], ebx
cmp dword [0x4ac4b8], ebx
je 0x449590
cmp dword [0x4b3290], 1
jne 0x44956a
cmp dword [0x4ac4bc], ebx
jne 0x449590
mov eax, dword [0x4b329c]
add eax, dword [0x4b3294]
cmp eax, dword [0x6a60a8]
jle 0x449590
mov eax, dword [0x4b3294]
sub eax, 0x10000
cmp eax, dword [0x6a60a8]
jge 0x449590
jmp 0x4493a7
mov eax, dword [0x4b3294]
add eax, 0x10
cmp eax, dword [0x6a60a8]
jle 0x449590
mov eax, dword [0x4b3294]
sub eax, 0x10000
cmp eax, dword [0x6a60a8]
jl 0x4493a7
mov eax, dword [0x6a60a8]
mov dword [0x4b3294], eax
call fcn.00484130
test al, al
je 0x44961e
mov dword [0x4b3278], ebx
jmp 0x4493a7
call fcn.004689c0
call fcn.00464dc0
cmp byte [0x4b32c0], 0
je 0x4495e8
cmp dword [0x4ac498], 0
jne 0x4495d2
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
push 0x30
push 0x4ac5e4
push 0x4b32c0
push 0
call fcn.00417af0
add esp, 0x10
cmp dword [0x69e3fc], 1
jne 0x4495ff
push 2
push 0
push 1
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
call fcn.00417ab0
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00449870
mov eax, dword [esp + 0x50]
jmp 0x448949
cmp dword [0x69e3fc], 1
jne 0x449635
push 2
push 0
push 1
push 0x11
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x50]
jmp 0x448949
push 1
push 0x4ac5e4
push 0x4b3700
push 0
call fcn.00417af0
add esp, 0x10
cmp eax, 1
je 0x44967b
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 6
jmp 0x448949
lea edi, [esp + 0x1c0]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov eax, 0xc
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], eax
lea edx, [esp + 0x190]
lea eax, [esp + 0x1c0]
mov dword [esp + 0x34], ecx
push edx
mov dword [esp + 0x3c], ecx
push eax
lea ebx, [esp + 0x38]
push 0x4b0d28
lea edx, [esp + 0x48]
push ecx
mov dword [esp + 0x1d0], 0x44
push 0x10
push ecx
push ebx
push edx
push ecx
push str.Setup.exe
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x448a76
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x8c], eax
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x8c]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
je 0x449730
lea eax, [esp + 0x10]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [esp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x10], 0
jne 0x44975b
mov eax, dword [0x6a5f84]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 7
jmp 0x448949
push 0x4b0d28
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
jmp 0x448a76