Function at 0x40c47c
Capabilities:
Accept command line arguments
Check for time delay via gettickcount

Disassembly:
push 0x2cc
mov eax, 0x425a62
call fcn.00416b41
mov eax, ecx
mov dword [ebp - 0x2b4], eax
lea edi, [eax + 4]
mov dword [ebp - 0x2c0], eax
push 7
pop edx
xor ebx, ebx
mov dword [edi + 0x14], edx
xor ecx, ecx
mov dword [edi + 0x10], ebx
mov word [edi], cx
mov dword [ebp - 4], ebx
mov dword [eax + 0x30], 0xf
mov dword [eax + 0x2c], ebx
mov byte [eax + 0x1c], bl
mov dword [eax + 0x48], edx
mov dword [eax + 0x44], ebx
mov word [eax + 0x34], cx
mov dword [eax + 0x60], edx
xor edx, edx
mov dword [eax + 0x5c], edx
mov word [eax + 0x4c], cx
lea esi, [eax + 0x64]
push 0xf
pop ebx
mov dword [esi + 0x14], ebx
mov dword [esi + 0x10], edx
mov byte [esi], dl
lea ecx, [eax + 0x7c]
mov dword [ecx + 0x14], ebx
mov dword [ecx + 0x10], edx
mov dword [ebp - 0x2ac], ecx
mov byte [ecx], dl
lea ebx, [eax + 0xa0]
push 0xf
pop ecx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x10], edx
mov byte [ebx], dl
mov dword [eax + 0xcc], ecx
mov dword [eax + 0xc8], edx
mov byte [eax + 0xb8], dl
lea ecx, [eax + 0xd0]
mov dword [ebp - 0x2c4], ecx
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
lea ecx, [eax + 0xdc]
mov dword [ebp - 0x2bc], ecx
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov byte [ebp - 4], 9
push str.utm_sourcebrowser
mov byte [eax + 2], dl
mov byte [eax], dl
call fcn.00413e10
pop ecx
push eax
push str.utm_sourcebrowser
mov ecx, esi
call fcn.004055b5
mov esi, str.00000000_0000_0000_0000_000000000000
push esi
call fcn.00413e10
pop ecx
mov ecx, dword [ebp - 0x2ac]
push eax
push esi
call fcn.004055b5
mov esi, str.https:__api.elementsbrowser.com_download_attachment_elements.bin
push esi
call fcn.00413c34
pop ecx
push eax
push esi
mov ecx, edi
call fcn.00405d76
xor ecx, ecx
mov dword [ebp - 0x2d8], ecx
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x2cc], ecx
push 0x104
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 0xa
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
push ecx
lea edx, [ebp - 0x218]
mov dword [ebp - 0x2b0], eax
lea ecx, [ebp - 0x230]
call fcn.00407db7
pop ecx
push eax
mov ecx, ebx
call fcn.00402b48
push 0
push 1
lea ecx, [ebp - 0x230]
call fcn.00405a11
call esi
mov edi, eax
mov eax, dword [ebp - 0x2b0]
sub edi, eax
cmp dword [ebx + 0x14], 0x10
jb 0x40c604
mov ecx, dword [ebx]
jmp 0x40c606
mov ecx, ebx
mov eax, dword [ebx + 0x10]
add eax, ecx
cmp dword [ebx + 0x14], 0x10
jb 0x40c615
mov ecx, dword [ebx]
jmp 0x40c617
mov ecx, ebx
push dword [ebp - 0x2c0]
and dword [ebp - 0x268], 0
push eax
push ecx
lea ecx, [ebp - 0x278]
mov dword [ebp - 0x264], 0xf
mov byte [ebp - 0x278], 0
call fcn.0040401a
lea eax, [ebp - 0x278]
mov byte [ebp - 4], 0xb
push eax
lea edx, [ebp - 0x2d8]
lea ecx, [ebp - 0x290]
call fcn.004016cb
pop ecx
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x280], 0
jne 0x40c6f2
cmp dword [ebp - 0x2d8], 5
jne 0x40c6f2
lea ecx, [ebp - 0x2d8]
call fcn.004012eb
push 0x42cc90
lea ecx, [ebp - 0x230]
mov esi, eax
call fcn.00405646
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push 0x42cdf5
call fcn.00405646
lea eax, [ebp - 0x230]
mov edx, esi
push eax
lea ecx, [ebp - 0x248]
call fcn.0040684a
mov ebx, dword [ebp - 0x2ac]
add esp, 0x1c
mov ecx, ebx
push eax
call fcn.00402b48
push 0
push 1
lea ecx, [ebp - 0x248]
call fcn.00405a11
push 0
push 1
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0xc
call fcn.00405a11
jmp 0x40c707
and dword [ebx + 0x10], 0
cmp dword [ebx + 0x14], 0x10
jb 0x40c6fe
mov ebx, dword [ebx]
mov byte [ebx], 0
mov ebx, dword [ebp - 0x2ac]
call fcn.0040173d
push ebx
lea ecx, [ebp - 0x230]
mov esi, eax
call fcn.004059ac
lea edx, [ebp - 0x230]
mov byte [ebp - 4], 0xe
mov ecx, str.installer_id
call fcn.004071eb
push 0
push 1
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0xc
call fcn.00405a11
push str.installer_id
lea ecx, [ebp - 0x260]
call fcn.00405646
push 0x42e2cc
mov byte [ebp - 4], 0xf
call fcn.00413e10
pop ecx
push eax
push 0x42e2cc
lea ecx, [ebp - 0x260]
call fcn.0040532f
push 0xffffffffffffffff
push 0
push ebx
lea ecx, [ebp - 0x260]
call fcn.004053d1
mov ebx, str.__client_id:
push ebx
call fcn.00413e10
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x260]
call fcn.0040532f
push ecx
lea eax, [ebp - 0x230]
push eax
lea ecx, [esi + 0x80]
call fcn.00405e97
push 0xffffffffffffffff
xor ebx, ebx
mov byte [ebp - 4], 0x10
push ebx
push eax
lea ecx, [ebp - 0x260]
call fcn.004053d1
push ebx
push 1
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0xf
call fcn.00405a11
lea eax, [ebp - 0x260]
push edi
push eax
call fcn.00408924
mov ecx, eax
call fcn.00406502
push 0x70
call fcn.00413594
pop ecx
test eax, eax
je 0x40c7fd
mov ecx, eax
call fcn.0040bd3f
jmp 0x40c7ff
mov eax, ebx
mov ecx, dword [ebp - 0x2c4]
mov dword [eax + 4], 0xff
mov dword [ebp - 0x2b0], eax
mov byte [eax + 0x68], 1
lea eax, [ebp - 0x2b0]
push eax
call fcn.0040b5d4
mov esi, ebx
mov dword [ebp - 0x234], ebx
mov edi, ebx
mov dword [ebp - 0x23c], esi
mov dword [ebp - 0x238], edi
lea eax, [ebp - 0x2b8]
mov byte [ebp - 4], 0x11
push eax
mov dword [ebp - 0x2b8], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x2ac], eax
test eax, eax
je 0x40c8cb
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x2b8], ebx
jle 0x40c8c4
push dword [eax + ebx*4]
call dword [sym.imp.USER32.dll_CharLowerW]
push eax
lea ecx, [ebp - 0x230]
call fcn.0040530a
lea eax, [ebp - 0x230]
mov byte [ebp - 4], 0x12
push eax
lea ecx, [ebp - 0x23c]
call fcn.00408308
push 0
push 1
lea ecx, [ebp - 0x230]
mov byte [ebp - 4], 0x11
call fcn.00405e0a
mov eax, dword [ebp - 0x2ac]
inc ebx
cmp ebx, dword [ebp - 0x2b8]
jl 0x40c86b
mov edi, dword [ebp - 0x238]
mov esi, dword [ebp - 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str._silent
call fcn.00413c34
pop ecx
mov ebx, eax
jmp 0x40c8fb
push ebx
push ecx
push ebx
push ecx
mov ecx, esi
call fcn.004096e0
mov ecx, dword [ebp - 0x2b4]
neg eax
sbb al, al
inc al
mov byte [ecx + 1], al
jne 0x40c904
push 0x18
pop eax
add esi, eax
cmp esi, edi
jne 0x40c8da
jmp 0x40c9c5
mov eax, dword [esi + 0x10]
mov ecx, esi
sub eax, ebx
push eax
push ebx
lea eax, [ebp - 0x2a8]
push eax
call fcn.0040807e
mov edx, eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x230]
call fcn.00401851
push 0
push 1
lea ecx, [ebp - 0x2a8]
mov byte [ebp - 4], 0x15
call fcn.00405e0a
cmp dword [ebp - 0x21c], 0x10
lea ecx, [ebp - 0x230]
mov eax, dword [ebp - 0x220]
cmovae ecx, dword [ebp - 0x230]
mov ebx, dword [ebp - 0x2bc]
add eax, ecx
cmp dword [ebp - 0x21c], 0x10
lea ecx, [ebp - 0x230]
push eax
cmovae ecx, dword [ebp - 0x230]
mov edx, ebx
push ecx
call fcn.004036ff
mov edi, dword [ebx + 4]
mov esi, dword [ebx]
pop ecx
pop ecx
cmp esi, edi
je 0x40c99d
push 0x18
pop ebx
mov ecx, esi
call fcn.0040d4c3
add esi, ebx
cmp esi, edi
jne 0x40c98a
mov ebx, dword [ebp - 0x2bc]
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
push 0x18
pop ecx
cdq
idiv ecx
mov ecx, dword [ebp - 0x2b4]
test eax, eax
push 0
setne al
mov byte [ecx + 1], al
lea ecx, [ebp - 0x230]
push 1
call fcn.00405a11
lea ecx, [ebp - 0x23c]
call fcn.00408152
push 0
push 1
lea ecx, [ebp - 0x260]
call fcn.00405a11
push 0
push 1
lea ecx, [ebp - 0x290]
call fcn.00405a11
push 0
push 1
lea ecx, [ebp - 0x278]
call fcn.00405a11
lea ecx, [ebp - 0x2d8]
call fcn.004011af
mov eax, dword [ebp - 0x2b4]
call fcn.00416af0
ret