Function at 0x462550
Capabilities:
Accept command line arguments
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x4edca4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [0x4f1620], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
rol ax, 8
movzx eax, ax
mov dword [0x4f1818], eax
lea eax, [ebp - 0x118]
push eax
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4625bf
cmp dword [ebp - 0x108], 2
jne 0x4625bf
cmp dword [ebp - 0x114], 5
ja 0x4625b5
jne 0x4625bf
cmp dword [ebp - 0x110], 0
je 0x4625bf
mov dword [0x4f1814], 1
push esi
push edi
call fcn.0044ab50
mov dword [0x4f1754], 0x4445e0
mov dword [0x4f1744], 0x428bc0
mov dword [0x4f1748], 0x428c10
mov dword [0x4f174c], 0x4297a0
mov dword [0x4f1750], 0x429870
mov dword [0x4f1758], 0x429060
mov dword [0x4f178c], 0x429040
mov dword [0x4f175c], 0x4291a0
mov dword [0x4f1790], 0x429140
mov dword [0x4f1760], 0x428d80
mov dword [0x4f1794], 0x428d60
mov dword [0x4f1764], 0x428e70
mov dword [0x4f1770], 0x429230
mov dword [0x4f1774], 0x429410
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov esi, eax
movzx ecx, word [esi]
lea edx, [esi + 2]
cmp ecx, 0x22
je 0x462667
mov edx, esi
xor eax, eax
cmp ecx, 0x22
sete al
lea eax, [eax*2 + 0x20]
push eax
push edx
call fcn.004874dc
add esp, 8
test eax, eax
je 0x462687
lea esi, [eax + 2]
mov ecx, esi
call fcn.0044b540
call dword [sym.imp.MMFS2.dll_Ordinal_1055]
push 2
push 0x104
call fcn.0048ff3a
add esp, 8
mov dword [0x4f17e0], eax
test eax, eax
je 0x4628e1
push 0x104
push eax
push dword [0x4f1620]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push dword [0x4f17e0]
call fcn.004875a3
add esp, 8
test eax, eax
je 0x4628c9
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [0x4f17e0]
test ecx, ecx
je 0x4628e1
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4626f0
sub ecx, edx
sar ecx, 1
push 2
lea eax, [ecx + 0xb]
push eax
call fcn.0048ff3a
mov edx, dword [0x4f17e0]
add esp, 8
mov esi, eax
sub eax, edx
nop word [eax + eax]
movzx ecx, word [edx]
lea edx, [edx + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x462720
cmp word [esi], cx
je 0x462773
mov ecx, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x462740
sub ecx, edx
sar ecx, 1
cmp word [esi + ecx*2 - 2], 0x5c
je 0x462773
lea edi, [esi - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x462760
mov eax, dword [0x4dd90c]
mov dword [edi], eax
lea ecx, [esi - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x462776
mov eax, dword [str.stdrt.txt]
mov dword [ecx], eax
mov eax, dword [0x4ddc54]
mov dword [ecx + 4], eax
mov eax, dword [0x4ddc58]
mov dword [ecx + 8], eax
mov eax, dword [0x4ddc5c]
mov dword [ecx + 0xc], eax
mov eax, dword [0x4ddc60]
push 0
mov dword [ecx + 0x10], eax
mov ecx, 0x4f1938
push esi
push dword [0x4f1620]
call fcn.004747c0
push esi
call fcn.0048ff50
add esp, 4
cmp dword [0x4f17e0], 0
je 0x4628e1
push str.mmfs2.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov edi, eax
mov dword [ebp - 0x11c], edi
test edi, edi
je 0x4628e1
mov ecx, dword [0x4f17e0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4627f6
sub ecx, edx
sar ecx, 1
push 2
lea eax, [ecx + 0xb]
push eax
call fcn.0048ff3a
mov edx, dword [0x4f17e0]
add esp, 8
mov esi, eax
sub eax, edx
nop dword [eax]
movzx ecx, word [edx]
lea edx, [edx + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x462820
cmp word [esi], cx
je 0x462879
mov ecx, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x462840
sub ecx, edx
sar ecx, 1
cmp word [esi + ecx*2 - 2], 0x5c
je 0x462879
lea edi, [esi - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x462860
mov eax, dword [0x4dd90c]
mov dword [edi], eax
mov edi, dword [ebp - 0x11c]
lea edx, [esi - 2]
nop dword [eax]
mov ax, word [edx + 2]
lea edx, [edx + 2]
test ax, ax
jne 0x462880
mov eax, dword [str.mmfs2.txt]
mov ecx, 0x4f1938
mov dword [edx], eax
mov eax, dword [0x4ddc7c]
mov dword [edx + 4], eax
mov eax, dword [0x4ddc80]
mov dword [edx + 8], eax
mov eax, dword [0x4ddc84]
push 0
mov dword [edx + 0xc], eax
mov eax, dword [0x4ddc88]
push esi
push edi
mov dword [edx + 0x10], eax
call fcn.004747c0
push esi
call fcn.0048ff50
jmp 0x4628de
push dword [0x4f17e0]
call fcn.0048ff50
mov dword [0x4f17e0], 0
add esp, 4
xor esi, esi
cmp dword [0x4efb64], esi
jne 0x4628f9
mov esi, dword [0x4f17c0]
test esi, esi
je 0x4629ab
call fcn.0044ae60
test eax, eax
jne 0x46298f
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAddAtomW]
cmp dword [0x4f1824], eax
jne 0x462941
push str.krdp
call edi
movzx eax, ax
push str.kprc
mov dword [0x4f1824], eax
call edi
movzx eax, ax
push str.kspc
mov dword [0x4f1820], eax
call edi
movzx eax, ax
mov dword [0x4f182c], eax
push str.knum
call edi
movzx eax, ax
mov dword [0x4f1828], eax
call fcn.00428630
test eax, eax
je 0x4629ab
push 0
push dword [0x4f1620]
call dword [sym.imp.MMFS2.dll_Ordinal_2]
mov ecx, eax
mov dword [0x4f17b8], ecx
cmp ecx, 0x20
ja 0x4629c4
xor eax, eax
mov dword [0x4f17b8], 0
cmp ecx, 1
setne al
lea eax, [eax*8 + 0xf]
test eax, eax
jle 0x4629ab
test byte [0x4f17d2], 1
je 0x4629ab
push ecx
mov ecx, dword [0x4f1630]
mov edx, eax
call fcn.0044c4a0
add esp, 4
call fcn.0044c960
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
xor ecx, ebp
pop esi
call fcn.00485a4c
mov esp, ebp
pop ebp
ret 0x10
push 4
push 0x42000000
push 0
push 0
xor edx, edx
mov ecx, esi
call fcn.00403f40
mov edi, eax
add esp, 0x10
test edi, edi
je 0x4629ab
call dword [sym.imp.MMFS2.dll_Ordinal_794]
push 3
push dword [0x4f161c]
mov ecx, eax
mov dword [0x4f1648], eax
call dword [sym.imp.MMFS2.dll_Ordinal_1053]
mov esi, dword [0x4f161c]
call dword [sym.imp.MMFS2.dll_Ordinal_795]
push 3
push esi
mov ecx, eax
mov dword [0x4f164c], eax
call dword [sym.imp.MMFS2.dll_Ordinal_1054]
cmp dword [0x4f1650], 0
jne 0x462a49
mov ecx, dword [0x4f164c]
test ecx, ecx
je 0x462a49
push dword [0x4f1630]
call dword [sym.imp.MMFS2.dll_Ordinal_389]
mov dword [0x4f1650], eax
test eax, eax
je 0x462a49
mov edx, dword [eax]
mov ecx, eax
push 0
call dword [edx + 4]
mov ecx, edi
call fcn.004073d0
test eax, eax
je 0x462a68
xor edx, edx
mov ecx, edi
call fcn.00407690
test eax, eax
jne 0x462a54
mov ecx, edi
call fcn.004079e0
mov ecx, edi
call fcn.00406230
jmp 0x4629ab