Function at 0x404550
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x470284
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x56fda8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x38]
call fcn.00408440
push 0x502d44
call fcn.00435f4b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0
je 0x4045aa
mov ecx, dword [ebp - 0x24]
call fcn.0041a240
mov dword [ebp - 0x3c], eax
jmp 0x4045b1
mov dword [ebp - 0x3c], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x20]
mov dword [ecx + 0x53d4], edx
push 0
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.00420a60
test eax, eax
jne 0x404648
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0x53d4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x404609
push 1
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x28]
mov eax, dword [edx]
call eax
mov dword [ebp - 0x40], eax
jmp 0x404610
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x53d4], 0
push str.No_DemoKit__1____
mov edx, dword [ebp - 0x38]
add edx, 0x5414
push edx
call fcn.004115c0
add esp, 8
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x27c], 0
xor eax, eax
jmp 0x404c76
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041af30
movzx edx, ax
cmp edx, 0x2bc
jl 0x4046af
push 0x44
push 0x16
push 0x140
push 5
push 0x21c
push 0
push 0x41f
mov ecx, dword [ebp - 0x38]
call fcn.0043fdcf
mov ecx, eax
call fcn.00440210
push 0x44
push 0x16
push 0xdc
push 5
push 0x37a
push 0
push 0x41c
mov ecx, dword [ebp - 0x38]
call fcn.0043fdcf
mov ecx, eax
call fcn.00440210
jmp 0x4046fb
push 0x44
push 0x16
push 0xdc
push 5
push 0x21c
push 0
push 0x41c
mov ecx, dword [ebp - 0x38]
call fcn.0043fdcf
mov ecx, eax
call fcn.00440210
push 0x44
push 0x16
push 0x140
push 5
push 0x316
push 0
push 0x41f
mov ecx, dword [ebp - 0x38]
call fcn.0043fdcf
mov ecx, eax
call fcn.00440210
mov ecx, dword [ebp - 0x38]
call fcn.0040e6e0
cmp eax, 0xffffffff
jne 0x40470f
xor eax, eax
jmp 0x404c76
push 0
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041e890
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10], eax
push 1
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.00420a60
test eax, eax
jne 0x4047a6
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x53d4]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0
je 0x404767
push 1
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x30]
mov edx, dword [eax]
call edx
mov dword [ebp - 0x44], eax
jmp 0x40476e
mov dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x53d4], 0
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x27c], 0
push str.No_DemoKit__2____
mov edx, dword [ebp - 0x38]
add edx, 0x5414
push edx
call fcn.004115c0
add esp, 8
xor eax, eax
jmp 0x404c76
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax + 0x1c8]
test ecx, ecx
je 0x4048b4
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10e]
cmp eax, 3
jl 0x4047d5
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x1f2]
mov byte [ebp - 0x45], dl
jmp 0x4047e1
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x10e]
mov byte [ebp - 0x45], cl
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10d]
cmp eax, 3
jl 0x4047fe
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x1f1]
mov byte [ebp - 0x46], dl
jmp 0x40480a
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x10d]
mov byte [ebp - 0x46], cl
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10c]
cmp eax, 3
jl 0x404827
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x1f0]
mov byte [ebp - 0x47], dl
jmp 0x404833
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x10c]
mov byte [ebp - 0x47], cl
movzx edx, byte [ebp - 0x45]
push edx
movzx eax, byte [ebp - 0x46]
push eax
movzx ecx, byte [ebp - 0x47]
push ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x53d4]
call fcn.0041e630
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x110]
cmp ecx, 4
jl 0x404890
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10d]
cmp eax, 3
jl 0x40487c
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x1f1]
mov byte [ebp - 0x48], dl
jmp 0x404888
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x10d]
mov byte [ebp - 0x48], cl
mov dl, byte [ebp - 0x48]
mov byte [ebp - 0x49], dl
jmp 0x40489c
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x110]
mov byte [ebp - 0x49], cl
movzx edx, byte [ebp - 0x49]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041f4e0
jmp 0x40499f
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10e]
cmp edx, 3
jl 0x4048cc
mov dword [ebp - 0x50], 0
jmp 0x4048d9
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10e]
mov dword [ebp - 0x50], ecx
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10d]
cmp eax, 3
jl 0x4048f1
mov dword [ebp - 0x54], 0
jmp 0x4048fe
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10d]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10c]
cmp ecx, 3
jl 0x404916
mov dword [ebp - 0x58], 0
jmp 0x404923
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10c]
mov dword [ebp - 0x58], eax
movzx ecx, byte [ebp - 0x50]
push ecx
movzx edx, byte [ebp - 0x54]
push edx
movzx eax, byte [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041e630
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x110]
cmp eax, 4
jl 0x404980
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10d]
cmp edx, 3
jl 0x40496c
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x1f1]
mov byte [ebp - 0x59], cl
jmp 0x404978
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x10d]
mov byte [ebp - 0x59], al
mov cl, byte [ebp - 0x59]
mov byte [ebp - 0x5a], cl
jmp 0x40498c
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x110]
mov byte [ebp - 0x5a], al
movzx ecx, byte [ebp - 0x5a]
push ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x53d4]
call fcn.0041f4e0
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax + 0x1c8]
test ecx, ecx
je 0x4049eb
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10f]
cmp eax, 3
jl 0x4049ca
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x1ef]
mov byte [ebp - 0x5b], dl
jmp 0x4049d6
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x10f]
mov byte [ebp - 0x5b], cl
movzx edx, byte [ebp - 0x5b]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041b0b0
jmp 0x404a23
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10f]
cmp edx, 3
jl 0x404a03
mov dword [ebp - 0x60], 0
jmp 0x404a10
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10f]
mov dword [ebp - 0x60], ecx
movzx edx, byte [ebp - 0x60]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041b0b0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x10]
cmp eax, 0x7d0
jae 0x404a40
mov ecx, dword [ebp - 0x38]
call fcn.0040dd70
mov dword [ebp - 0x64], eax
jmp 0x404a47
mov dword [ebp - 0x64], 0
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], ecx
xor edx, edx
cmp dword [ebp - 0x1c], 0
sete dl
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041e0e0
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x53d4]
call fcn.0041e160
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041e060
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0xb8]
cmp eax, 2
jl 0x404ab1
mov dword [ebp - 0x68], 0
jmp 0x404abe
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0xb8]
mov dword [ebp - 0x68], edx
movzx eax, byte [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041ee20
mov ecx, dword [ebp - 0x38]
call fcn.00403570
test eax, eax
jne 0x404ae4
xor eax, eax
jmp 0x404c76
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x1dc]
push eax
mov ecx, dword [ebp - 0x38]
add ecx, 0x5414
call fcn.00401910
push 0
mov ecx, dword [ebp - 0x38]
call fcn.0043c8ac
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x1cc]
cmp edx, 5
jne 0x404b1e
mov dword [ebp - 0x6c], 0x10
jmp 0x404b37
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x1cc]
sub ecx, 1
neg ecx
sbb ecx, ecx
neg ecx
add ecx, 1
mov dword [ebp - 0x6c], ecx
mov dl, byte [ebp - 0x6c]
mov byte [ebp - 0x15], dl
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax + 0x1c8]
mov edx, dword [ebp - 0x38]
movzx eax, word [edx + 0x1ca]
imul ecx, eax
movzx edx, byte [ebp - 0x15]
imul ecx, edx
add ecx, 0x100000
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x2bc], 0
jne 0x404b87
push 1
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00455f2d
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x2bc], eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x2c4], 0
jne 0x404baa
push 1
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00455f2d
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x2c4], eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x2c0], 0
jne 0x404bcd
push 1
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.00455f2d
add esp, 8
mov edx, dword [ebp - 0x38]
mov dword [edx + 0x2c0], eax
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x2bc], 0
je 0x404bf1
mov ecx, dword [ebp - 0x38]
cmp dword [ecx + 0x2c4], 0
je 0x404bf1
mov edx, dword [ebp - 0x38]
cmp dword [edx + 0x2c0], 0
jne 0x404c06
push 0
push 0
push str.Failed_to_create_buffers_to_display_the_image
mov ecx, dword [ebp - 0x38]
call fcn.0043be67
xor eax, eax
jmp 0x404c76
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x1cc]
push ecx
mov edx, dword [ebp - 0x38]
movzx eax, word [edx + 0x1ca]
push eax
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx + 0x1c8]
push edx
push 0x3f0
mov ecx, dword [ebp - 0x38]
call fcn.0043fdcf
mov eax, dword [eax + 0x20]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041db80
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x27a]
push eax
mov ecx, dword [ebp - 0x38]
call fcn.00404200
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0xf8], 0
mov ecx, dword [ebp - 0x38]
call fcn.00409520
mov ecx, dword [ebp - 0x38]
call fcn.0040f800
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret