Function at 0x40e060
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x482885
mov eax, dword fs:[0]
push eax
sub esp, 0x3e0
mov eax, dword [0x4ae364]
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 dword [ebp - 0x294], 0
push 1
mov dword [ebp - 4], 0
call fcn.00426340
add esp, 4
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
lea eax, [ebp - 0xc8]
push 0x6c
push eax
call fcn.00411500
add esp, 8
lea eax, [ebp - 0xb0]
mov byte [ebp - 4], 1
push 0x6d
push eax
call fcn.00411500
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - method.WTL::CMessageLoop.virtual_0], vtable.WTL::CMessageLoop.0
movups xmmword [ebp - 0x318], xmm0
mov dword [ebp - 0x308], 0
mov dword [ebp - 0x304], 0
lea eax, [ebp - 0x2e4]
movq qword [ebp - 0x2c4], xmm0
lea ecx, [ebp - 0x2d4]
mov dword [ebp - 0x2e0], 0
movups xmmword [ebp - 0x2d4], xmm0
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2dc], 0
mov dword [0x4b1d00], eax
mov dword [ebp - 0x2bc], 0
call fcn.0040c1f0
test eax, eax
jns 0x40e15a
mov byte [0x4b1d34], 1
jmp 0x40e164
mov dword [ebp - 0x2e0], 0x24
lea eax, [ebp - 0x2e4]
mov dword [0x4b1d04], eax
push 0
mov byte [ebp - 4], 4
mov dword [ebp - method.AppModule.virtual_0], vtable.AppModule.0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push dword [ebp + 8]
lea ecx, [ebp - 0x2e4]
push 0
call fcn.0040c110
mov edi, dword [0x4b1d00]
add edi, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, dword [ebp - 0x2b0]
push 4
mov dword [ebp - 0x290], eax
mov ecx, dword [esi + 8]
inc ecx
push ecx
push dword [esi]
call fcn.00468427
add esp, 0xc
test eax, eax
je 0x40e213
mov dword [esi], eax
mov eax, dword [esi + 8]
push 4
inc eax
push eax
push dword [esi + 4]
call fcn.00468427
add esp, 0xc
test eax, eax
je 0x40e213
mov ecx, dword [esi + 8]
mov dword [esi + 4], eax
lea edx, [ecx*4]
mov ecx, dword [esi]
add ecx, edx
je 0x40e204
mov eax, dword [ebp - 0x290]
mov dword [ecx], eax
mov eax, dword [esi + 4]
add eax, edx
je 0x40e210
lea ecx, [ebp - 0x31c]
mov dword [eax], ecx
inc dword [esi + 8]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call edi
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 5
push eax
call fcn.0041c340
add esp, 4
mov dword [ebp - 0x3ec], 0x48ad30
mov dword [ebp - method.std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push 0
push 0
lea eax, [ebp - 0x3dc]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x294], 1
call fcn.0040a810
mov eax, dword [ebp - 0x3ec]
push 1
mov dword [ebp - 4], 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x3ec]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x60]
mov dword [ebp + ecx - 0x3f0], eax
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x3dc]
call fcn.0040aa40
lea eax, [ebp - 0x3ec]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00420dd0
add esp, 8
lea eax, [ebp - 0x114]
mov byte [ebp - 0x28a], 0
push eax
lea ecx, [ebp - 0x298]
mov byte [ebp - 4], 0xb
call fcn.00426600
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.00416230
add esp, 8
lea eax, [ebp - 0x294]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
cmp dword [ebp - 0x294], 1
mov esi, eax
jle 0x40e402
mov edx, dword [esi + 4]
xor eax, eax
mov ecx, edx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
lea edi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40e340
sub ecx, edi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00408780
push dword [0x4ad004]
lea eax, [ebp - 0x2c]
push eax
call fcn.0040a7b0
add esp, 8
mov byte [ebp - 0x289], al
lea ecx, [ebp - 0x2c]
call fcn.00405440
cmp byte [ebp - 0x289], 0
mov eax, 1
movzx ecx, byte [ebp - 0xe4]
cmovne ecx, eax
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0xe4], cl
xor eax, eax
mov edx, dword [esi + 4]
mov ecx, edx
mov dword [ebp - 0x18], 7
mov word [ebp - 0x2c], ax
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40e3b1
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x2c]
call fcn.00408780
push dword [section..data]
lea eax, [ebp - 0x2c]
push eax
call fcn.0040a7b0
add esp, 8
mov byte [ebp - 0x289], al
lea ecx, [ebp - 0x2c]
call fcn.00405440
cmp byte [ebp - 0x289], 0
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
je 0x40e402
mov word [ebp - 0xe4], 0x101
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0xb0]
push eax
lea ecx, [ebp - 0x74]
call fcn.00427780
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x74]
call fcn.00428550
cmp byte [ebp - 0xe4], 0
jne 0x40e51b
cmp byte [ebp - 0xe3], 0
jne 0x40e761
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0041b0e0
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0x344]
call fcn.0040f050
cmp dword [ebp - 0x330], 0
mov byte [ebp - 4], 0xf
jne 0x40e491
call fcn.00401771
mov dword [ebp - 0x330], eax
test eax, eax
jne 0x40e491
push 0xe
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x40e4e8
lea eax, [ebp - 0x344]
mov dword [ebp - 0x33c], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x4b1e14
mov dword [ebp - 0x338], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x4b1e2c]
mov dword [ebp - 0x334], eax
lea eax, [ebp - 0x33c]
push 0x4b1e14
mov dword [0x4b1e2c], eax
call edi
push 0
push 0x40d610
push 0
push 0x65
push dword [0x4b1ddc]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x74]
call fcn.004288c0
lea ecx, [ebp - 0x344]
call fcn.0040f1d0
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0xd
call fcn.0041b2d0
cmp byte [ebp - 0xe4], 0
je 0x40e761
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x74]
call fcn.00428040
push eax
lea eax, [ebp - 0x12c]
mov byte [ebp - 4], 0x10
push eax
call fcn.00411980
add esp, 8
mov esi, eax
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0x11
push eax
lea ecx, [ebp - 0x74]
call fcn.00428260
push eax
lea eax, [ebp - 0x144]
mov byte [ebp - 4], 0x12
push eax
call fcn.00411980
add esp, 8
push esi
push eax
lea eax, [ebp - 0x114]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x2a4]
push eax
call fcn.00415aa0
add esp, 0x10
lea ecx, [ebp - 0x144]
call fcn.00405440
mov edx, dword [ebp - 0x18]
mov byte [ebp - 4], 0x16
cmp edx, 0x10
jb 0x40e5c0
mov ecx, dword [ebp - 0x2c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e5b6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ea36
push edx
push ecx
call fcn.0044c1f2
add esp, 8
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
lea ecx, [ebp - 0x12c]
call fcn.00405440
mov edx, dword [ebp - 0x30]
mov byte [ebp - 4], 0x18
cmp edx, 0x10
jb 0x40e615
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e60b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ea3b
push edx
push ecx
call fcn.0044c1f2
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x40e65d
mov ecx, dword [ebp - 0x2a4]
mov edx, dword [ebp - 0x2a0]
cmp ecx, edx
je 0x40e65d
cmp byte [ecx + 0x1c], 0
je 0x40e656
mov eax, dword [ecx]
cmp byte [eax + 0x15c], 0
jne 0x40e7de
add ecx, 0x20
cmp ecx, edx
jne 0x40e641
lea eax, [ebp - 0x2a4]
push eax
lea eax, [ebp - 0xc8]
push eax
lea ecx, [ebp - 0x1e4]
call fcn.00413fe0
lea eax, [ebp - 0x1e4]
mov byte [ebp - 4], 0x19
push eax
lea ecx, [ebp - 0x290]
call fcn.0040ac10
lea eax, [ebp - 0x290]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x288]
call fcn.00404740
lea ecx, [ebp - 0x1e4]
mov byte [ebp - 4], 0x1b
call fcn.00416ec0
lea ecx, [ebp - 0x288]
call fcn.00406830
lea ecx, [ebp - 0x288]
call fcn.00405730
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 0x19
call fcn.004080d0
lea ecx, [ebp - 0x1e4]
call fcn.00416580
test al, al
jne 0x40e74b
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x1e4]
call fcn.00416400
lea eax, [ebp - 0x38]
mov byte [ebp - 4], 0x1c
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0041d0b0
add esp, 8
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x1d
push ecx
push eax
call fcn.0041d1f0
add esp, 8
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x20]
call fcn.0040ac70
lea eax, [ebp - 0x38]
push eax
call fcn.0041d070
add esp, 4
lea ecx, [ebp - 0x74]
call fcn.00427fd0
lea ecx, [ebp - 0x38]
call fcn.0040ac70
lea ecx, [ebp - 0x1e4]
call fcn.00414840
lea ecx, [ebp - 0x2a4]
call fcn.0040ac70
lea ecx, [ebp - 0x74]
call fcn.00427980
lea ecx, [ebp - 0x298]
call fcn.00426740
cmp byte [ebp - 0x28a], 0
mov dword [ebp - 4], 0xa
je 0x40e842
lea eax, [ebp - 0x2c]
push eax
call fcn.0041c280
add esp, 4
mov dword [ebp - 0x80], 0x3c
lea eax, [ebp - 0x7c]
push 0x38
push 0
push eax
call fcn.00463df0
add esp, 0xc
mov dword [ebp - 0x74], 0x48ad1c
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x64], 1
cmovae eax, dword [ebp - 0x2c]
cmp byte [ebp - 0xe3], 0
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x60], 0
je 0x40e7ea
mov eax, dword [section..data]
jmp 0x40e7fb
mov byte [ebp - 0x28a], 1
jmp 0x40e756
cmp byte [ebp - 0xe4], 0
mov eax, dword [ebp - 0x6c]
cmovne eax, dword [str.__download]
mov dword [ebp - 0x6c], eax
lea eax, [ebp - 0x80]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov edx, dword [ebp - 0x18]
cmp edx, 8
jb 0x40e842
mov ecx, dword [ebp - 0x2c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40e838
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ea40
push edx
push ecx
call fcn.0044c1f2
add esp, 8
lea ecx, [ebp - 0x114]
call fcn.0040ae50
lea ecx, [ebp - 0x3ec]
call fcn.0040b1f0
mov edx, dword [ebp - 0x84]
cmp edx, 0x10
jb 0x40e89a
mov ecx, dword [ebp - 0x98]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e890
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ea45
jmp 0x40e890
push edx
push ecx
call fcn.0044c1f2
add esp, 8
lea ecx, [ebp - 0x2e4]
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0xf
mov byte [ebp - 0x98], 0
call fcn.0040ad40
mov eax, dword [ebp - 0x30c]
test eax, eax
je 0x40e8dd
push eax
call fcn.00466da8
add esp, 4
mov dword [ebp - 0x30c], 0
mov eax, dword [ebp - 0x318]
mov dword [ebp - 0x308], 0
mov dword [ebp - 0x304], 0
test eax, eax
je 0x40e90e
push eax
call fcn.00466da8
add esp, 4
mov dword [ebp - 0x318], 0
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x314], 0
mov dword [ebp - 0x310], 0
cmp edx, 0x10
jb 0x40e95c
mov ecx, dword [ebp - 0xb0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e952
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ea4a
push edx
push ecx
call fcn.0044c1f2
add esp, 8
mov edx, dword [ebp - 0xb4]
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0xf
mov byte [ebp - 0xb0], 0
cmp edx, 0x10
jb 0x40e9b1
mov ecx, dword [ebp - 0xc8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40e9a7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40ea4f
push edx
push ecx
call fcn.0044c1f2
add esp, 8
xor eax, eax
jmp 0x40ea18
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.0044c213
mov esp, ebp
pop ebp
ret 0x10
call fcn.00466d4c
call fcn.00466d4c
call fcn.00466d4c
call fcn.00466d4c
call fcn.00466d4c
call fcn.00466d4c
int3