Function at 0x408374
Capabilities:
Check mutex on windows
Copy file
Create process on windows
Delete directory
Delete file
Log keystrokes via polling
Resolve function by parsing pe exports
Self delete

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4678c1
mov eax, dword fs:[0]
push eax
sub esp, 0x78
push ebx
push esi
push edi
mov eax, dword [0x480070]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov ebx, ecx
mov esi, dword [ebp + 8]
push dword [ebp + 0xc]
lea eax, [esp + 0x14]
push eax
call fcn.00404808
xor edi, edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x1c], 1
push 0xfffffffffffffffe
pop eax
cmp dword [esi + 0x528], edi
je 0x4083f3
or dword [esp + 0x20], 0xffffffff
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x14]
lea eax, [esi + 0x52c]
push eax
mov dword [esp + 0x28], edi
call fcn.0043cf1f
mov eax, dword [esp + 0x20]
add eax, 2
cmp eax, 0x45
ja case.default.0x4083ff
jmp dword [eax*4 + 0x409f74]
cmp dword [esi + 0x528], edi
jne 0x408e5a
mov esi, dword [ebp + 8]
push str.StartInstall_v
add esi, 0x52c
xor edi, edi
call fcn.004179db
mov esi, dword [ebp + 8]
xor edi, edi
xor eax, eax
inc edi
cmp dword [esi + 0x528], eax
jne 0x408ef0
mov esi, dword [ebp + 8]
push str.DoExit_v
add esi, 0x52c
call fcn.004179db
mov esi, dword [ebp + 8]
xor eax, eax
cmp dword [esi + 0x528], eax
jne 0x408f0d
mov esi, dword [ebp + 8]
push str.DoExit_i
push 2
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x408f29
mov esi, dword [ebp + 8]
push str.DoSelectFolder_ss
push 3
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40906f
mov esi, dword [ebp + 8]
push str.SetInstallPath_s
push 4
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4090d1
mov esi, dword [ebp + 8]
push str.GetInstallPath_v
push 5
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409122
mov esi, dword [ebp + 8]
push str.RemoveEndBS_s
push 6
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40913e
mov esi, dword [ebp + 8]
push str.SetName_s
push 7
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40916b
mov esi, dword [ebp + 8]
push str.GetAppVersion_v
push 8
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409194
mov esi, dword [ebp + 8]
push str.GetBetaVersion_v
push 9
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4091ab
mov esi, dword [ebp + 8]
push str.GetTargetMachine_v
push 0xa
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4091b3
mov esi, dword [ebp + 8]
push str.DigPath_s
push 0xb
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4091de
mov esi, dword [ebp + 8]
push str.LoadRTF_is
push 0xc
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409230
mov esi, dword [ebp + 8]
push str.SetLanguage_s
push 0xd
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409260
mov esi, dword [ebp + 8]
push str.SetTitle_s
push 0xe
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4092a0
mov esi, dword [ebp + 8]
push str.GetLanguageAsLocal_v
push 0xf
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4092b9
mov esi, dword [ebp + 8]
push str.GetLanguage_v
push 0x10
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409302
mov esi, dword [ebp + 8]
push str.Is64BitOS_v
push 0x11
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409331
mov esi, dword [ebp + 8]
push str.GetPlatform_v
push 0x12
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40938a
mov esi, dword [ebp + 8]
push str.LANG_s
push 0x13
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4093ce
mov esi, dword [ebp + 8]
push str.GetRegStr_s
push 0x14
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409444
mov esi, dword [ebp + 8]
push str.GetRegStr64_s
push 0x15
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4094b2
mov esi, dword [ebp + 8]
push str.GetRegInt_s
push 0x16
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4094fa
mov esi, dword [ebp + 8]
push str.GetRegInt64_s
push 0x17
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409514
mov esi, dword [ebp + 8]
push str.SetRegStr_ss
push 0x18
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4095a2
mov esi, dword [ebp + 8]
push str.SetRegStr64_ss
push 0x19
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409617
mov esi, dword [ebp + 8]
push str.SetRegInt_si
push 0x1a
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40965a
mov esi, dword [ebp + 8]
push str.SetRegInt64_si
push 0x1b
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409677
mov esi, dword [ebp + 8]
push str.MessageBox_s
push 0x1c
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4096ae
mov esi, dword [ebp + 8]
push str.MessageBox_i
push 0x1d
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409708
mov esi, dword [ebp + 8]
push str.MessageBox_si
push 0x1e
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409752
mov esi, dword [ebp + 8]
push str.CreateShortcut_ssss
push 0x1f
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4097ba
mov esi, dword [ebp + 8]
push str.ExecWait_ss
push 0x20
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4097ba
mov esi, dword [ebp + 8]
push str.Sleep_i
push 0x21
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4097e6
mov esi, dword [ebp + 8]
push str.TouchURL_ss
push 0x22
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409814
mov esi, dword [ebp + 8]
push str.ShellExecute_s
push 0x23
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40986d
mov esi, dword [ebp + 8]
push str.RunNonElevated_ss
push 0x24
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x40990e
mov esi, dword [ebp + 8]
push str.GetPackingDate_s
push 0x25
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409950
mov esi, dword [ebp + 8]
push str.GetIniStr_sss
push 0x26
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4099a6
mov esi, dword [ebp + 8]
push str.CloseApp_ss
push 0x27
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4099e0
mov esi, dword [ebp + 8]
push str.CloseApp_s
push 0x28
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x4099f8
mov esi, dword [ebp + 8]
push str.WaitAppExit_si
push 0x29
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409a33
mov esi, dword [ebp + 8]
push str.DeleteFile_s
push 0x2a
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409b13
mov esi, dword [ebp + 8]
push 0x46ddbc
push 0x2b
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409b3a
mov esi, dword [ebp + 8]
push str.RemoveDirectory_s
push 0x2c
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409b6d
mov esi, dword [ebp + 8]
push str.DeleteFolderRec_s
push 0x2d
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409b97
mov esi, dword [ebp + 8]
push str.RegDeleteKey_s
push 0x2e
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409bbd
mov esi, dword [ebp + 8]
push str.RegDeleteKey64_s
push 0x2f
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409bc4
mov esi, dword [ebp + 8]
push str.GetAccountType_v
push 0x30
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409bce
mov esi, dword [ebp + 8]
push str.IsXPOrLess_v
push 0x31
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409bec
mov esi, dword [ebp + 8]
push str.IsVistaOrLess_v
push 0x32
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409bf8
mov esi, dword [ebp + 8]
push str.GetTime_v
push 0x33
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409c08
mov esi, dword [ebp + 8]
push str.HideWindow_v
push 0x34
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409c18
mov esi, dword [ebp + 8]
push str.GetCommandLine_v
push 0x35
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409c35
mov esi, dword [ebp + 8]
push str.GetCommandLine_i
push 0x36
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409c7d
mov esi, dword [ebp + 8]
push str.IsFile_s
push 0x37
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409cad
mov esi, dword [ebp + 8]
push str.CheckVersionAsync_ssssss
push 0x38
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409d6d
mov esi, dword [ebp + 8]
push str.FindWindow_s
push 0x39
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409d8e
mov esi, dword [ebp + 8]
push str.FindProcess_s
push 0x3a
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409dab
mov esi, dword [ebp + 8]
push str.CopyFile_ss
push 0x3b
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409e11
mov esi, dword [ebp + 8]
push str.ShowMainWindow_i
push 0x3c
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409e29
mov esi, dword [ebp + 8]
push str.SetFocusByID_i
push 0x3d
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409e56
mov esi, dword [ebp + 8]
push str.GetControlText_i
push 0x3e
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409e9c
mov esi, dword [ebp + 8]
push str.SetControlEnable_ii
push 0x3f
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409ec7
mov esi, dword [ebp + 8]
push str.IsValidEmail_s
push 0x40
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409edf
mov esi, dword [ebp + 8]
push str.IsValidBandizipEntProductKey_s
push 0x41
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409ef7
mov esi, dword [ebp + 8]
push str.IsShiftPressing_v
push 0x42
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
cmp dword [esi + 0x528], 0
jne 0x409f29
mov esi, dword [ebp + 8]
push str.MutexExist_s
push 0x43
add esi, 0x52c
pop edi
call fcn.004179db
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [esi + 0x528], 1
cmp dword [esp + 0x1c], edi
jne 0x4083c6
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.004017a1
xor eax, eax
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi + 0x4a8]
cmp dword [eax - 0xc], edi
jne 0x408e7b
push edi
push 0x46bf74
push str.call_SetName___first
push dword [esi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x408e34
mov eax, dword [esi + 0x4b4]
cmp dword [eax - 0xc], edi
jne 0x408eac
push edi
push 0x46bf74
push str.call_SetInstallPath___first
push dword [esi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
xor esi, esi
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
call fcn.004017a1
mov eax, esi
jmp 0x408e42
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x30], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
call fcn.00401dfa
pop ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
mov dword [ecx + 8], eax
test eax, eax
je 0x408eeb
push 0
push 0x800a
push 0x111
push dword [esi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
xor esi, esi
inc esi
jmp 0x408e9c
mov dword [esi + 0x46c], edi
mov dword [esi + 0x468], eax
push eax
push eax
push 0x10
push dword [esi + 4]
call dword [sym.imp.USER32.dll_PostMessageW]
mov esi, edi
jmp 0x408e9c
xor edi, edi
inc edi
mov dword [esi + 0x46c], edi
mov dword [esi + 0x468], eax
mov ecx, dword [ebx]
mov ecx, dword [ecx + 8]
mov dword [esi + 0x480], ecx
jmp 0x408efc
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 1
push dword [ebx + 4]
lea esi, [esp + 0x24]
call fcn.0043d329
mov byte [esp + 0x90], 2
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x14]
push ebx
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
call fcn.00401d30
mov byte [esp + 0x98], 3
mov eax, dword [esp + 0x1c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
call fcn.00401e8e
pop ecx
test eax, eax
je 0x40902a
push ecx
mov eax, esp
mov dword [esp + 0x2c], esp
push 0x46bab4
push eax
call fcn.00404808
mov eax, dword [ebp + 8]
mov byte [esp + 0x94], 4
mov eax, dword [eax + 0x4a8]
push ecx
sub eax, 0x10
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
mov byte [esp + 0x98], 5
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0xa0], 3
call fcn.00401b33
add esp, 0x10
lea edi, [esp + 0x14]
mov byte [esp + 0x90], 6
call fcn.0040144e
mov byte [esp + 0x90], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
call fcn.004017a1
mov eax, dword [esp + 0x14]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.004015c5
mov edi, dword [ebp + 0x10]
add eax, 0x10
mov dword [esi], eax
call fcn.0043d413
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004017a1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.004017a1
lea eax, [ebx - 0x10]
call fcn.004017a1
jmp 0x408eeb
push dword [ebx]
lea esi, [esp + 0x40]
call fcn.0043d329
mov edi, dword [ebp + 8]
add edi, 0x4b4
mov byte [esp + 0x90], 7
call fcn.0040144e
mov byte [esp + 0x90], 0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
call fcn.004017a1
mov eax, dword [edi]
push ecx
sub eax, 0x10
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
call fcn.00401dfa
pop ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
mov dword [ecx + 8], eax
jmp 0x408eeb
mov esi, dword [esi + 0x4b4]
sub esi, 0x10
mov eax, esi
call fcn.004015c5
add eax, 0x10
mov dword [esp + 0x20], eax
lea edi, [esp + 0x20]
mov byte [esp + 0x90], 8
call fcn.0040241d
mov esi, dword [esp + 0x20]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov edi, esp
mov dword [esp + 0x30], esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp + 0x10]
call fcn.0043d413
mov eax, esi
jmp 0x409065
push dword [ebx]
lea esi, [esp + 0x24]
call fcn.0043d329
mov ecx, esi
mov byte [esp + 0x90], 9
call fcn.004024c5
jmp 0x4090f9
push dword [ebx]
lea esi, [esp + 0x44]
call fcn.0043d329
mov edi, dword [ebp + 8]
add edi, 0x4a8
mov byte [esp + 0x90], 0xa
call fcn.0040144e
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
jmp 0x409065
mov esi, dword [esi + 0x4c8]
sub esi, 0x10
push ecx
mov eax, esi
mov dword [esp + 0x30], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp + 0x10]
call fcn.0043d413
jmp 0x408eeb
mov esi, dword [esi + 0x4cc]
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
mov dword [eax + 8], esi
jmp 0x408eeb
mov esi, dword [esi + 0x4d4]
jmp 0x409171
push dword [ebx]
lea esi, [esp + 0x24]
call fcn.0043d329
push ecx
mov byte [esp + 0x94], 0xb
mov edi, esp
mov dword [esp + 0x30], esp
call fcn.004026aa
call fcn.00401a64
pop ecx
mov eax, dword [esp + 0x20]
jmp 0x409163
mov eax, dword [ebx]
mov eax, dword [eax + 8]
push dword [ebx + 4]
lea esi, [esp + 0x24]
mov dword [esp + 0x30], eax
call fcn.0043d329
push ecx
mov byte [esp + 0x94], 0xc
mov edi, esp
mov dword [esp + 0x2c], esp
call fcn.004026aa
push dword [esp + 0x30]
push dword [ebp + 8]
call fcn.0040a08c
mov esi, dword [esp + 0x20]
test eax, eax
jne 0x409228
push esi
push str.LoadRTF__s__FALSE
call fcn.004017ca
pop ecx
pop ecx
lea eax, [esi - 0x10]
jmp 0x409065
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
mov edi, dword [ebp + 8]
lea esi, [edi + 0x588]
call fcn.0040c799
push 0
push 0x801a
push 0x111
push dword [edi + 4]
jmp 0x408ee5
push dword [ebx]
lea esi, [esp + 0x48]
call fcn.0043d329
mov edi, dword [ebp + 8]
add edi, 0x4b0
mov byte [esp + 0x90], 0xd
call fcn.0040144e
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
call fcn.004017a1
push dword [edi]
mov eax, dword [ebp + 8]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
jmp 0x408eeb
mov eax, dword [ebp + 8]
push ecx
add eax, 0x588
mov esi, esp
mov dword [esp + 0x30], esp
call fcn.0040c8a6
jmp 0x409187
lea ecx, [esi + 0x588]
lea edx, [esp + 0x1c]
call fcn.0040c86c
lea eax, [esp + 0x1c]
mov byte [esp + 0x90], 0xe
call fcn.00403fcc
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x30], esp
mov esi, esp
call fcn.004015c5
mov edi, dword [ebp + 0x10]
add eax, 0x10
mov dword [esi], eax
call fcn.0043d413
mov eax, dword [esp + 0x1c]
jmp 0x409163
call fcn.004022d3
add esi, 0x4dc
push esi
mov ecx, 0x46da8c
mov edi, eax
call fcn.0040148f
test eax, eax
jne 0x409320
xor edi, edi
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
mov dword [eax + 8], edi
jmp 0x408eeb
add esi, 0x4dc
push esi
mov ecx, 0x46da8c
call fcn.0040148f
test eax, eax
jne 0x409354
push ecx
mov eax, esp
mov dword [esp + 0x30], esp
push 0x46bc0c
jmp 0x40936f
push esi
mov ecx, str._arm
call fcn.0040148f
test eax, eax
jne 0x40937a
push ecx
mov eax, esp
mov dword [esp + 0x30], esp
push str.ARM64
push eax
call fcn.00404808
jmp 0x409187
call fcn.00402326
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
push ecx
jmp 0x409370
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0xf
mov esi, dword [esp + 0x2c]
push str.INSTALLER
push esi
call fcn.00433794
mov ecx, eax
call fcn.00433ecd
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
push ecx
call fcn.00404808
mov edi, dword [ebp + 0x10]
call fcn.0043d413
jmp 0x409228
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x10
mov esi, dword [esp + 0x2c]
push ecx
add esi, 0xfffffff0
mov eax, esi
xor ebx, ebx
mov dword [esp + 0x2c], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
lea eax, [esp + 0x28]
push eax
mov ecx, ebx
call fcn.0040ee04
mov byte [esp + 0x98], 0x11
mov eax, dword [esp + 0x2c]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp + 0x10]
call fcn.0043d413
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
call fcn.004017a1
jmp 0x40911b
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x12
mov esi, dword [esp + 0x2c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov ebx, 0x100
mov dword [esp + 0x28], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
lea eax, [esp + 0x2c]
push eax
mov ecx, ebx
call fcn.0040ee04
mov byte [esp + 0x98], 0x13
mov eax, dword [esp + 0x30]
add esp, 4
add eax, 0xfffffff0
mov dword [esp + 0x28], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov edi, dword [ebp + 0x10]
call fcn.0043d413
mov eax, dword [esp + 0x28]
jmp 0x409437
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x14
xor ebx, ebx
mov esi, dword [esp + 0x2c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x2c], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov ecx, ebx
mov dword [edi], eax
call fcn.0040ef09
pop ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
mov dword [ecx + 8], eax
jmp 0x40911b
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x15
mov ebx, 0x100
jmp 0x4094c7
push dword [ebx]
lea esi, [esp + 0x2c]
call fcn.0043d329
mov byte [esp + 0x90], 0x16
push dword [ebx + 4]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x17
mov esi, dword [esp + 0x2c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x28], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x94], 0x18
mov edi, dword [esp + 0x2c]
push ecx
add edi, 0xfffffff0
mov eax, edi
mov dword [esp + 0x28], esp
mov ebx, esp
call fcn.004015c5
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x98], 0x17
xor ecx, ecx
call fcn.0040eff5
pop ecx
pop ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
mov dword [ecx + 8], eax
mov eax, esi
call fcn.004017a1
mov eax, edi
jmp 0x409065
push dword [ebx]
lea esi, [esp + 0x2c]
call fcn.0043d329
mov byte [esp + 0x90], 0x19
push dword [ebx + 4]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x1a
mov esi, dword [esp + 0x2c]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x28], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x94], 0x1b
mov edi, dword [esp + 0x2c]
push ecx
add edi, 0xfffffff0
mov eax, edi
mov dword [esp + 0x28], esp
mov ebx, esp
call fcn.004015c5
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x98], 0x1a
mov ecx, 0x100
jmp 0x409581
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x1c
mov eax, dword [ebx + 4]
xor ebx, ebx
mov eax, dword [eax + 8]
mov esi, dword [esp + 0x2c]
push eax
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x30], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov ecx, ebx
mov dword [edi], eax
call fcn.0040f10d
pop ecx
jmp 0x4094e8
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x1d
mov eax, dword [ebx + 4]
mov ebx, 0x100
jmp 0x40962f
cmp dword [esi + 0x474], 0
je 0x408eeb
push dword [ebx]
lea esi, [esp + 0x4c]
call fcn.0043d329
mov ecx, dword [ebp + 8]
push 0
push dword [ecx + 0x4b0]
push dword [eax]
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 0x48]
jmp 0x409163
mov eax, dword [0x4831ec]
mov ecx, 0x4831ec
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x90], 0x1e
mov eax, dword [ebx]
push dword [eax + 8]
lea eax, [esp + 0x2c]
push 0x46e218
push eax
call fcn.00404441
mov edi, dword [esp + 0x34]
add esp, 0xc
cmp dword [esi + 0x474], 0
je 0x409700
push 0
push dword [esi + 0x4b0]
push edi
push dword [esi + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
lea eax, [edi - 0x10]
jmp 0x409065
xor edi, edi
inc edi
cmp dword [esi + 0x474], 0
je 0x409320
push dword [ebx]
lea esi, [esp + 0x50]
call fcn.0043d329
mov ecx, dword [ebp + 8]
mov esi, dword [ebx + 4]
push dword [esi + 8]
mov edx, dword [ecx + 0x4b0]
mov eax, dword [eax]
push edx
push eax
push dword [ecx + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edi, eax
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
call fcn.004017a1
jmp 0x409320
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx + 0xc]
call fcn.0043d329
push ecx
mov byte [esp + 0x98], 0x1f
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx + 8]
call fcn.0043d329
push ecx
mov byte [esp + 0x9c], 0x20
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx + 4]
call fcn.0043d329
push ecx
mov byte [esp + 0xa0], 0x21
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
mov byte [esp + 0xa0], 0
call fcn.00402710
add esp, 0x10
jmp 0x4090c0
push dword [esi + 4]
push dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
push ebx
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x3c], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
call fcn.00401369
add esp, 0x10
jmp 0x408eeb
push dword [ebx + 4]
lea esi, [esp + 0x54]
call fcn.0043d329
push dword [eax]
push str.TouchURL:__s
call fcn.004017ca
mov eax, dword [esp + 0x58]
pop ecx
pop ecx
add eax, 0xfffffff0
call fcn.004017a1
mov eax, dword [ebp + 8]
push dword [eax + 4]
jmp 0x4097bd
push dword [ebx]
lea esi, [esp + 0x58]
call fcn.0043d329
mov eax, dword [eax]
push 5
xor ecx, ecx
push ecx
push ecx
push eax
push str.open
push ecx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov esi, eax
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
call fcn.004017a1
cmp esi, 0x20
jle 0x408eeb
push dword [ebx]
lea esi, [esp + 0x5c]
call fcn.0043d329
push dword [eax]
push str.__rShellExecute__s_failed
call fcn.004017ca
mov eax, dword [esp + 0x60]
pop ecx
pop ecx
jmp 0x409163
push dword [ebx]
lea esi, [esp + 0x28]
call fcn.0043d329
mov byte [esp + 0x90], 0x22
push dword [ebx + 4]
lea esi, [esp + 0x2c]
call fcn.0043d329
mov byte [esp + 0x90], 0x23
mov esi, dword [esp + 0x28]
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x30], esp
mov edi, esp
call fcn.004015c5
add eax, 0x10
mov dword [edi], eax
mov byte [esp + 0x94], 0x24
mov edi, dword [esp + 0x28]
push ecx
add edi, 0xfffffff0
mov eax, edi
mov dword [esp + 0x28], esp
mov ebx, esp
call fcn.004015c5
push dword [ebp + 8]
add eax, 0x10
mov dword [ebx], eax
mov byte [esp + 0x9c], 0x23
call fcn.0040a5dd
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
mov dword [ecx + 8], eax
test eax, eax
jne 0x409594
push dword [esp + 0x28]
push dword [esp + 0x28]
push str.__rRunNonElevated__s___s_failed
call fcn.004017ca
add esp, 0xc
jmp 0x409594
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x25
mov esi, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x2c], esp
mov ebx, esp
push ecx
add esi, 0xfffffff0
mov eax, esi
mov dword [esp + 0x30], esp
mov edi, esp
call fcn.004015c5
mov ecx, dword [ebp + 8]
add eax, 0x10
push ebx
mov dword [edi], eax
call fcn.0040a22a
jmp 0x409113
push ecx
mov dword [esp + 0x30], esp
mov edi, esp
push ecx
mov esi, esp
mov dword [esp + 0x34], esp
push dword [ebx + 8]
call fcn.0043d329
push ecx
mov byte [esp + 0x9c], 0x26
mov esi, esp
mov dword [esp + 0x34], esp
push dword [ebx + 4]
call fcn.0043d329
push ecx
mov byte [esp + 0xa0], 0x27
mov esi, esp
mov dword [esp + 0x34], esp
push dword [ebx]
call fcn.0043d329
push edi
mov byte [esp + 0xa4], 0
call fcn.0040a2c6
jmp 0x409187
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx + 4]
call fcn.0043d329
push ecx
mov byte [esp + 0x98], 0x28
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
push dword [ebp + 8]
mov byte [esp + 0x9c], 0
call fcn.0040a374
jmp 0x4090c0
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
call fcn.0040a3fe
jmp 0x4090c0
push dword [ebx]
lea esi, [esp + 0x24]
call fcn.0043d329
mov eax, dword [ebx + 4]
mov esi, dword [eax + 8]
jmp 0x409a2a
push 0
push dword [esp + 0x24]
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x4091d8
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esi, 0x64
test esi, esi
jg 0x409a0b
jmp 0x4091d8
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
lea esi, [esp + 0x1c]
call fcn.004026cd
mov byte [esp + 0x94], 0x29
xor ecx, ecx
mov dword [esp], 0x46ddb4
call fcn.00403f82
test eax, eax
jge 0x409a8c
push 0x46ddb8
xor ecx, ecx
call fcn.00403f82
test eax, eax
jge 0x409a8c
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp + 0x10]
mov dword [ecx], 2
mov dword [ecx + 8], eax
jmp 0x409b0a
xor eax, eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0xa
push eax
mov byte [esp + 0x94], 0x2a
mov eax, dword [esp + 0x1c]
push ecx
add eax, 0xfffffff0
lea ebx, [esp + 0x74]
mov dword [esp + 0x34], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
call fcn.004033b7
mov esi, dword [esp + 0x74]
pop ecx
xor edi, edi
pop ecx
inc edi
jmp 0x409af1
mov eax, esi
push dword [eax + 8]
mov esi, dword [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
and edi, eax
test esi, esi
jne 0x409ae2
mov eax, dword [ebp + 0x10]
lea ecx, [esp + 0x6c]
mov dword [eax], 2
mov dword [eax + 8], edi
call fcn.00404454
mov eax, dword [esp + 0x18]
jmp 0x409163
push ecx
mov dword [esp + 0x30], esp
mov edi, esp
push ecx
mov esi, esp
mov dword [esp + 0x34], esp
push dword [ebx]
call fcn.0043d329
mov esi, edi
call fcn.004026cd
pop ecx
call fcn.0040a460
jmp 0x4090c0
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
lea esi, [esp + 0x60]
call fcn.004026cd
pop ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov esi, eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
call fcn.004017a1
jmp 0x40919a
push 1
push ecx
mov dword [esp + 0x34], esp
mov edi, esp
push ecx
mov esi, esp
mov dword [esp + 0x38], esp
push dword [ebx]
call fcn.0043d329
mov esi, edi
call fcn.004026cd
pop ecx
call fcn.00402e0f
pop ecx
jmp 0x4090bf
push 0
push ecx
mov dword [esp + 0x34], esp
mov edi, esp
push ecx
mov esi, esp
mov dword [esp + 0x38], esp
push dword [ebx]
call fcn.0043d329
mov esi, edi
call fcn.004026cd
pop ecx
call fcn.00402f89
jmp 0x409b91
push 0x100
jmp 0x409b99
call fcn.0040d4e9
jmp 0x40937f
call fcn.004031c6
xor ecx, ecx
cmp eax, 7
setl cl
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
mov dword [eax + 8], ecx
jmp 0x408eeb
call fcn.004031c6
xor ecx, ecx
cmp eax, 0xa
jmp 0x409bd8
push 0
call fcn.00447714
mov dword [esp + 0x34], edx
jmp 0x4090bf
push 0
push dword [esi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x408eeb
add esi, 0x4dc
push dword [esi]
push str.GetCommandLine____s
call fcn.004017ca
mov eax, dword [esi]
pop ecx
sub eax, 0x10
jmp 0x409177
mov eax, dword [ebx]
mov esi, dword [eax + 8]
mov eax, dword [0x4831ec]
mov ecx, 0x4831ec
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x90], 0x2b
test esi, esi
jl 0x409c74
cmp esi, dword [0x4832a8]
jge 0x409c74
mov eax, dword [0x4832b0]
push dword [eax + esi*4]
lea eax, [esp + 0x2c]
push eax
call fcn.004015a7
mov esi, dword [esp + 0x28]
jmp 0x4090fd
push dword [ebx]
lea esi, [esp + 0x64]
call fcn.0043d329
mov byte [esp + 0x90], 0x2c
push dword [eax]
call fcn.0041934a
pop ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x60]
mov dword [ecx], 2
jmp 0x409163
push dword [ebx + 0xc]
lea esi, [esp + 0x30]
call fcn.0043d329
mov byte [esp + 0x90], 0x2d
mov edi, dword [esp + 0x2c]
push edi
push str.CheckVersionAsync__s__
call fcn.004017ca
pop ecx
mov esi, esp
mov dword [esp + 0x2c], esp
push dword [ebx + 0x14]
call fcn.0043d329
push ecx
mov byte [esp + 0x98], 0x2e
mov esi, esp
mov dword [esp + 0x2c], esp
push dword [ebx + 0x10]
call fcn.0043d329
push ecx
add edi, 0xfffffff0
mov byte [esp + 0x9c], 0x2f
mov eax, edi
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.004015c5
add eax, 0x10
mov dword [esi], eax
push ecx
mov byte [esp + 0xa0], 0x30
mov esi, esp
mov dword [esp + 0x2c], esp
push dword [ebx + 8]
call fcn.0043d329
push ecx
mov byte [esp + 0xa4], 0x31
mov esi, esp
mov dword [esp + 0x2c], esp
push dword [ebx + 4]
call fcn.0043d329
push ecx
mov byte [esp + 0xa8], 0x32
mov esi, esp
mov dword [esp + 0x2c], esp
push dword [ebx]
call fcn.0043d329
mov ecx, dword [ebp + 8]
mov byte [esp + 0xa8], 0x2d
call fcn.0040a66e
jmp 0x40959b
push dword [ebx]
lea esi, [esp + 0x68]
call fcn.0043d329
mov eax, dword [eax]
push 0
push eax
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
mov eax, dword [esp + 0x64]
jmp 0x409b60
push dword [ebx]
lea esi, [esp + 0x6c]
call fcn.0043d329
mov edi, dword [eax]
call fcn.00403cdc
mov esi, eax
mov eax, dword [esp + 0x68]
jmp 0x409b60
push dword [ebx]
lea esi, [esp + 0x2c]
call fcn.0043d329
mov byte [esp + 0x90], 0x33
push dword [ebx + 4]
lea esi, [esp + 0x30]
call fcn.0043d329
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push 0
push esi
push edi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ebx, eax
push esi
push edi
test ebx, ebx
jne 0x409deb
push str.__rCopyFile__s___s_failed
jmp 0x409df0
push str.CopyFile__s___s__success
call fcn.004017ca
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
mov dword [eax + 8], ebx
add esp, 0xc
lea eax, [esi - 0x10]
call fcn.004017a1
jmp 0x409700
mov eax, dword [ebx]
mov eax, dword [eax + 8]
mov dword [esi + 0x474], eax
neg eax
sbb eax, eax
and eax, 5
push eax
jmp 0x409c0a
mov eax, dword [ebp + 8]
mov ecx, dword [ebx]
mov esi, dword [ecx + 8]
add eax, 0x28
push eax
mov dword [esp + 0x30], eax
call fcn.0041fbf8
test eax, eax
je 0x408eeb
mov edi, eax
mov eax, dword [esp + 0x2c]
call fcn.00420188
jmp 0x408eeb
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov esi, dword [eax + 8]
add ecx, 0x28
push ecx
lea edi, [esp + 0x30]
call fcn.004200f7
mov byte [esp + 0x90], 0x34
mov eax, dword [esp + 0x2c]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x2c], esp
mov esi, esp
call fcn.004015c5
mov edi, dword [ebp + 0x10]
add eax, 0x10
mov dword [esi], eax
call fcn.0043d413
mov eax, dword [esp + 0x2c]
jmp 0x409163
mov ecx, dword [ebp + 8]
mov eax, dword [ebx]
mov esi, dword [eax + 8]
add ecx, 0x28
push ecx
call fcn.0041fbf8
test eax, eax
je 0x408eeb
mov ecx, dword [ebx + 4]
push dword [ecx + 8]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x408eeb
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
call fcn.004036ad
jmp 0x4090bf
push ecx
mov esi, esp
mov dword [esp + 0x30], esp
push dword [ebx]
call fcn.0043d329
call fcn.00403707
jmp 0x4090bf
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0xa0
call esi
cwde
mov edi, 0x10000
test edi, eax
jne 0x409f21
push 0xa1
call esi
cwde
test edi, eax
jne 0x409f21
xor ecx, ecx
jmp 0x409bdb
xor ecx, ecx
inc ecx
jmp 0x409bdb
push dword [ebx]
lea esi, [esp + 0x30]
call fcn.0043d329
mov edi, dword [esp + 0x2c]
push edi
xor esi, esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov ebx, eax
cmp ebx, esi
je 0x409f57
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x409f57
inc esi
test ebx, ebx
je 0x409f62
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 0x10]
mov dword [eax], 2
mov dword [eax + 8], esi
jmp 0x409700