Function at 0x4510ea
Capabilities:
Accept command line arguments
Get common file path
Get program files directory
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x47419b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x10dc
call fcn.00463310
mov eax, dword [0x4a0590]
xor eax, esp
mov dword [esp + 0x10d8], eax
push ebx
push esi
push edi
mov eax, dword [0x4a0590]
xor eax, esp
push eax
lea eax, [esp + 0x10f0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], eax
call fcn.0044c4ef
mov edi, eax
push 0xf5f3f3
mov dword [esp + 0x24], edi
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [esp + 0x28], eax
call fcn.004498de
mov ebx, eax
dec ebx
neg ebx
sbb bl, bl
inc bl
lea eax, [esp + 0x84]
mov byte [esp + 0x1f], bl
call fcn.0043bdc9
and dword [esp + 0x10f8], 0
lea eax, [esp + 0xc4]
call fcn.0043bdc9
lea eax, [esp + 0xa4]
push str.USERPROFILE
push eax
mov byte [esp + 0x1100], 1
call fcn.004441a6
push eax
call fcn.0043ba7c
mov byte [esp + 0x10f8], 2
cmp dword [esp + 0xbc], 8
mov eax, dword [esp + 0xa8]
jae 0x4511c8
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0xcc]
push eax
call fcn.00447e69
add esp, 0xc
cmp byte [edi + 0x48], 0
je 0x451218
lea eax, [edi + 8]
call fcn.0044aed0
cmp dword [esp + 0x9c], 8
mov ecx, dword [esp + 0x88]
jae 0x451207
lea ecx, [esp + 0x88]
push eax
mov eax, ecx
call fcn.00443fd5
mov byte [esp + 0x17], 1
test al, al
jne 0x45121d
mov byte [esp + 0x17], 0
test bl, bl
je 0x4512fc
cmp byte [esp + 0x17], 0
je 0x4512fc
lea eax, [edi + 8]
xor ebx, ebx
cmp dword [eax + 0x34], ebx
jbe 0x451250
cmp dword [eax + 0x14], ebx
jbe 0x451250
lea ecx, [eax + 0x20]
push ecx
call fcn.00446d2d
test al, al
je 0x4512fc
lea eax, [esp + 0x64]
push 0x477ee0
push eax
call fcn.004441a6
push eax
call fcn.0043ba7c
push 0x47ef90
push eax
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x1104], 3
call fcn.0040d386
add esp, 0xc
push 0x486de0
push eax
lea eax, [esp + 0x34]
push eax
mov byte [esp + 0x1104], 4
call fcn.0040d386
add esp, 0xc
mov byte [esp + 0x10f8], 5
cmp dword [eax + 0x18], 8
jb 0x4512ae
mov eax, dword [eax + 4]
jmp 0x4512b1
add eax, 4
lea ecx, [edi + 0x28]
push eax
push ecx
call fcn.004095cb
push ebx
push 1
lea esi, [esp + 0x34]
call fcn.004095f2
push 0
push 1
lea esi, [esp + 0x50]
call fcn.004095f2
lea eax, [esp + 0x64]
mov byte [esp + 0x10f8], 2
call fcn.0043b39a
mov esi, dword [esp + 0x24]
mov byte [edi + 0x1e8], 1
mov byte [edi + 0xb8], 1
mov byte [esp + 0x17], 0
mov ecx, dword [esi + 4]
fld dword [0x497130]
mov eax, dword [esp + 0x28]
mov ebx, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push ecx
fstp dword [esp]
push 0x416
push dword [esp + 0x24]
mov dword [esi + 0x2c], eax
mov dword [ecx + 0x10], eax
call ebx
mov edi, eax
call fcn.0040a75a
fld dword [0x497134]
pop ecx
pop ecx
push 0
push ecx
fstp dword [esp]
push 0x3ef
push dword [esp + 0x24]
call ebx
mov edi, eax
call fcn.0040a75a
pop ecx
pop ecx
push 1
mov edi, 0x582c2c
push edi
push 0x41c
push dword [esp + 0x24]
call ebx
mov esi, eax
call fcn.0040a9aa
pop ecx
pop ecx
push 1
push edi
push 0x41d
push dword [esp + 0x24]
call ebx
mov esi, eax
call fcn.0040a9aa
mov eax, dword [esp + 0x28]
or dword [0x4a1860], 0xffffffff
or dword [0x4a1864], 0xffffffff
pop ecx
pop ecx
add eax, 8
mov dword [0x4a185c], 0x3ef
call fcn.0044aed0
cmp dword [eax + 0x18], 8
jb 0x4513b1
mov eax, dword [eax + 4]
jmp 0x4513b4
add eax, 4
push eax
push 0x419
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
xor eax, eax
push 0x7fe
mov word [esp + 0xe8], ax
xor esi, esi
lea eax, [esp + 0xea]
push esi
push eax
call fcn.0045f360
add esp, 0xc
push esi
push 0x26
lea eax, [esp + 0xec]
push eax
push esi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov esi, dword [sym.imp.USER32.dll_CheckDlgButton]
test eax, eax
je 0x4514a0
lea edi, [esp + 0xe4]
call fcn.00447b6c
xor ecx, ecx
test al, al
setne cl
mov byte [esp + 0x1e], al
push ecx
push 0x443
push dword [esp + 0x20]
call esi
mov eax, dword [esp + 0x24]
push 0x47ef90
mov dword [eax + 0x4c], 1
mov edi, 0x400
lea eax, [esp + 0xe8]
push edi
push eax
call fcn.00455d80
add esp, 0xc
push 0x486de0
lea eax, [esp + 0xe8]
push edi
push eax
call fcn.00455d80
add esp, 0xc
lea eax, [esp + 0xe4]
push eax
push 0x443
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [esp + 0x1e], 0
je 0x4514a5
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x48], 0
jne 0x4514a5
lea ecx, [esp + 0xe4]
push ecx
add eax, 0x28
push eax
call fcn.004095cb
jmp 0x4514a5
mov edi, 0x400
xor eax, eax
push 0x7fe
push eax
mov word [esp + 0x8ec], ax
lea eax, [esp + 0x8ee]
push eax
call fcn.0045f360
add esp, 0xc
push 0
push 0x1c
lea eax, [esp + 0x8ec]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x451592
push 0x443
push dword [esp + 0x1c]
mov byte [esp + 0x26], 0
call dword [sym.imp.USER32.dll_IsDlgButtonChecked]
cmp eax, 1
je 0x45152d
lea edi, [esp + 0x8e4]
call fcn.00447b6c
xor ecx, ecx
test al, al
setne cl
mov byte [esp + 0x1e], al
push ecx
push 0x444
push dword [esp + 0x20]
call esi
mov eax, dword [esp + 0x24]
mov dword [eax + 0x4c], 2
mov edi, 0x400
push 0x47ef90
lea eax, [esp + 0x8e8]
push edi
push eax
call fcn.00455d80
add esp, 0xc
push 0x486de0
lea eax, [esp + 0x8e8]
push edi
push eax
call fcn.00455d80
add esp, 0xc
lea eax, [esp + 0x8e4]
push eax
push 0x444
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [esp + 0x1e], 0
je 0x451592
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x48], 0
jne 0x451592
lea ecx, [esp + 0x8e4]
push ecx
add eax, 0x28
push eax
call fcn.004095cb
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x48], 0
mov edi, dword [sym.imp.USER32.dll_EnableWindow]
je 0x45161f
add eax, 8
call fcn.0044aed0
cmp dword [eax + 0x18], 8
jb 0x4515b5
mov eax, dword [eax + 4]
jmp 0x4515b8
add eax, 4
push eax
push 0x445
push dword [esp + 0x20]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0
push 0x443
push dword [esp + 0x20]
call esi
push 0
push 0x444
push dword [esp + 0x20]
call esi
push 1
push 0x445
push dword [esp + 0x20]
call esi
push 0
push 0x443
push dword [esp + 0x20]
call ebx
push eax
call edi
push 0
push 0x444
push dword [esp + 0x20]
call ebx
push eax
call edi
push 0
push 0x445
push dword [esp + 0x20]
call ebx
push eax
call edi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
cmp byte [esp + 0x17], 0
mov al, byte [esp + 0x1f]
mov byte [esp + 0x28], al
mov byte [esp + 0x24], al
je 0x451642
mov byte [esp + 0x28], 0
mov byte [esp + 0x24], 0
xor eax, eax
cmp byte [esp + 0x28], al
setne al
push eax
push 0x426
push dword [esp + 0x20]
call esi
xor eax, eax
cmp byte [esp + 0x24], al
setne al
push eax
push 0x427
push dword [esp + 0x20]
call esi
push 1
push 0x428
push dword [esp + 0x20]
call esi
cmp byte [esp + 0x17], 0
je 0x4516a0
push 0
push 0x426
push dword [esp + 0x20]
call ebx
push eax
call edi
push 0
push 0x427
push dword [esp + 0x20]
call ebx
push eax
call edi
cmp byte [esp + 0x1f], 0
je 0x4516b7
push 0
push 0x444
push dword [esp + 0x20]
call ebx
push eax
call edi
mov esi, dword [esp + 0x20]
push dword [esp + 0x24]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push dword [esp + 0x28]
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 8]
fld dword [str.fff_]
push 1
push ecx
fstp dword [esp]
mov esi, 0x446
push esi
push dword [esp + 0x24]
call ebx
mov edi, eax
call fcn.0040a75a
pop ecx
pop ecx
push 0xff
push str._Hyperlink_Color_
push esi
push dword [esp + 0x24]
call ebx
mov esi, dword [sym.imp.USER32.dll_SetPropW]
push eax
call esi
fld dword [str.fff_]
push 1
push ecx
fstp dword [esp]
push 0x44a
push dword [esp + 0x24]
call ebx
mov edi, eax
call fcn.0040a75a
pop ecx
pop ecx
push 0xff
push str._Hyperlink_Color_
push 0x44a
push dword [esp + 0x24]
call ebx
push eax
call esi
fld dword [str.fff_]
push 1
push ecx
fstp dword [esp]
push 0x44c
push dword [esp + 0x24]
call ebx
mov edi, eax
call fcn.0040a75a
pop ecx
pop ecx
push 0xff
push str._Hyperlink_Color_
push 0x44c
push dword [esp + 0x24]
call ebx
push eax
call esi
fld dword [str.fff_]
push 1
push ecx
fstp dword [esp]
push 0x447
push dword [esp + 0x24]
call ebx
mov edi, eax
call fcn.0040a75a
pop ecx
pop ecx
push 0xff
push str._Hyperlink_Color_
mov edi, 0x447
push edi
push dword [esp + 0x24]
call ebx
push eax
call esi
cmp byte [esp + 0x1f], 0
jne 0x4517eb
mov eax, dword [esp + 0x20]
add eax, 8
cmp dword [eax + 0x34], 0
jbe 0x4517eb
cmp dword [eax + 0x14], 0
jbe 0x4517eb
lea ecx, [eax + 0x20]
push ecx
call fcn.00446d2d
test al, al
jne 0x4517eb
mov byte [esp + 0x1e], 1
jmp 0x451829
cmp byte [esp + 0x1f], 0
mov byte [esp + 0x1e], 0
je 0x451829
mov eax, dword [esp + 0x20]
add eax, 8
cmp dword [eax + 0x34], 0
jbe 0x451829
cmp dword [eax + 0x14], 0
jbe 0x451829
lea ecx, [eax + 0x20]
push ecx
call fcn.00446d2d
test al, al
jne 0x451829
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x1e8], 0
mov byte [esp + 0x17], 1
je 0x45182e
mov byte [esp + 0x17], 0
cmp byte [esp + 0x1f], 0
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
jne 0x451849
cmp byte [esp + 0x1e], 0
jne 0x451849
cmp byte [esp + 0x17], 0
je 0x451860
push 0
push 0x446
push dword [esp + 0x20]
call ebx
push eax
call esi
cmp byte [esp + 0x17], 0
jne 0x451870
push 0
push 0x44c
push dword [esp + 0x20]
call ebx
push eax
call esi
cmp byte [esp + 0x1e], 0
jne 0x451887
push 0
push 0x44a
push dword [esp + 0x20]
call ebx
push eax
call esi
push 0
push edi
push dword [esp + 0x20]
call ebx
push eax
call esi
push 0x3ef
push dword [esp + 0x1c]
call ebx
push eax
call dword [sym.imp.USER32.dll_SetFocus]
lea eax, [esp + 0xa4]
call fcn.0043b39a
lea eax, [esp + 0xc4]
call fcn.0043b39a
lea eax, [esp + 0x84]
call fcn.0043b39a
mov ecx, dword [esp + 0x10f0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10d8]
xor ecx, esp
call fcn.00453655
mov esp, ebp
pop ebp
ret 4