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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46c764
mov eax, dword fs:[0]
push eax
sub esp, 0x60
mov eax, dword [0x557834]
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.00408400
push 0x502d44
call fcn.00435d26
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0
je 0x40457a
mov ecx, dword [ebp - 0x24]
call fcn.00419ff0
mov dword [ebp - 0x3c], eax
jmp 0x404581
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.00420840
test eax, eax
jne 0x404618
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 0x4045d9
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 0x4045e0
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.004112c0
add esp, 8
mov eax, dword [ebp - 0x38]
mov dword [eax + 0x27c], 0
xor eax, eax
jmp 0x404c39
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041acd0
movzx edx, ax
cmp edx, 0x2bc
jl 0x40467f
push 0x44
push 0x16
push 0x140
push 5
push 0x21c
push 0
push 0x41f
mov ecx, dword [ebp - 0x38]
call fcn.0043f389
mov ecx, eax
call fcn.0043f72f
push 0x44
push 0x16
push 0xdc
push 5
push 0x37a
push 0
push 0x41c
mov ecx, dword [ebp - 0x38]
call fcn.0043f389
mov ecx, eax
call fcn.0043f72f
jmp 0x4046cb
push 0x44
push 0x16
push 0xdc
push 5
push 0x21c
push 0
push 0x41c
mov ecx, dword [ebp - 0x38]
call fcn.0043f389
mov ecx, eax
call fcn.0043f72f
push 0x44
push 0x16
push 0x140
push 5
push 0x316
push 0
push 0x41f
mov ecx, dword [ebp - 0x38]
call fcn.0043f389
mov ecx, eax
call fcn.0043f72f
mov ecx, dword [ebp - 0x38]
call fcn.0040e580
cmp eax, 0xffffffff
jne 0x4046df
xor eax, eax
jmp 0x404c39
push 0
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041e670
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.00420840
test eax, eax
jne 0x404776
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 0x404737
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 0x40473e
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.004112c0
add esp, 8
xor eax, eax
jmp 0x404c39
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx + 0x1c8]
test edx, edx
je 0x404880
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10e]
cmp ecx, 3
jl 0x4047a5
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x1f2]
mov byte [ebp - 0x45], al
jmp 0x4047b1
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x10e]
mov byte [ebp - 0x45], dl
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10d]
cmp ecx, 3
jl 0x4047ce
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x1f1]
mov byte [ebp - 0x46], al
jmp 0x4047da
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x10d]
mov byte [ebp - 0x46], dl
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10c]
cmp ecx, 3
jl 0x4047f7
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x1f0]
mov byte [ebp - 0x47], al
jmp 0x404803
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x10c]
mov byte [ebp - 0x47], dl
mov al, byte [ebp - 0x45]
push eax
mov cl, byte [ebp - 0x46]
push ecx
mov dl, byte [ebp - 0x47]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041e440
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x110]
cmp edx, 4
jl 0x40485d
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10d]
cmp ecx, 3
jl 0x404849
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x1f1]
mov byte [ebp - 0x48], al
jmp 0x404855
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x10d]
mov byte [ebp - 0x48], dl
mov al, byte [ebp - 0x48]
mov byte [ebp - 0x49], al
jmp 0x404869
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x110]
mov byte [ebp - 0x49], dl
mov al, byte [ebp - 0x49]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041f330
jmp 0x404967
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10e]
cmp eax, 3
jl 0x404898
mov dword [ebp - 0x50], 0
jmp 0x4048a5
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10e]
mov dword [ebp - 0x50], edx
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10d]
cmp ecx, 3
jl 0x4048bd
mov dword [ebp - 0x54], 0
jmp 0x4048ca
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10d]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10c]
cmp edx, 3
jl 0x4048e2
mov dword [ebp - 0x58], 0
jmp 0x4048ef
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10c]
mov dword [ebp - 0x58], ecx
mov dl, byte [ebp - 0x50]
push edx
mov al, byte [ebp - 0x54]
push eax
mov cl, byte [ebp - 0x58]
push ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x53d4]
call fcn.0041e440
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x110]
cmp ecx, 4
jl 0x404949
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10d]
cmp eax, 3
jl 0x404935
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x1f1]
mov byte [ebp - 0x59], dl
jmp 0x404941
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x10d]
mov byte [ebp - 0x59], cl
mov dl, byte [ebp - 0x59]
mov byte [ebp - 0x5a], dl
jmp 0x404955
mov eax, dword [ebp - 0x38]
mov cl, byte [eax + 0x110]
mov byte [ebp - 0x5a], cl
mov dl, byte [ebp - 0x5a]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041f330
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx + 0x1c8]
test edx, edx
je 0x4049b2
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0x10f]
cmp ecx, 3
jl 0x404992
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x1ef]
mov byte [ebp - 0x5b], al
jmp 0x40499e
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x10f]
mov byte [ebp - 0x5b], dl
mov al, byte [ebp - 0x5b]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041ae40
jmp 0x4049e9
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x10f]
cmp eax, 3
jl 0x4049ca
mov dword [ebp - 0x60], 0
jmp 0x4049d7
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x10f]
mov dword [ebp - 0x60], edx
mov al, byte [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041ae40
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x10]
cmp eax, 0x7d0
jae 0x404a06
mov ecx, dword [ebp - 0x38]
call fcn.0040dc30
mov dword [ebp - 0x64], eax
jmp 0x404a0d
mov dword [ebp - 0x64], 0
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], edx
xor eax, eax
cmp dword [ebp - 0x1c], 0
sete al
push eax
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx + 0x53d4]
call fcn.0041def0
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041df70
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x53d4]
call fcn.0041de70
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x38]
movzx ecx, byte [eax + 0xb8]
cmp ecx, 2
jl 0x404a77
mov dword [ebp - 0x68], 0
jmp 0x404a84
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0xb8]
mov dword [ebp - 0x68], eax
mov cl, byte [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [edx + 0x53d4]
call fcn.0041ec80
mov ecx, dword [ebp - 0x38]
call fcn.00403550
test eax, eax
jne 0x404aa9
xor eax, eax
jmp 0x404c39
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x1dc]
push ecx
mov ecx, dword [ebp - 0x38]
add ecx, 0x5414
call fcn.00401910
push 0
mov ecx, dword [ebp - 0x38]
call fcn.0043c07f
mov edx, dword [ebp - 0x38]
movzx eax, byte [edx + 0x1cc]
cmp eax, 5
jne 0x404ae3
mov dword [ebp - 0x6c], 0x10
jmp 0x404afc
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + 0x1cc]
sub edx, 1
neg edx
sbb edx, edx
neg edx
add edx, 1
mov dword [ebp - 0x6c], edx
mov al, byte [ebp - 0x6c]
mov byte [ebp - 0x15], al
mov ecx, dword [ebp - 0x38]
movzx edx, word [ecx + 0x1c8]
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax + 0x1ca]
imul edx, ecx
movzx eax, byte [ebp - 0x15]
imul edx, eax
add edx, 0x100000
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x38]
cmp dword [ecx + 0x2bc], 0
jne 0x404b4c
push 1
mov edx, dword [ebp - 0x14]
push edx
call fcn.00453255
add esp, 8
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x2bc], eax
mov edx, dword [ebp - 0x38]
cmp dword [edx + 0x2c4], 0
jne 0x404b6f
push 1
mov eax, dword [ebp - 0x14]
push eax
call fcn.00453255
add esp, 8
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x2c4], eax
mov edx, dword [ebp - 0x38]
cmp dword [edx + 0x2c0], 0
jne 0x404b92
push 1
mov eax, dword [ebp - 0x14]
push eax
call fcn.00453255
add esp, 8
mov ecx, dword [ebp - 0x38]
mov dword [ecx + 0x2c0], eax
mov edx, dword [ebp - 0x38]
cmp dword [edx + 0x2bc], 0
je 0x404bb6
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0x2c4], 0
je 0x404bb6
mov ecx, dword [ebp - 0x38]
cmp dword [ecx + 0x2c0], 0
jne 0x404bcb
push 0
push 0
push str.Failed_to_create_buffers_to_display_the_image
mov ecx, dword [ebp - 0x38]
call fcn.0043b644
xor eax, eax
jmp 0x404c39
mov edx, dword [ebp - 0x38]
mov al, byte [edx + 0x1cc]
push eax
mov ecx, dword [ebp - 0x38]
mov dx, word [ecx + 0x1ca]
push edx
mov eax, dword [ebp - 0x38]
mov cx, word [eax + 0x1c8]
push ecx
push 0x3f0
mov ecx, dword [ebp - 0x38]
call fcn.0043f389
mov edx, dword [eax + 0x20]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x53d4]
call fcn.0041d9d0
mov ecx, dword [ebp - 0x38]
mov dl, byte [ecx + 0x27a]
push edx
mov ecx, dword [ebp - 0x38]
call fcn.004041d0
mov eax, dword [ebp - 0x38]
mov dword [eax + 0xf8], 0
mov ecx, dword [ebp - 0x38]
call fcn.004094f0
mov ecx, dword [ebp - 0x38]
call fcn.0040f5d0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret