Function at 0x457f00
Capabilities:
Accept command line arguments
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52fdb6
mov eax, dword fs:[0]
push eax
sub esp, 0x470
mov eax, dword [0x5c6150]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp byte [ebx + 0xa88], 0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x474], esi
je 0x457f49
mov al, 1
jmp 0x4585a5
mov byte [ebp - 0x46d], 1
call fcn.00464730
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
test al, al
je 0x457f7a
call edi
push str.initruntime_safemode
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push 0x43
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
push str.initruntime_safemode
setne al
mov byte [ebx + 8], al
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x457fbb
call edi
push str.initruntime_installpath
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push esi
mov ecx, ebx
call fcn.00458980
neg al
push str.initruntime_installpath
sbb al, al
and byte [ebp - 0x46d], al
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x457ffe
call edi
push str.initruntime_TempPath
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push 0x208
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.004d9fe0
add esp, 0xc
lea eax, [ebp - 0x21c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x458070
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, esi
mov edi, eax
call fcn.00450c80
push 0x5a099c
mov esi, eax
push 0x5971f4
push esi
call fcn.00450580
add esp, 0xc
push edi
push 0x59fc70
push esi
call fcn.00450580
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
add esp, 0xc
mov esi, dword [ebp - 0x474]
xor al, al
jmp 0x458124
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x458080
sub ecx, edx
sar ecx, 1
cmp word [ebp + ecx*2 - 0x21e], 0x5c
jne 0x4580b7
lea ecx, [ecx*2 - 2]
cmp ecx, 0x208
jae 0x4581bb
xor eax, eax
mov word [ebp + ecx - 0x21c], ax
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x344]
call fcn.00451610
cmp byte [ebp - 0x228], 0
lea eax, [ebp - 0x338]
lea ecx, [ebx + 0x130]
cmove eax, dword [ebp - 0x33c]
add eax, 4
push eax
call fcn.0044ff70
cmp byte [ebp - 0x228], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x458122
mov eax, dword [ebp - 0x33c]
lea ecx, [ebp - 0x338]
cmp eax, ecx
je 0x458122
push eax
call fcn.004e1b56
add esp, 4
mov al, 1
and byte [ebp - 0x46d], al
push str.initruntime_TempPath
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x45815b
call edi
push str.initruntime_VistaIE7
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push ecx
mov ecx, ebx
call fcn.004585d0
neg al
push str.initruntime_VistaIE7
sbb al, al
and al, byte [ebp - 0x46d]
mov byte [ebp - 0x46e], al
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x4581a4
call edi
push str.initruntime_DataPath
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push esi
mov ecx, ebx
call fcn.00458a30
test al, al
jne 0x4581c0
mov byte [ebp - 0x46e], al
jmp 0x458280
call fcn.004d6e31
call fcn.00464730
test al, al
je 0x4581ee
mov dword [ebp - 0x478], str.initruntime_ProfilePath
call edi
push str.initruntime_ProfilePath
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push esi
mov ecx, ebx
mov dword [ebp - 4], 0
call fcn.00458e00
test al, al
jne 0x458209
mov byte [ebp - 0x46e], al
jmp 0x45826e
xor ecx, ecx
lea esi, [ebx + 0x384]
mov word [ebx + 0x5c0], cx
cmp byte [ebx + 0x494], cl
jne 0x458226
mov esi, dword [ebx + 0x380]
movzx eax, word [esi + 4]
add esi, 4
xor ecx, ecx
test ax, ax
je 0x45825a
shl ecx, 4
lea esi, [esi + 2]
movzx eax, ax
add ecx, eax
mov edx, ecx
and edx, 0xf0000000
je 0x458252
mov eax, edx
shr eax, 0x18
xor eax, edx
xor ecx, eax
movzx eax, word [esi]
test ax, ax
jne 0x458234
push 0x10
push 0x11
lea eax, [ebx + 0x5c0]
push eax
push ecx
call fcn.004ed64c
add esp, 0x10
lea ecx, [ebp - 0x478]
mov dword [ebp - 4], 0xffffffff
call fcn.00464680
push str.initruntime_DataPath
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x4582b1
call edi
push str.initruntime_SetBuildNo
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
call fcn.004603b0
push eax
lea eax, [ebx + 0x5e2]
push 0xb
push eax
call fcn.004e1af2
add esp, 0xc
push str.initruntime_SetBuildNo
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x4582f9
call edi
push str.initruntime_SetCommandLine
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
call esi
call esi
push eax
lea ecx, [ebx + 0x5f8]
call fcn.0044ff70
cmp byte [ebx + 0x714], 0
lea eax, [ebx + 0x604]
jne 0x458324
mov eax, dword [ebx + 0x600]
add eax, 4
lea ecx, [ebx + 0x71c]
push eax
call fcn.0044ff70
lea ecx, [ebx + 0x71c]
call fcn.00450ab0
push str.initruntime_SetCommandLine
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x45836f
call edi
push str.initruntime_CheckConfig
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
mov esi, dword [ebp - 0x474]
lea eax, [ebp - 0x46d]
push eax
push esi
mov ecx, ebx
mov byte [ebp - 0x46d], 0
call fcn.0045a160
neg al
push str.initruntime_CheckConfig
sbb al, al
and byte [ebp - 0x46e], al
call fcn.004645d0
add esp, 4
cmp byte [ebp - 0x46d], 0
jne 0x4583ee
call fcn.00464730
test al, al
je 0x4583cf
call edi
push str.initruntime_SetProcessShortName
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
push esi
mov ecx, ebx
call fcn.00459240
neg al
push str.initruntime_SetProcessShortName
sbb al, al
and byte [ebp - 0x46e], al
call fcn.004645d0
add esp, 4
call fcn.00464730
test al, al
je 0x458412
call edi
push str.initruntime_CheckIgnoreCancel
push eax
call fcn.0046ef50
mov ecx, eax
call fcn.0046f0d0
mov ecx, eax
call fcn.0046f440
mov al, byte [ebx + 0xa8a]
test al, al
jne 0x45845f
mov eax, dword [ebx]
mov edx, dword [eax + 4]
cmp eax, vtable.t_runtime.0
jne 0x458442
cmp byte [ebx + 0x95c], 0
lea eax, [ebx + 0x84c]
jne 0x45843d
mov eax, dword [ebx + 0x848]
add eax, 4
jmp 0x458446
mov ecx, ebx
call edx
push str.outlook.exe
push eax
call fcn.004e0bff
add esp, 8
test eax, eax
jne 0x45845f
mov byte [ebx + 0xaec], 1
push str.initruntime_CheckIgnoreCancel
call fcn.004645d0
add esp, 4
lea ecx, [ebp - 0x46c]
call fcn.0044fd40
lea edx, [ebp - 0x46c]
mov dword [ebp - 4], 1
mov ecx, esi
call fcn.0045fdf0
cmp byte [ebx + 0x95c], 0
lea eax, [ebx + 0x84c]
jne 0x4584a0
mov eax, dword [ebx + 0x848]
add eax, 4
push str.explorer.exe
push eax
call fcn.004e0bff
add esp, 8
test eax, eax
je 0x4584e8
cmp byte [ebx + 0x95c], 0
lea eax, [ebx + 0x84c]
jne 0x4584ca
mov eax, dword [ebx + 0x848]
add eax, 4
push str.searchui.exe
push eax
call fcn.004e0bff
add esp, 8
test eax, eax
je 0x4584e8
mov byte [ebx + 0xaed], 0
jmp 0x4584ef
mov byte [ebx + 0xaed], 1
xor esi, esi
cmp dword [str.Notepad.exe], esi
je 0x458543
mov eax, 0x58b200
nop
cmp byte [ebx + 0x95c], 0
mov ecx, dword [eax]
lea eax, [ebx + 0x84c]
jne 0x458517
mov eax, dword [ebx + 0x848]
push ecx
add eax, 4
push eax
call fcn.004e0bff
add esp, 8
test eax, eax
je 0x45853c
inc esi
cmp dword [esi*4 + 0x58b200], 0
lea eax, [esi*4 + 0x58b200]
jne 0x458500
jmp 0x458543
mov byte [ebx + 0x1fb1], 1
cmp byte [ebp - 0x46e], 0
jne 0x45856e
mov ecx, dword [ebp - 0x474]
call fcn.00450c80
push 0x5a0924
push 0x5971f4
push eax
call fcn.00450580
add esp, 0xc
xor bl, bl
jmp 0x458577
mov byte [ebx + 0xa88], 1
mov bl, 1
cmp byte [ebp - 0x350], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x4585a3
mov ecx, dword [ebp - 0x464]
lea eax, [ebp - 0x460]
cmp ecx, eax
je 0x4585a3
push ecx
call fcn.004e1b56
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004d6cfd
mov esp, ebp
pop ebp
ret 4