Function at 0x40bcd0
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x8dc
mov eax, dword [0x443bdc]
push ebx
push ebp
xor ebp, ebp
push esi
cmp eax, ebp
push edi
mov dword [esp + 0x1c], ebp
je 0x40bceb
call eax
mov esi, dword [0x4365c0]
cmp esi, ebp
jle 0x40be71
mov ebx, 1
mov dword [esp + 0xec], ebp
cmp esi, ebx
jle 0x40bd90
cmp esi, ebp
jle 0x40bd36
lea ecx, [esp + 0x4ec]
mov eax, 0x429350
mov edx, esi
mov edi, dword [eax]
add eax, 0xc
shl edi, 5
add ecx, 4
dec edx
mov edi, dword [edi + 0x443ef8]
mov dword [ecx - 4], edi
jne 0x40bd1f
cmp esi, ebx
mov edi, ebx
jle 0x40bd90
xor ebx, ebx
fld dword [esp + ebx + 0x4f0]
lea ecx, [edi - 1]
fstp dword [esp + 0x10]
cmp ecx, ebp
jl 0x40bd7c
lea edx, [esp + ebx + 0xec]
mov esi, dword [edx]
fld dword [esp + esi*4 + 0x4ec]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
je 0x40bd76
mov dword [edx + 4], esi
dec ecx
sub edx, 4
cmp ecx, ebp
jge 0x40bd57
mov esi, dword [0x4365c0]
mov dword [esp + ecx*4 + 0xf0], edi
inc edi
add ebx, 4
cmp edi, esi
jl 0x40bd3e
mov ebx, 1
mov eax, dword [0x44bf08]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
mov eax, dword [0x44bf08]
lea ecx, [esp + 0x14]
push ecx
push ebp
mov edx, dword [eax]
push eax
call dword [edx + 0x94]
xor edx, edx
push ebp
test eax, eax
mov eax, dword [0x44bf08]
push ebp
setge dl
mov ecx, dword [eax]
push eax
mov dword [esp + 0x1c], edx
call dword [ecx + 0x98]
mov eax, dword [0x4365c0]
xor esi, esi
cmp eax, ebp
jle 0x40be24
lea edi, [esp + 0xec]
mov eax, dword [edi]
mov ecx, dword [0x44bf08]
push ebp
lea edx, [eax + eax*2]
mov ebx, dword [edx*4 + 0x429354]
lea eax, [edx*4 + 0x429350]
push ebx
mov edx, dword [ecx]
mov ebx, dword [eax]
mov eax, dword [eax + 8]
shl ebx, 5
add ebx, 0x443ef0
push ebx
push 0x1c4
push eax
push ecx
call dword [edx + 0x70]
mov eax, dword [0x4365c0]
inc esi
add edi, 4
cmp esi, eax
jl 0x40bddc
mov ebx, 1
cmp dword [esp + 0x10], ebx
jne 0x40be3e
mov eax, dword [0x44bf08]
mov edx, dword [esp + 0x14]
push edx
push ebp
mov ecx, dword [eax]
push eax
call dword [ecx + 0x98]
mov eax, dword [0x44bf08]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov eax, dword [0x433fb4]
mov ecx, dword [0x436588]
cmp eax, ecx
mov dword [0x4365c0], ebp
mov dword [0x443ee8], ebp
jle 0x40be69
mov dword [0x436588], eax
mov dword [0x433fb4], ebp
jmp 0x40be76
mov ebx, 1
cmp dword [0x433fa0], ebp
je 0x40bf54
mov eax, dword [0x44bf08]
push eax
mov edx, dword [eax]
call dword [edx + 0x24]
mov esi, dword [0x433fa0]
mov edi, DirectSoundCreate
mov eax, dword [0x44bf08]
mov edx, dword [esi + 0x78]
push edx
push ebp
mov ecx, dword [eax]
push eax
call dword [ecx + 0x98]
lea ecx, [esi + 4]
mov eax, 0x436a40
mov edx, 4
fld dword [ecx]
fsub dword [0x433fac]
add ecx, 0x18
add eax, 0x20
dec edx
fstp dword [eax - 0x28]
fld dword [ecx - 0x14]
fsub dword [0x433fac]
mov dword [eax - 0x20], ebp
mov dword [eax - 0x1c], 0x3f800000
fstp dword [eax - 0x24]
mov ebx, dword [ecx - 4]
mov dword [eax - 0x14], ebp
mov dword [eax - 0x18], ebx
fld dword [ecx - 0xc]
fstp dword [eax - 0x10]
fld dword [ecx - 8]
fstp dword [eax - 0xc]
jne 0x40beb8
mov eax, dword [0x44bf08]
push ebp
push 4
push 0x436a38
mov ecx, dword [eax]
push 0x1c4
push 5
push eax
call dword [ecx + 0x70]
mov edx, dword [esi + 0x84]
mov eax, dword [esi + 0x80]
and edx, edi
mov dword [esi + 0x7c], ebp
mov dword [esi + 0x84], edx
mov dword [esi + 0x80], ebp
cmp eax, ebp
mov esi, eax
jne 0x40be98
mov eax, dword [0x44bf08]
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
mov dword [0x433fa0], ebp
mov dword [0x42c178], ebp
mov ebx, 1
mov eax, dword [0x44bf00]
push eax
call fcn.0040ccc0
mov eax, dword [0x443c00]
add esp, 4
cmp eax, ebx
jne 0x40bfc1
push str.SUFCAP
push 0x433fb8
lea ecx, [esp + 0x4f4]
push str._s_s_SCREEN
push ecx
call fcn.00412b72
mov eax, dword [0x44bf00]
lea edx, [esp + 0x4fc]
push edx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push eax
call fcn.00403b80
mov eax, dword [0x443bf8]
add esp, 0x24
cmp eax, ebp
je 0x40bfbb
push eax
call fcn.00413a03
add esp, 4
mov dword [0x443bf8], ebp
mov dword [0x443c00], ebp
xor edi, edi
mov eax, dword [0x443bf4]
cmp eax, ebp
je 0x40c15f
mov eax, dword [0x42c298]
mov ecx, dword [0x42c29c]
cmp eax, ecx
jl 0x40c005
push ecx
push eax
push 0x425090
push 0x42c17c
xor ebx, ebx
call fcn.00412b72
mov edi, 1
add esp, 0x10
mov dword [0x429348], edi
jmp 0x40c130
push str.SHOT.DAT
push 0x424aa0
push 0x433fb8
lea ecx, [esp + 0xf8]
push str._s_s_s
push ecx
xor edi, edi
xor esi, esi
call fcn.00412b72
mov edx, dword [0x42c298]
mov ecx, dword [0x44bf00]
shl edx, 4
mov eax, dword [edx + 0x42c2a4]
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
shl eax, 0xc
push eax
lea eax, [esp + 0x104]
push eax
push 0x424b00
push ecx
call fcn.0040c6e0
add esp, 0x24
cmp eax, ebx
jne 0x40c0d6
mov edx, dword [0x42c298]
push str.MANAGE.DAT
shl edx, 4
push 0x424aa0
push 0x433fb8
mov byte [edx + 0x42c2a0], 1
mov edx, dword [0x42c298]
lea eax, [esp + 0xf8]
inc edx
push str._s_s_s
push eax
mov dword [0x42c298], edx
call fcn.00412b72
lea ecx, [esp + 0x100]
push 0x424c1c
push ecx
call fcn.00413c38
mov esi, eax
add esp, 0x1c
cmp esi, ebp
je 0x40c0d6
push esi
push ebx
push 0x810
push 0x42c290
call fcn.00413a80
add esp, 0x10
cmp eax, ebx
jne 0x40c0d6
mov edi, ebx
cmp edi, 1
mov ebx, edi
jne 0x40c104
mov edx, dword [0x42c29c]
mov eax, dword [0x42c298]
push edx
push eax
push 0x425070
push 0x42c17c
call fcn.00412b72
add esp, 0x10
mov dword [0x429348], ebp
jmp 0x40c11e
push 0x425058
push 0x42c17c
call dword [sym.imp.KERNEL32.dll_lstrcpyA_1]
mov dword [0x429348], 3
cmp esi, ebp
mov edi, 1
je 0x40c130
push esi
call fcn.00413a03
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetTickCount_1]
xor ecx, ecx
cmp ebx, 1
setne cl
inc ecx
mov dword [0x4365cc], eax
mov dword [0x443edc], 1
mov dword [0x433f78], ecx
mov dword [0x443bf4], ebp
mov ebx, 1
mov eax, dword [0x433f78]
cmp eax, ebp
je 0x40c1c2
mov eax, dword [0x433f78]
cmp eax, ebx
jne 0x40c178
call fcn.0040cdb0
jmp 0x40c1bc
mov esi, 2
mov eax, dword [0x433f78]
cmp eax, esi
jne 0x40c1bc
call fcn.0040ce20
cmp dword [0x443edc], ebx
je 0x40c1bc
push 0x42504c
push 0x42c17c
call dword [sym.imp.KERNEL32.dll_lstrcpyA_1]
mov dword [0x429348], esi
mov edi, ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount_1]
mov dword [0x4365cc], eax
mov dword [0x443edc], ebx
mov dword [0x433f78], ebp
cmp dword [0x443edc], ebx
jne 0x40c33c
cmp dword [0x443ecc], ebp
jne 0x40c24b
mov eax, dword [0x44bf00]
lea ecx, [esp + 0x10]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
test eax, eax
jl 0x40c321
mov edx, dword [esp + 0x10]
push 2
push edx
call dword [sym.imp.GDI32.dll_SetBkMode_1]
mov eax, dword [esp + 0x10]
push 0xffffff
push eax
call dword [sym.imp.GDI32.dll_SetBkColor]
mov ecx, dword [esp + 0x10]
push ebp
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor_1]
push 0x42c17c
call dword [sym.imp.KERNEL32.dll_lstrlenA_1]
mov edx, dword [esp + 0x10]
push eax
push 0x42c17c
push 0x12
push ebp
push edx
call dword [sym.imp.GDI32.dll_TextOutA_1]
mov eax, dword [0x44bf00]
mov edx, dword [esp + 0x10]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x68]
jmp 0x40c321
cmp edi, ebx
jne 0x40c26b
mov eax, dword [0x42c29c]
mov ecx, dword [0x42c298]
mov edx, dword [0x429348]
push eax
push ecx
push edx
call fcn.0040b900
add esp, 0xc
mov eax, dword [0x44bf08]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
mov eax, dword [0x44bf08]
lea ecx, [esp + 0x14]
push ecx
push ebp
mov edx, dword [eax]
push eax
call dword [edx + 0x94]
mov ecx, dword [0x443ecc]
xor ebx, ebx
test eax, eax
mov eax, dword [0x44bf08]
push ecx
push ebp
push eax
mov edx, dword [eax]
setge bl
call dword [edx + 0x98]
mov eax, dword [0x44bf08]
push ebp
push 4
push 0x436610
mov edx, dword [eax]
push 0x1c4
push 5
push eax
call dword [edx + 0x70]
mov eax, dword [0x429348]
cmp eax, ebp
je 0x40c2cf
cmp eax, 3
jne 0x40c2f8
mov esi, 0x436690
mov edi, 7
mov eax, dword [0x44bf08]
push ebp
push 4
push esi
mov ecx, dword [eax]
push 0x1c4
push 5
push eax
call dword [ecx + 0x70]
add esi, 0x80
dec edi
jne 0x40c2d9
cmp ebx, 1
jne 0x40c311
mov eax, dword [0x44bf08]
mov ecx, dword [esp + 0x14]
push ecx
push ebp
mov edx, dword [eax]
push eax
call dword [edx + 0x98]
mov eax, dword [0x44bf08]
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
mov ebx, 1
call dword [sym.imp.KERNEL32.dll_GetTickCount_1]
mov ecx, dword [0x4365cc]
sub eax, ecx
cmp eax, 0xbb8
jb 0x40c33c
mov dword [0x443edc], ebp
cmp dword [0x42c168], ebx
jne 0x40c362
mov eax, dword [0x44befc]
push ebx
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
test eax, eax
jl 0x40c3fb
mov dword [esp + 0x1c], ebx
jmp 0x40c3fb
mov edx, dword [0x4439d4]
mov eax, dword [0x44bf10]
mov dword [esp + 0x10], edx
lea edx, [esp + 0x10]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
jl 0x40c3fb
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
call dword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
add eax, 0x280
add ecx, 0x1e0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov ecx, 0x19
xor eax, eax
lea edi, [esp + 0x88]
rep stosd dword es:[edi], eax
mov eax, dword [0x44befc]
lea ecx, [esp + 0x88]
push ecx
mov ecx, dword [0x44bf00]
push 0x1000000
push ebp
push ecx
lea ecx, [esp + 0x30]
mov dword [esp + 0x98], 0x64
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x14]
mov ecx, 0xb
xor eax, eax
lea edi, [esp + 0x5c]
mov esi, 0x2c
rep stosd dword es:[edi], eax
mov eax, dword [0x44bf0c]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], esi
push ecx
mov edx, dword [eax]
push eax
call dword [edx + 0x40]
test eax, eax
jge 0x40c429
mov dword [esp + 0x5c], ebp
mov ecx, 0xb
xor eax, eax
lea edi, [esp + 0x30]
rep stosd dword es:[edi], eax
mov dword [esp + 0x54], eax
mov eax, dword [0x44bf0c]
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], 0x280
mov dword [esp + 0x40], 0x1e0
mov dword [esp + 0x44], 0xbf800000
mov dword [esp + 0x48], 0x3f400000
mov dword [esp + 0x4c], 0x40000000
mov dword [esp + 0x50], 0x3fc00000
mov dword [esp + 0x58], 0x3f800000
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x44]
mov eax, dword [0x42c010]
mov ecx, dword [0x436a1c]
cmp eax, ebx
mov eax, dword [0x44bf0c]
push ebp
push 0x3f800000
mov edx, dword [eax]
push ecx
jne 0x40c4bc
push 3
push 0x4365b0
push ebx
push eax
call dword [edx + 0x50]
jmp 0x40c664
push 2
push 0x4365b0
push ebx
push eax
call dword [edx + 0x50]
mov eax, dword [0x44bf08]
push eax
mov edx, dword [eax]
call dword [edx + 0x24]
mov eax, dword [0x44bf08]
push ebp
push ebp
push eax
mov ecx, dword [eax]
call dword [ecx + 0x98]
fld dword [0x433fac]
fchs
fst dword [0x436a38]
fst dword [0x436a3c]
fld dword [0x42049c]
fsub dword [0x433fac]
mov eax, dword [0x4365e4]
mov edx, dword [0x4365c8]
mov ecx, dword [0x436604]
mov dword [0x436a68], eax
mov eax, dword [0x4365dc]
mov dword [0x436a48], edx
fst dword [esp + 0x14]
fstp dword [0x436a58]
mov edx, dword [esp + 0x14]
mov dword [0x436aa8], eax
fst dword [0x436a5c]
fstp dword [0x436a78]
fld dword [0x4204bc]
fsub dword [0x433fac]
mov eax, dword [0x44bf08]
push ebp
push 4
push 0x436a38
mov dword [0x436a40], 0x3f666666
mov dword [0x436a44], 0x3f800000
fst dword [0x436a7c]
fstp dword [0x436a9c]
mov dword [0x436a4c], ebp
mov dword [0x436a50], 0
mov dword [0x436a54], 0
mov dword [0x436a60], 0x3f666666
mov dword [0x436a64], 0x3f800000
mov dword [0x436a6c], ebp
mov dword [0x436a70], 0
mov dword [0x436a74], 0
mov dword [0x436a80], 0x3f666666
mov dword [0x436a84], 0x3f800000
mov dword [0x436a88], ecx
mov dword [0x436a8c], ebp
mov dword [0x436a90], 0
mov dword [0x436a94], 0
mov dword [0x436a98], edx
mov dword [0x436aa0], 0x3f666666
mov dword [0x436aa4], 0x3f800000
mov dword [0x436aac], ebp
mov dword [0x436ab0], 0
mov dword [0x436ab4], 0
mov ecx, dword [eax]
push 0x1c4
push 5
push eax
call dword [ecx + 0x70]
mov eax, dword [0x44bf08]
push eax
mov edx, dword [eax]
call dword [edx + 0x28]
mov edx, dword [0x436a1c]
mov eax, dword [0x44bf0c]
push ebp
push 0x3f800000
mov ecx, dword [eax]
push edx
push 2
push 0x4365b0
push ebx
push eax
call dword [ecx + 0x50]
cmp dword [esp + 0x5c], ebp
je 0x40c67a
mov eax, dword [0x44bf0c]
lea edx, [esp + 0x5c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
cmp dword [0x429fdc], ebx
jne 0x40c6c9
push str.SUFCAP
push 0x433fb8
lea eax, [esp + 0x4f4]
push str._s_s_D3DTEX.TXT
push eax
call fcn.00412b72
lea ecx, [esp + 0x4fc]
push 0x425034
push ecx
mov dword [0x429fdc], ebp
mov dword [0x443c00], ebx
call fcn.00413c38
add esp, 0x18
mov dword [0x443bf8], eax
call fcn.00404300
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8dc
ret