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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
mov eax, dword [0x1003b080]
xor eax, esp
mov dword [esp + 0x24], eax
cmp dword [0x1004e164], 0
push ebx
push esi
je 0x1000443c
cmp dword [0x1004e11c], 0
je 0x100040c8
cmp byte [0x1004e0c5], 0
jne 0x100040c8
cmp dword [0x1004e1c8], 0x438
mov cl, 1
mov byte [0x1004e0c5], 1
jl 0x100040b6
push 0x438
push 0x6c0
jmp 0x100040c0
push 0x258
push 0x320
call fcn.10003560
add esp, 8
cmp dword [0x1004e1a4], 1
jne 0x10004146
cmp byte [0x1004e190], 0
jne 0x100040f5
push 0
push 0
mov cl, 1
mov byte [0x1004e190], 1
call fcn.10003560
mov byte [0x1003bd55], 1
jmp 0x10004143
cmp byte [0x1004e054], 0
je 0x10004146
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [0x1004e07c]
add ecx, 0x3e8
cmp eax, ecx
jbe 0x10004146
call esi
cmp byte [0x1003bd55], 1
push 0
mov dword [0x1004e07c], eax
push 0
jne 0x10004135
mov byte [0x1003bd55], 0
xor cl, cl
jmp 0x1000413e
mov byte [0x1003bd55], 1
mov cl, 1
call fcn.10003560
add esp, 8
mov eax, dword [0x1004e164]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jne 0x1000443c
mov eax, dword [0x1004e164]
push 0x1004e104
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc0]
mov eax, dword [0x1004e044]
mov dword [esp + 0x28], 0
test eax, eax
je 0x10004182
cmp eax, 0xffffffff
jne 0x1000419e
lea eax, [esp + 0x28]
push eax
push 0
push 0x1048c
push str.OTTO
call dword [sym.imp.GDI32.dll_AddFontMemResourceEx]
mov dword [0x1004e044], eax
cmp dword [0x1004e0c8], 0
mov esi, dword [sym.imp.d3dx9_43.dll_D3DXCreateFontA]
jne 0x1000424c
mov cl, 0x3f
mov byte [esp + 0x10], 0x5a
mov bh, cl
mov byte [esp + 0xe], 0x2f
xor cl, byte [esp + 0x10]
mov al, 0x18
xor al, byte [esp + 0x10]
mov ah, 0x29
mov byte [esp + 0x11], al
mov dl, 0x38
mov al, byte [esp + 0xe]
mov ch, 0x7a
mov byte [esp + 0x12], cl
mov dh, 0x14
mov cl, byte [esp + 0x10]
mov bl, 0x3b
xor al, cl
mov byte [esp + 0xf], bh
push 0x1004e0c8
mov byte [esp + 0x1d], al
xor ah, cl
mov al, byte [esp + 0x13]
xor dl, cl
xor al, cl
mov byte [esp + 0x19], ah
mov byte [esp + 0x1e], al
xor bl, cl
lea eax, [esp + 0x15]
mov byte [esp + 0x1f], 0
push eax
push 0x30
push 6
push 0
push 1
push 0
push 1
push 0x190
push 0
push 0x1c
push dword [0x1004e164]
xor ch, cl
mov byte [esp + 0x43], dl
xor dh, cl
mov byte [esp + 0x44], bl
xor bh, cl
mov byte [esp + 0x46], ch
mov byte [esp + 0x47], dh
mov byte [esp + 0x48], bh
mov byte [esp + 0x4b], 0
call esi
cmp dword [0x1004e0cc], 0
jne 0x100042f4
mov cl, 0x56
mov byte [esp + 0x1c], 0x33
mov bh, cl
mov byte [esp + 0xf], 0x46
xor cl, byte [esp + 0x1c]
mov al, 0x71
xor al, byte [esp + 0x1c]
mov ah, 0x40
mov byte [esp + 0x1d], al
mov dl, 0x51
mov al, byte [esp + 0xf]
mov ch, 0x13
mov byte [esp + 0x1e], cl
mov dh, 0x7d
mov cl, byte [esp + 0x1c]
mov bl, 0x52
xor al, cl
mov byte [esp + 0xe], bh
push 0x1004e0cc
mov byte [esp + 0x29], al
xor ah, cl
mov al, byte [esp + 0x12]
xor dl, cl
xor al, cl
mov byte [esp + 0x25], ah
mov byte [esp + 0x2a], al
xor bl, cl
lea eax, [esp + 0x21]
mov byte [esp + 0x2b], 0
push eax
push 0x30
push 6
push 0
push 1
push 0
push 1
push 0x190
push 0
push 0x17
push dword [0x1004e164]
xor ch, cl
mov byte [esp + 0x4f], dl
xor dh, cl
mov byte [esp + 0x50], bl
xor bh, cl
mov byte [esp + 0x52], ch
mov byte [esp + 0x53], dh
mov byte [esp + 0x54], bh
mov byte [esp + 0x57], 0
call esi
cmp dword [0x1004e0c8], 0
je 0x10004421
cmp byte [0x1004e0c4], 1
jne 0x1000439f
mov eax, dword [0x1004e168]
cmp eax, 1
jne 0x1000431f
mov ecx, 0xffff0000
jmp 0x1000435c
cmp eax, 2
jne 0x1000432b
mov ecx, 0xff00ff00
jmp 0x1000435c
cmp eax, 3
jne 0x10004337
mov ecx, 0xff8000ff
jmp 0x1000435c
cmp eax, 4
jne 0x10004343
mov ecx, 0xff0000ff
jmp 0x1000435c
cmp eax, 5
jne 0x1000434f
mov ecx, 0xffffff00
jmp 0x1000435c
mov ecx, dword [esp + 0x28]
or edx, 0xffffffff
cmp eax, 6
cmove ecx, edx
mov eax, dword [0x1004e110]
shr eax, 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10037230]
mov eax, dword [0x1004e10c]
shr eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10037230]
cvtpd2ps xmm0, xmm0
call fcn.10003c10
cmp dword [0x1004e074], 1
jne 0x10004406
mov eax, dword [0x1004e16c]
cmp eax, 1
je 0x100043f5
cmp eax, 2
jne 0x100043c5
mov ecx, dword [0x1004e10c]
lea edx, [eax + 0x1c]
lea ecx, [ecx - 0x6e]
jmp 0x100043fc
cmp eax, 3
jne 0x100043da
mov edx, dword [0x1004e110]
lea ecx, [eax + 0x1b]
push 1
lea edx, [edx - 0x78]
jmp 0x100043fe
cmp eax, 4
jne 0x100043f5
mov edx, dword [0x1004e110]
mov ecx, dword [0x1004e10c]
push 1
lea edx, [edx - 0x78]
lea ecx, [ecx - 0x6e]
jmp 0x100043fe
mov edx, 0x1e
mov ecx, edx
push 0
call fcn.10003e10
add esp, 4
mov ecx, dword [0x1004e0c8]
test ecx, ecx
je 0x10004421
mov eax, dword [ecx]
push ecx
call dword [eax + 0x40]
mov eax, dword [0x1004e0c8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov ecx, dword [0x1004e0cc]
test ecx, ecx
je 0x1000443c
mov eax, dword [ecx]
push ecx
call dword [eax + 0x40]
mov eax, dword [0x1004e0cc]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov ecx, dword [esp + 0x2c]
pop esi
pop ebx
xor ecx, esp
call fcn.1000d2ff
mov esp, ebp
pop ebp
ret