Function at 0x41a300
Capabilities:
Authenticate hmac
Check for time delay via gettickcount
Delete file
Encode data using base64
Enumerate files on windows
Get common file path
Get installed programs
Set current directory
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44e071
mov eax, dword fs:[0]
push eax
sub esp, 0xadc
mov eax, dword [0x4672b4]
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 dword [ebp - 0x10], esp
mov eax, dword [ebp + 8]
mov dword [ebp - 0xacc], eax
mov byte [ebp - 0xad1], 0
push 0x450450
call dword [sym.imp.KERNEL32.dll_SetDllDirectoryW]
push 0x104
lea eax, [ebp - 0x62c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
jne 0x41a37b
push eax
push eax
push 1
push 0xc0000142
call dword [sym.imp.KERNEL32.dll_RaiseException]
mov eax, 2
jmp 0x41ccc4
push str.SetDefaultDllDirectories
push 0x451294
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x41a933
call fcn.00424360
test eax, eax
jne 0x41a933
call fcn.00423cc0
test eax, eax
jne 0x41a933
push 0x800
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push str.user32.dll
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call esi
test eax, eax
setne byte [ebp - 0xac1]
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push str.gdi32.dll
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and al, byte [ebp - 0xac1]
mov byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push str.shlwapi.dll
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
mov esi, eax
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push str.advapi32.dll
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call eax
test eax, eax
setne dl
xor ecx, ecx
movzx eax, byte [ebp - 0xac1]
test esi, esi
cmovne ecx, eax
and dl, cl
mov byte [ebp - 0xac1], dl
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push 0x451664
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push 0x45167c
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push str.IMAGEHLP.dll
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push 0x4516ac
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push 0x4516c8
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push str.cabinet.dll
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
push 0x4516f8
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0x21c]
push eax
call esi
test eax, eax
setne al
and byte [ebp - 0xac1], al
je 0x41a371
mov dword [ebp - 0xad0], 0
mov dword [ebp - 0xac8], 0
lea eax, [ebp - 0xac8]
push eax
push str.IsWow64Process
push str.Kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call fcn.00423070
add esp, 0xc
mov esi, dword [ebp - 0xac8]
test esi, esi
je 0x41a82e
lea eax, [ebp - 0xad0]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
test eax, eax
je 0x41a82e
cmp dword [ebp - 0xad0], 0
setne byte [0x4a508c]
lea eax, [ebp - 0xa78]
push eax
push 0x10
push 0
call fcn.0041fd10
add esp, 0xc
test eax, eax
je 0x41a8a7
push 0x451430
lea eax, [ebp - 0xa78]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00421dd0
add esp, 0xc
test al, al
je 0x41a8a7
lea eax, [ebp - 0x21c]
push eax
call fcn.0041f6a0
add esp, 4
test eax, eax
je 0x41a8a7
push 0x45144c
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0xae0]
push eax
call fcn.00431515
add esp, 0xc
mov ecx, dword [0x4a5070]
test eax, eax
cmove ecx, dword [ebp - 0xae0]
mov dword [0x4a5070], ecx
push 0x104
lea eax, [ebp - 0x834]
push eax
mov esi, dword [ebp - 0xacc]
push esi
call edi
test eax, eax
je 0x41ccbf
mov dword [ebp - 4], 0
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov dword [ebp - 4], 0xffffffff
push 0x7d0
push 0x468908
push 0x42
push dword [0x469abc]
call dword [sym.imp.USER32.dll_LoadStringW]
mov ecx, 0x468908
mov eax, str.Japanese
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41aa5d
test dx, dx
je 0x41a92c
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41aa5d
add eax, 4
add ecx, 4
test dx, dx
jne 0x41a902
xor eax, eax
jmp 0x41aa62
push 0x104
lea eax, [ebp - 0x21c]
push eax
push 0
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
call edi
test eax, eax
je 0x41a3c3
push 0x5c
lea eax, [ebp - 0x21c]
push eax
call fcn.0042b285
add esp, 8
test eax, eax
je 0x41a3c3
mov edx, eax
lea ecx, [ebp - 0x21c]
sub edx, ecx
add edx, 2
sar edx, 1
mov ecx, 0x104
sub ecx, edx
push str..dll
push ecx
add eax, 2
push eax
call fcn.0042f9f7
push 0x250
push 0
lea eax, [ebp - 0xac0]
push eax
call fcn.0042a3f0
add esp, 0x18
lea eax, [ebp - 0xac0]
push eax
lea eax, [ebp - 0x21c]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
call edi
mov esi, eax
cmp esi, 0xffffffff
je 0x41a3bd
nop word [eax + eax]
lea eax, [ebp - 0x62c]
push eax
push 0x104
lea eax, [ebp - 0x424]
push eax
call fcn.0042f9f7
push 0x450454
push 0x104
lea eax, [ebp - 0x424]
push eax
call fcn.0042fd02
lea eax, [ebp - 0xa94]
push eax
push 0x104
lea eax, [ebp - 0x424]
push eax
call fcn.0042fd02
add esp, 0x24
lea eax, [ebp - 0xac0]
push eax
lea eax, [ebp - 0x424]
push eax
call edi
cmp eax, 0xffffffff
jne 0x41aa4c
lea eax, [ebp - 0xac0]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x41a9d0
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x41a3bd
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, 2
jmp 0x41ccc4
sbb eax, eax
or eax, 1
test eax, eax
sete byte [0x46a108]
push 0x434
push 0
push 0x469ab0
call fcn.0042a3f0
add esp, 0xc
mov dword [0x469abc], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.eptemp._u.___
push 0x469cda
call fcn.004012b0
add esp, 0xc
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
push eax
mov edi, dword [sym.imp.USER32.dll_SetCursor]
call edi
mov esi, eax
call fcn.00405d60
mov dword [0x469ee4], eax
push esi
call edi
cmp dword [0x469ee4], 0
jne 0x41ac28
mov dword [ebp - 0x83c], 0
mov dword [ebp - 0x838], 0
mov dword [ebp - 0x83c], 0
mov dword [ebp - 0x838], 7
xor eax, eax
mov word [ebp - 0x84c], ax
mov dword [ebp - 4], 2
mov dword [ebp - 0x83c], eax
mov word [ebp - 0x84c], ax
call fcn.00405d10
cmp eax, 6
jne 0x41ab2b
push 0x16
call fcn.00401780
add esp, 4
jmp 0x41ab30
call fcn.00405d20
push eax
lea ecx, [ebp - 0x84c]
call fcn.0040dfc0
mov dword [ebp - 0x860], 0
mov dword [ebp - 0x85c], 0
mov dword [ebp - 0x860], 0
mov dword [ebp - 0x85c], 7
xor eax, eax
mov word [ebp - 0x870], ax
mov byte [ebp - 4], 3
mov dword [ebp - 0x860], eax
mov word [ebp - 0x870], ax
mov byte [ebp - 4], 4
lea eax, [ebp - 0x834]
push eax
call fcn.0041fe90
add esp, 4
push eax
lea ecx, [ebp - 0x870]
call fcn.0040dfc0
push 0x15
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x870]
call fcn.0040e1f0
mov dword [ebp - 4], 3
cmp byte [0x469cd8], 0
jne 0x41abf7
lea ecx, [ebp - 0x870]
cmp dword [ebp - 0x85c], 8
cmovae ecx, dword [ebp - 0x870]
lea eax, [ebp - 0x84c]
cmp dword [ebp - 0x838], 8
cmovae eax, dword [ebp - 0x84c]
push 0x10
push ecx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x870]
call fcn.00403400
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84c]
call fcn.00403400
mov eax, 4
jmp 0x41ccc4
cmp word [0x46ab4c], 0
je 0x41ad70
lea eax, [ebp - 0xae0]
push eax
lea eax, [ebp - 0xad0]
push eax
lea eax, [ebp - 0xac8]
push eax
lea eax, [ebp - 0xacc]
push eax
push str._u_u_u_u
push 0x46ab4c
call fcn.0041a2d0
add esp, 0x18
cmp eax, 4
je 0x41aca8
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41ac9e
call fcn.00414730
push 0x1a
mov esi, eax
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 5
jmp 0x41ccc4
mov dword [ebp - 0x858], 0
mov dword [ebp - 0x854], 0
mov dword [ebp - 0x850], 0
mov ecx, dword [ebp - 0xacc]
mov eax, ecx
xor eax, dword [ebp - 0xae0]
mov dword [ebp - 0x84c], eax
mov eax, ecx
xor eax, dword [ebp - 0xad0]
dec eax
mov dword [ebp - 0x848], eax
xor ecx, dword [ebp - 0xac8]
sub ecx, 0x76c
mov dword [ebp - 0x844], ecx
mov dword [ebp - 0x838], 0xffffffff
lea eax, [ebp - 0x858]
push eax
call fcn.00437c30
mov esi, eax
mov edi, edx
lea eax, [ebp - 0xadc]
push eax
call fcn.00437cc2
add esp, 8
mov ecx, dword [ebp - 0xad8]
cmp ecx, edi
jl 0x41ad4b
mov eax, dword [ebp - 0xadc]
jg 0x41ad3a
cmp eax, esi
jbe 0x41ad4b
sub eax, esi
sbb ecx, edi
mov dword [ebp - 0x85c], ecx
cmp eax, 0xa8c00
jl 0x41ad70
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41ac9e
call fcn.00414730
push 0x2a
jmp 0x41ac85
test dword [0x4725a0], 0x2000000
je 0x41adc4
cmp byte [0x4a508c], 0
je 0x41adc4
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41adba
call fcn.00414730
mov esi, eax
push 0x26
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, 6
jmp 0x41ccc4
test dword [0x4725a0], 0x4000000
je 0x41ae4e
push 0x104
lea eax, [ebp - 0xa78]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0xac1]
push eax
lea eax, [ebp - 0xa78]
push eax
push 0
call fcn.00424a80
add esp, 0xc
test al, al
jne 0x41ae45
cmp byte [0x469cd8], al
jne 0x41ae2f
call fcn.00414730
mov esi, eax
push 0x3d
call fcn.00401780
add esp, 4
push 0x134
push esi
push eax
push 0
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
cmp eax, 6
je 0x41ae54
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, 7
jmp 0x41ccc4
cmp byte [ebp - 0xac1], 0
je 0x41ae2f
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
test dword [0x4725a0], 0x400000
je 0x41aeed
lea eax, [ebp - 0xac8]
push eax
push 0x20006
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
push 0x80000002
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
call esi
test eax, eax
je 0x41aee1
lea eax, [ebp - 0xac8]
push eax
push 0x20006
push 0
push str.System
push 0x80000002
call esi
test eax, eax
je 0x41aee1
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41aed7
call fcn.00414730
mov esi, eax
push 0x14
call fcn.00401780
add esp, 4
push 0x12040
push esi
push eax
push 0
call edi
mov eax, 8
jmp 0x41ccc4
push dword [ebp - 0xac8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test dword [0x4725a0], 0x80000
je 0x41af4a
call fcn.004228f0
test eax, eax
jne 0x41af4a
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41af33
call fcn.00414730
mov esi, eax
push 0x13
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
call edi
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.00424610
test eax, eax
jne 0x41afb3
call fcn.00423bb0
test eax, eax
jne 0x41afb3
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ecx, 0x46a174
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41af70
sub ecx, edx
sar ecx, 1
je 0x41af9c
cmp byte [0x469cd8], 0
jne 0x41af33
push 0x12010
call fcn.00414730
push eax
push 0x46a174
jmp 0x41af2f
cmp byte [0x469cd8], 0
jne 0x41af33
call fcn.00414730
mov esi, eax
push 0x26
jmp 0x41af20
cmp dword [0x46a144], 0xffffffff
je 0x41b640
mov byte [ebp - 0xac1], 0
lea eax, [ebp - 0xac1]
mov dword [ebp - 0xac8], eax
push str.WinXP
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 6
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x4244f0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 7
push 0x20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2003
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 8
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423aa0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 9
push 0x40
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.WinVista
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0xa
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], fcn.00424360
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0xb
push 0x80
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2008R1
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0xc
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], fcn.00423cc0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0xd
push 0x100
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2008R2
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0xe
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423d90
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0xf
push 0x1000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win7
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x10
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423340
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x11
push 0x200
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win8
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x12
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x4235b0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x13
push 0x800
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win8.1
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x14
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x4234e0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x15
push 0x2000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2012R1
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x16
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423f30
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x17
push 0x400
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2012R2
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x18
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x424000
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x19
push 0x4000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win10
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x1a
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x4230a0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x1b
push 0x10000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win10_11
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x1c
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423160
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x1d
push 0x8000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win11
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x1e
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423230
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x1f
push 0x20000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2016
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x20
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x4240d0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x21
push 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2019
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x22
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x4241a0
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x23
push 2
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Win2022
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x24
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x424290
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x25
push 4
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Newer_Client
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x26
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423680
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x27
push 0x10000000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
test al, al
jne 0x41b60c
push str.Newer_Server
sub esp, 0x28
mov dword [ebp - 0xad8], esp
mov eax, esp
mov dword [ebp - 0xacc], eax
mov dword [eax + 0x24], 0
mov dword [ebp - 4], 0x28
mov dword [eax], vtable.std::_Func_impl_no_alloc_int____cdecl___void___int___.0
mov dword [eax + 4], 0x423880
mov dword [eax + 0x24], eax
mov dword [ebp - 4], 0x29
push 0x20000000
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xac8]
call fcn.0040e0f0
cmp byte [ebp - 0xac1], 0
jne 0x41b640
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov ecx, 0x46a174
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41b630
jmp 0x41af7b
test dword [0x4725a0], 0x20000
je 0x41bc44
cmp word [0x4a3fec], 0
je 0x41bc44
mov dword [ebp - 0xad0], 0
mov dword [ebp - 4], 0x2a
push 0
push 0x4a3fec
push dword [0x469ee4]
call fcn.00404690
add esp, 0xc
mov esi, eax
mov dword [ebp - 0xae4], esi
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x41bc03
cmp word [0x4a41f4], 0
je 0x41b6dc
mov dword [ebp - 4], 0x2c
push 0
push 0x4a41f4
push dword [0x469ee4]
call fcn.00404690
add esp, 0xc
mov dword [ebp - 0xad0], eax
mov dword [ebp - 0xae8], eax
mov dword [ebp - 4], 0xffffffff
test eax, eax
je 0x41b7b5
lea eax, [ebp - 0xa78]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x41bbb1
lea eax, [ebp - 0x21c]
push eax
push 0
push 0x4518b0
lea eax, [ebp - 0xa78]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x41bbb1
lea eax, [ebp - 0x21c]
push eax
push 0x104
push 0x4a4c40
call fcn.0042f9f7
push esi
lea eax, [ebp - 0x21c]
push eax
call fcn.00416ac0
add esp, 0x14
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov esi, dword [ebp - 0xad0]
test esi, esi
je 0x41b802
lea eax, [ebp - 0x21c]
push eax
push 0
push 0x4518b8
lea eax, [ebp - 0xa78]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x21c]
push eax
push 0x104
push 0x4a4e48
call fcn.0042f9f7
push esi
lea eax, [ebp - 0x21c]
push eax
call fcn.00416ac0
add esp, 0x14
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x41b819
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41b7ec
call fcn.00414730
mov esi, eax
push 0x3e
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
push dword [ebp - 0xae4]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 0xc
jmp 0x41ccc4
push 0x450450
push 0x104
push 0x4a4e48
call fcn.0042f9f7
add esp, 0xc
push 0x4a4c40
mov eax, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
call eax
mov dword [0x4a4c38], eax
test eax, eax
jne 0x41b88b
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41b85f
call fcn.00414730
mov esi, eax
push 0x3e
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
call edi
push 0x4a4c40
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
call esi
cmp word [0x4a4e48], 0
je 0x41bc3a
push 0x4a4e48
call esi
mov eax, 0xc
jmp 0x41ccc4
push str.EXEpressExtension
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call esi
mov dword [0x469a40], eax
push str.EXEpressExtensionW
push dword [0x4a4c38]
call esi
mov dword [0x469a44], eax
test eax, eax
jne 0x41bad7
cmp dword [0x469a40], eax
jne 0x41b902
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41b8f1
call fcn.00414730
mov esi, eax
push 0x3f
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
call edi
push dword [0x4a4c38]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x41b85f
mov ecx, dword [0x4a5b80]
mov eax, dword fs:[0x2c]
mov esi, dword [eax + ecx*4]
mov eax, dword [0x4a50a8]
cmp eax, dword [esi + 4]
jg 0x41cce2
mov eax, dword [0x4a50c4]
cmp eax, dword [esi + 4]
jg 0x41cd41
mov eax, dword [0x4a50e0]
cmp eax, dword [esi + 4]
jg 0x41cda0
lea eax, [ebp - 0x834]
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov dword [ebp - 4], 0x31
push dword [eax]
mov ecx, 0x4a5090
call fcn.004177e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41b989
push eax
call fcn.00430f8f
add esp, 4
cmp word [0x4a4e48], 0
je 0x41b9d6
push 0x4a4e48
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov dword [ebp - 4], 0x32
push dword [eax]
mov ecx, 0x4a50ac
call fcn.004177e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41b9d6
push eax
call fcn.00430f8f
add esp, 4
call fcn.00414730
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov dword [ebp - 4], 0x33
push dword [eax]
mov ecx, 0x4a50c8
call fcn.004177e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41ba1a
push eax
call fcn.00430f8f
add esp, 4
mov dword [0x469a48], 0x34
mov dword [0x469a50], 0
mov dword [0x469a74], 0x4090c0
mov dword [0x469a78], 0x409200
mov eax, 0x4a5090
cmp dword [0x4a50a4], 0x10
cmovae eax, dword [0x4a5090]
mov dword [0x469a58], eax
cmp word [0x4a4e48], 0
je 0x41ba7e
mov eax, 0x4a50ac
cmp dword [0x4a50c0], 0x10
cmovae eax, dword [0x4a50ac]
mov dword [0x469a5c], eax
jmp 0x41ba88
mov dword [0x469a5c], 0
mov eax, 0x4a50c8
cmp dword [0x4a50dc], 0x10
cmovae eax, dword [0x4a50c8]
mov dword [0x469a54], eax
mov dword [0x469a6c], 0
mov dword [0x469a68], 0
mov dword [0x469a64], 0
mov dword [0x469a60], 0
mov dword [0x469a4c], 0x3e8
jmp 0x41bb5c
mov dword [0x469a7c], 0x34
mov dword [0x469a84], 0
mov dword [0x469aa8], 0x409150
mov dword [0x469aac], 0x4092e0
lea eax, [ebp - 0x834]
mov dword [0x469a8c], eax
mov eax, 0x4a4e48
xor ecx, ecx
cmp word [0x4a4e48], cx
cmove eax, ecx
mov dword [0x469a90], eax
call fcn.00414730
mov dword [0x469a88], eax
mov dword [0x469aa0], 0
mov dword [0x469a9c], 0
mov dword [0x469a98], 0
mov dword [0x469a94], 0
mov dword [0x469a80], 0x3e8
call fcn.00409010
test eax, eax
je 0x41bc44
cmp eax, 6
je 0x41bb84
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, 0xd
jmp 0x41ccc4
mov eax, dword [0x4725a4]
test al, 4
je 0x41bba4
xor eax, 4
mov dword [0x4725a4], eax
or dword [0x4725a0], 0x8000000
jmp 0x41bc49
or eax, 4
mov dword [0x4725a4], eax
jmp 0x41bc49
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41bc3a
call fcn.00414730
mov esi, eax
push 0x3f
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
call edi
mov eax, 0xc
jmp 0x41ccc4
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
cmp byte [0x469cd8], 0
jne 0x41bc3a
call fcn.00414730
mov esi, eax
push 0x3e
call fcn.00401780
add esp, 4
push 0x12010
push esi
push eax
push 0
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
mov eax, 0xc
jmp 0x41ccc4
mov eax, dword [0x4725a4]
test al, 4
jne 0x41bca6
push str.exepress_class
push 0
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
mov dword [ebp - 0xacc], eax
test eax, eax
je 0x41bca6
cmp byte [0x469cd8], 0
jne 0x41bc95
call fcn.00414730
mov esi, eax
push 0x19
call fcn.00401780
add esp, 4
push 0x40
push esi
push eax
push dword [0x469cd4]
call edi
mov eax, dword [ebp - 0xacc]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 3
jmp 0x41ccc4
push str.exepress_class
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0xad8], eax
test eax, eax
jne 0x41bcee
cmp byte [0x469cd8], al
jne 0x41bce4
call fcn.00414730
mov esi, eax
push 0xf
call fcn.00401780
add esp, 4
push 0x10
push esi
push eax
push dword [0x469cd4]
call edi
mov eax, 3
jmp 0x41ccc4
mov eax, dword [0x469cd4]
test eax, eax
je 0x41bd29
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
nop dword [eax]
call esi
sub eax, dword [0x469cd0]
cmp eax, 0x3e8
ja 0x41bd24
push 0
call fcn.004248c0
add esp, 4
mov eax, dword [0x469cd4]
test eax, eax
jne 0x41bd00
jmp 0x41bd29
mov eax, dword [0x469cd4]
test byte [0x4725a4], 4
je 0x41bd50
push 0x35
call fcn.00401780
add esp, 4
push eax
push 0x415
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
jmp 0x41bd65
test eax, eax
je 0x41bd5b
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x469cd4], 0
test dword [0x4725a0], 0x400
je 0x41bdc8
mov esi, 0x450450
cmp byte [0x46a108], 0
je 0x41bd90
cmp word [0x4a3624], 0
je 0x41bdb3
mov esi, 0x4a3624
jmp 0x41bdb3
cmp word [0x4a36ee], 0
je 0x41bda1
mov esi, 0x4a36ee
jmp 0x41bdb3
mov eax, 0x4a3624
cmp word [0x4a3624], 0
cmove eax, esi
mov esi, eax
call fcn.00414730
push dword [0x4a3620]
push esi
push eax
call fcn.00401c40
add esp, 0xc
test dword [0x4725a0], 0x4000
je 0x41be08
push 0
push 0x4a3de0
push dword [0x469ee4]
call fcn.00404690
add esp, 0xc
mov esi, eax
test esi, esi
je 0x41be08
push esi
call fcn.00411020
add esp, 4
mov dword [0x4a3fe8], eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
call esi
jmp 0x41be0e
mov esi, dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [0x4725a0]
test eax, 0x8000000
je 0x41be57
mov dword [0x4a4a18], 1
test eax, 0x10000000
je 0x41be64
push 0
push 0x4a4a1c
push dword [0x469ee4]
call fcn.00404690
add esp, 0xc
mov edi, eax
test edi, edi
je 0x41be57
push edi
call fcn.00411020
add esp, 4
mov dword [0x4a4c24], eax
push edi
call esi
cmp dword [0x4a4a18], 0
je 0x41bf21
push 0x1f4
push 0
lea eax, [ebp - 0x208]
push eax
call fcn.0042a3f0
add esp, 0xc
mov dword [ebp - 0x20c], 0x1f8
push 0
lea eax, [ebp - 0x20c]
push eax
push 0
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov ecx, 0x17
lea esi, [ebp - 0x74]
lea edi, [ebp - 0x278]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x268], 0x2bc
push 0x2c
call fcn.00401780
push eax
push 0x20
lea eax, [ebp - 0x25c]
push eax
call fcn.0042f9f7
add esp, 0x10
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
test esi, esi
je 0x41bf21
push 0x5a
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
lea ecx, [eax*4]
sub ecx, eax
neg ecx
shl ecx, 2
mov eax, 0x38e38e39
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x278], eax
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [0x469ab0], eax
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [ebp - 0xae0], 0
test byte [0x4725a4], 4
je 0x41c2a3
test dword [0x4725a0], 0x200
je 0x41c060
push 0x46ad1c
push 0x104
lea eax, [ebp - 0x21c]
push eax
call fcn.0042f9f7
push 0x472398
lea eax, [ebp - 0x21c]
push eax
push eax
call fcn.00421dd0
and al, 1
mov byte [ebp - 0xac1], al
push 0x450d84
lea eax, [ebp - 0x21c]
push eax
push eax
call fcn.00421dd0
add esp, 0x24
and byte [ebp - 0xac1], al
jne 0x41c060
cmp byte [0x469cd8], 0
jne 0x41c040
push 0x46ad1c
lea ecx, [ebp - 0x84c]
call fcn.0040b9d0
mov dword [ebp - 4], 0x34
push 0x450454
lea ecx, [ebp - 0x84c]
call fcn.0040e1f0
push 0x472398
lea ecx, [ebp - 0x84c]
call fcn.0040e1f0
push 0x451908
lea ecx, [ebp - 0x84c]
call fcn.0040e1f0
push 0x40
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x84c]
call fcn.0040e1f0
call fcn.00414730
lea ecx, [ebp - 0x84c]
cmp dword [ebp - 0x838], 8
cmovae ecx, dword [ebp - 0x84c]
push 0x10
push eax
push ecx
push dword [0x469cd4]
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84c]
call fcn.00403400
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x469cd4], 0
mov eax, 0xe
jmp 0x41ccc4
test dword [0x4725a0], 0x2000
je 0x41c0ff
mov eax, dword [0x4a39c0]
sub eax, 1
mov esi, 0x80000001
jne 0x41c084
mov esi, 0x80000002
push 0x208
push 0
lea eax, [ebp - 0x21c]
push eax
call fcn.0042a3f0
push 0x208
lea eax, [ebp - 0x21c]
push eax
push 0x4a3ac4
push 0x4a39c4
push esi
call fcn.0041db20
add esp, 0x20
test eax, eax
je 0x41c135
cmp word [ebp - 0x21c], 0
je 0x41c135
lea eax, [ebp - 0x21c]
push eax
push 0x104
push 0x46ad1c
call fcn.0042f9f7
add esp, 0xc
push 0x46ad1c
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
test eax, eax
je 0x41c135
push 0x46a118
push dword [0x469ee4]
call fcn.00405ce0
add esp, 8
call fcn.00409380
test eax, eax
je 0x41c28b
cmp dword [0x469a44], 0
je 0x41c18d
mov dword [0x469a94], 0x46ad1c
mov dword [0x469a80], 0x3ee
call fcn.00409010
mov esi, eax
jmp 0x41c262
test dword [0x4725a0], 0x200000
je 0x41c0ff
cmp byte [0x469cd8], 0
jne 0x41c16d
call fcn.00414730
mov esi, eax
push 0xb
call fcn.00401780
add esp, 4
push 0x10
push esi
push eax
push dword [0x469cd4]
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x469cd4], 0
mov eax, 0xf
jmp 0x41ccc4
push 0x46ad1c
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov dword [ebp - 4], 0x35
mov esi, dword [eax]
mov edx, 0x104
lea ecx, [ebp - 0x118]
mov eax, ecx
sub esi, eax
lea eax, [edx + 0x7ffffefa]
test eax, eax
je 0x41c1ce
mov al, byte [ecx + esi]
test al, al
je 0x41c1ce
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x41c1b5
lea eax, [ecx - 1]
test edx, edx
cmovne eax, ecx
mov byte [eax], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41c1f9
push eax
call fcn.00430f8f
add esp, 4
lea eax, [ebp - 0x118]
mov dword [0x469a60], eax
mov dword [0x469a4c], 0x3ee
call fcn.00409010
mov esi, eax
lea eax, [ebp - 0x118]
push eax
lea ecx, [ebp - 0x320]
call fcn.00408ea0
mov dword [ebp - 4], 0x36
push dword [eax]
push 0x104
push 0x46ad1c
call fcn.0042f9f7
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x31c]
mov eax, dword [ebp - 0x320]
cmp eax, ecx
je 0x41c262
push eax
call fcn.00430f8f
add esp, 4
cmp esi, 3
jne 0x41c287
push dword [0x469cd4]
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x469cd4], 0
mov eax, 0xd
jmp 0x41ccc4
test esi, esi
jne 0x41c267
push 0
call fcn.004102b0
mov byte [0x46a109], al
push 0
call fcn.0040eab0
add esp, 8
jmp 0x41c2da
call fcn.00424cb0
mov dword [0x46a100], eax
push 0
call fcn.00416240
add esp, 4
mov dword [ebp - 0xae0], eax
mov ecx, dword [0x46a100]
test ecx, ecx
je 0x41c2da
push ecx
call fcn.00424cf0
add esp, 4
mov dword [0x46a100], 0
mov eax, dword [0x469cd4]
test eax, eax
je 0x41c2f4
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x469cd4], 0
mov dword [0x4698a8], 0
call fcn.00409380
test eax, eax
je 0x41c326
cmp dword [0x469a44], 0
je 0x41c31c
mov dword [0x469a84], 0
jmp 0x41c326
mov dword [0x469a50], 0
cmp byte [0x46a10a], 0
je 0x41c512
mov dword [ebp - 0xac8], 1
call fcn.00409380
test eax, eax
je 0x41c4d0
mov dword [ebp - 0x860], 0
mov dword [ebp - 0x85c], 0
mov dword [ebp - 0x860], 0
mov dword [ebp - 0x85c], 7
xor eax, eax
mov word [ebp - 0x870], ax
mov dword [ebp - 4], 0x37
mov dword [ebp - 0x83c], eax
mov dword [ebp - 0x838], eax
mov dword [ebp - 0x83c], eax
mov dword [ebp - 0x838], 0xf
mov byte [ebp - 0x84c], al
mov byte [ebp - 4], 0x38
push 0x12
cmp dword [0x469a44], eax
je 0x41c41c
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x870]
call fcn.0040dfc0
mov dword [0x469a94], 0xffffffff
lea eax, [ebp - 0x870]
cmp dword [ebp - 0x85c], 8
cmovae eax, dword [ebp - 0x870]
mov dword [0x469a98], eax
lea eax, [ebp - 0xac8]
mov dword [0x469a9c], eax
mov dword [0x469a80], 0x3ef
call fcn.00409010
mov dword [0x469a98], 0
mov dword [0x469a9c], 0
jmp 0x41c4af
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov byte [ebp - 4], 0x39
push dword [eax]
lea ecx, [ebp - 0x84c]
call fcn.004177e0
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41c45e
push eax
call fcn.00430f8f
add esp, 4
mov dword [0x469a60], 0xffffffff
lea eax, [ebp - 0x84c]
cmp dword [ebp - 0x838], 0x10
cmovae eax, dword [ebp - 0x84c]
mov dword [0x469a64], eax
lea eax, [ebp - 0xac8]
mov dword [0x469a68], eax
mov dword [0x469a4c], 0x3ef
call fcn.00409010
mov dword [0x469a64], 0
mov dword [0x469a68], 0
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x84c]
call fcn.0040d350
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x870]
call fcn.00403400
cmp dword [ebp - 0xac8], 0
je 0x41cbf5
cmp byte [0x469cd8], 0
jne 0x41cbf5
call fcn.00414730
mov esi, eax
push 0x12
call fcn.00401780
add esp, 4
push 0x30
push esi
push eax
push dword [0x469cd4]
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
jmp 0x41cbf5
call fcn.00405d10
mov edi, eax
test edi, edi
je 0x41c82e
mov ecx, 0x467230
call fcn.00417b90
mov ecx, dword [0x469ee4]
cmp word [ecx + 0x24], 0
je 0x41c637
push 0x11
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x2b8]
call fcn.0040b600
mov dword [ebp - 4], 0x3a
mov eax, dword [0x469ee4]
add eax, 0x24
mov dword [ebp - 0xacc], eax
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x118], ecx
jne 0x41c6bc
mov dword [ebp - 0x118], 0
mov byte [ebp - 4], 0x3b
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0xad0], eax
lea eax, [ebp - 0xad0]
push eax
lea ecx, [ebp - 0x2b8]
call fcn.004098d0
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x114]
mov eax, dword [ebp - 0x118]
cmp eax, ecx
je 0x41c5c2
push eax
call fcn.00430f8f
add esp, 4
lea eax, [ebp - 0x84c]
push eax
lea ecx, [ebp - 0x2b8]
call fcn.00419c50
mov esi, eax
mov byte [ebp - 4], 0x3c
cmp esi, 0x467230
je 0x41c616
mov ecx, 0x467230
call fcn.00417010
movups xmm0, xmmword [esi]
movups xmmword [0x467230], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [0x467240], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
xor eax, eax
mov word [esi], ax
mov byte [ebp - 4], 0x3a
lea ecx, [ebp - 0x84c]
call fcn.00403400
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2b8]
call fcn.0040d1b0
call fcn.00405d20
push eax
mov ecx, 0x467230
call fcn.0040e1f0
mov dword [ebp - 0xac8], 1
call fcn.00409380
test eax, eax
je 0x41c7dc
mov eax, 0x467230
cmp dword [0x469a44], 0
je 0x41c732
mov dword [0x469a94], edi
cmp dword [0x467244], 8
cmovae eax, dword [0x467230]
mov dword [0x469a98], eax
lea eax, [ebp - 0xac8]
mov dword [0x469a9c], eax
mov dword [0x469a80], 0x3ef
call fcn.00409010
mov dword [0x469a98], 0
mov dword [0x469a9c], 0
jmp 0x41c7dc
mov esi, eax
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x41c6c1
sub esi, ecx
sar esi, 1
inc esi
push 0x80
lea eax, [ebp - 0x114]
push eax
push esi
lea eax, [ebp - 0x118]
push eax
call fcn.00408e00
add esp, 0x10
add esi, esi
je 0x41c722
mov eax, dword [ebp - 0x118]
test eax, eax
jne 0x41c712
call fcn.00431085
mov dword [eax], 0x16
call fcn.0042fc56
mov eax, 0x16
jmp 0x41c724
push esi
push dword [ebp - 0xacc]
push eax
call fcn.0042a760
add esp, 0xc
xor eax, eax
movzx eax, byte [eax + 0x41ce30]
jmp dword [eax*4 + 0x41ce20]
cmp dword [0x467244], 8
cmovae eax, dword [0x467230]
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov dword [ebp - 4], 0x3d
push dword [eax]
lea ecx, [ebp - 0x84c]
call fcn.0040b9a0
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41c77d
push eax
call fcn.00430f8f
add esp, 4
mov dword [0x469a60], edi
lea eax, [ebp - 0x84c]
cmp dword [ebp - 0x838], 0x10
cmovae eax, dword [ebp - 0x84c]
mov dword [0x469a64], eax
lea eax, [ebp - 0xac8]
mov dword [0x469a68], eax
mov dword [0x469a4c], 0x3ef
call fcn.00409010
mov dword [0x469a64], 0
mov dword [0x469a68], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84c]
call fcn.0040d350
cmp edi, 0xffffffff
je 0x41cbf5
cmp dword [ebp - 0xac8], 0
je 0x41cbf5
cmp byte [0x469cd8], 0
jne 0x41cbf5
call fcn.00414730
mov ecx, 0x467230
cmp dword [0x467244], 8
cmovae ecx, dword [0x467230]
push 0x10
push eax
push ecx
push dword [0x469cd4]
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
jmp 0x41cbf5
cmp byte [0x46a109], 0
je 0x41ca8a
call fcn.00407750
test eax, eax
jne 0x41c871
cmp byte [0x469cd8], al
jne 0x41c871
call fcn.00414730
mov esi, eax
push 5
call fcn.00401780
add esp, 4
push 0x10
push esi
push eax
push dword [0x4698ac]
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
call edi
jmp 0x41c877
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
cmp word [0x46cb56], 0
je 0x41c88b
push 0
call fcn.004159e0
add esp, 4
push 0x46ad1c
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
xorps xmm0, xmm0
movups xmmword [ebp - 0x868], xmm0
lea eax, [ebp - 0x868]
push eax
push dword [0x469ee4]
call fcn.00404250
add esp, 8
mov esi, eax
mov dword [ebp - 0xacc], esi
test esi, esi
jne 0x41c917
cmp byte [0x469cd8], al
jne 0x41c917
cmp byte [0x46a108], al
je 0x41c8d8
mov esi, 0x46ac14
jmp 0x41c8ed
mov esi, 0x46ac98
mov eax, 0x46ac14
cmp word [0x46ac98], 0
cmove esi, eax
push 0x7d0
push 0x468908
push 0xa
push dword [0x469abc]
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
push esi
push 0x468908
push 0
call edi
mov esi, dword [ebp - 0xacc]
mov eax, dword [ebp - 0x864]
test eax, eax
je 0x41c928
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x41c9c3
push str..exe
push 0x46b334
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
push eax
call fcn.0042fd77
add esp, 8
test eax, eax
jne 0x41c9c3
test byte [0x4725a0], 8
jne 0x41c962
test dword [0x4725a4], 0x2000
je 0x41c9c3
mov esi, dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
nop dword [eax + eax]
mov dword [ebp - 0xac8], 0x103
lea eax, [ebp - 0xac8]
push eax
push dword [ebp - 0x868]
call esi
test eax, eax
je 0x41c9ad
cmp dword [ebp - 0xac8], 0x103
jne 0x41c9b7
push 0
call fcn.00411110
add esp, 4
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x41c970
mov dword [ebp - 0xac8], 0
push dword [ebp - 0x868]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00409380
test eax, eax
je 0x41ca2c
xor eax, eax
cmp dword [0x469a44], eax
je 0x41c9f0
cmp byte [0x469ccc], al
setne al
mov dword [0x469a94], eax
mov dword [0x469a80], 0x3ed
jmp 0x41ca08
cmp byte [0x469ccc], al
setne al
mov dword [0x469a60], eax
mov dword [0x469a4c], 0x3ed
call fcn.00409010
cmp eax, 4
jne 0x41ca1b
mov byte [0x469ccc], 1
jmp 0x41ca39
cmp eax, 5
jne 0x41ca2c
mov byte [0x469ccc], 0
jmp 0x41cbdb
cmp byte [0x469ccc], 0
je 0x41cbdb
cmp byte [0x469cd8], 0
jne 0x41cbdb
xor eax, eax
cmp ax, word [0x46a944]
jne 0x41cbdb
call fcn.00414730
mov esi, eax
push 0x25
call fcn.00401780
add esp, 4
push 0x134
push esi
push eax
push dword [0x4698ac]
call edi
cmp eax, 6
jne 0x41cbdb
mov byte [ebp - 0xad1], 1
jmp 0x41cbdb
mov dword [ebp - 0xad0], 1
call fcn.00409380
test eax, eax
je 0x41cbdb
push 0x12
cmp dword [0x469a44], 0
je 0x41cb33
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x84c]
call fcn.0040b9d0
mov dword [ebp - 4], 0x40
mov dword [0x469a94], 0xffffffff
lea eax, [ebp - 0x84c]
cmp dword [ebp - 0x838], 8
cmovae eax, dword [ebp - 0x84c]
mov dword [0x469a98], eax
lea eax, [ebp - 0xad0]
mov dword [0x469a9c], eax
mov dword [0x469a80], 0x3ef
call fcn.00409010
mov dword [0x469a98], 0
mov dword [0x469a9c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84c]
call fcn.00403400
jmp 0x41cbdb
call fcn.00401780
add esp, 4
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0040b510
mov dword [ebp - 4], 0x41
push dword [eax]
lea ecx, [ebp - 0x84c]
call fcn.0040b9a0
mov byte [ebp - 4], 0x43
lea ecx, [ebp - 0x29c]
mov eax, dword [ebp - 0x2a0]
cmp eax, ecx
je 0x41cb78
push eax
call fcn.00430f8f
add esp, 4
mov dword [0x469a60], 0xffffffff
lea eax, [ebp - 0x84c]
cmp dword [ebp - 0x838], 0x10
cmovae eax, dword [ebp - 0x84c]
mov dword [0x469a64], eax
lea eax, [ebp - 0xad0]
mov dword [0x469a68], eax
mov dword [0x469a4c], 0x3ef
call fcn.00409010
mov dword [0x469a64], 0
mov dword [0x469a68], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x84c]
call fcn.0040d350
mov eax, dword [0x4698ac]
test eax, eax
je 0x41cbf5
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov dword [0x4698ac], 0
mov eax, dword [0x469ab0]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x41cc07
push eax
call esi
mov eax, dword [0x4a3fe8]
test eax, eax
je 0x41cc13
push eax
call esi
mov eax, dword [0x4a4c24]
test eax, eax
je 0x41cc1f
push eax
call esi
call fcn.00409380
test eax, eax
je 0x41cc52
push dword [0x4a4c38]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0x4a4c40
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
call esi
cmp word [0x4a4e48], 0
je 0x41cc52
push 0x4a4e48
call esi
push dword [0x469ee4]
call fcn.00404010
add esp, 4
mov esi, dword [ebp - 0xad8]
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0xad1], 0
je 0x41ccaa
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov edi, eax
call esi
sub eax, edi
cmp eax, 0x3e8
ja 0x41cca5
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call esi
sub eax, edi
cmp eax, 0x3e8
jbe 0x41cc92
call fcn.00421e60
mov eax, dword [ebp - 0xae0]
jmp 0x41ccc4
mov eax, 1
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.00428d9d
mov esp, ebp
pop ebp
ret 0x10
push 0x4a50a8
call fcn.004292e9
add esp, 4
cmp dword [0x4a50a8], 0xffffffff
jne 0x41b922
mov dword [ebp - 4], 0x2e
mov dword [0x4a50a0], 0
mov dword [0x4a50a4], 0xf
mov byte [0x4a5090], 0
push 0x44f030
call fcn.00429076
mov dword [ebp - 4], 0xffffffff
push 0x4a50a8
call fcn.0042929f
add esp, 8
jmp 0x41b922
push 0x4a50c4
call fcn.004292e9
add esp, 4
cmp dword [0x4a50c4], 0xffffffff
jne 0x41b933
mov dword [ebp - 4], 0x2f
mov dword [0x4a50bc], 0
mov dword [0x4a50c0], 0xf
mov byte [0x4a50ac], 0
push 0x44f040
call fcn.00429076
mov dword [ebp - 4], 0xffffffff
push 0x4a50c4
call fcn.0042929f
add esp, 8
jmp 0x41b933
push 0x4a50e0
call fcn.004292e9
add esp, 4
cmp dword [0x4a50e0], 0xffffffff
jne 0x41b944
mov dword [ebp - 4], 0x30
mov dword [0x4a50d8], 0
mov dword [0x4a50dc], 0xf
mov byte [0x4a50c8], 0
push 0x44f020
call fcn.00429076
mov dword [ebp - 4], 0xffffffff
push 0x4a50e0
call fcn.0042929f
add esp, 8
jmp 0x41b944