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

Disassembly:
sub esp, 0x2b0
xor eax, eax
push ebx
mov ebx, dword [esp + 0x2b8]
mov al, byte [ebx + 6]
add eax, 0xfffffffc
cmp eax, 0x16
ja case.0x414927.15
xor ecx, ecx
mov cl, byte [eax + 0x414dd4]
jmp dword [ecx*4 + 0x414da4]
mov al, byte [0x4ad900]
test al, al
jne case.0x414927.15
cmp word [0x4b3bec], 0
je 0x4149e9
xor eax, eax
mov byte [0x4b3ae8], 0
mov byte [0x4ad628], 0
mov al, byte [ebx + 1]
lea edx, [eax*8]
sub edx, eax
test byte [edx*8 + 0x4ad744], 8
je 0x4149e9
lea eax, [ebx + 8]
lea ecx, [esp + 0x40]
push eax
push ecx
call fcn.0040d700
lea edx, [esp + 0x48]
lea eax, [esp + 0x1b8]
push edx
lea ecx, [esp + 0x80]
push eax
push ecx
call fcn.00414df0
add esp, 0x14
test eax, eax
je 0x4149e9
lea edx, [esp + 0x1b0]
push 0x104
push edx
call sub.Storm.dll_Ordinal_506
lea eax, [esp + eax + 0x78]
push eax
push 0x4b3ae8
call sub.Storm.dll_Ordinal_501
push 0x5c
push 0x4b3ae8
call fcn.0047c8d0
add esp, 8
test eax, eax
je 0x4149d5
mov byte [eax], 0
lea ecx, [esp + 0x74]
push 0x104
push ecx
push 0x4ad628
call sub.Storm.dll_Ordinal_501
add ebx, 8
lea edx, [esp + 8]
push ebx
push edx
call fcn.0040d700
lea eax, [esp + 0x10]
push 0
push eax
call fcn.004125c0
add esp, 0x10
pop ebx
add esp, 0x2b0
ret
mov cl, byte [ebx + 1]
cmp cl, 8
je case.0x414927.15
mov eax, ecx
and eax, 0xff
lea edx, [eax*8]
sub edx, eax
mov al, byte [edx*8 + 0x4ad740]
test al, al
je case.0x414927.15
mov al, byte [0x4ad900]
push esi
test al, al
push edi
je 0x414a6d
mov byte [esp + 0xc], cl
mov esi, 0x4ad748
mov edi, dword [esp + 0xc]
mov al, byte [esi - 5]
test al, al
je 0x414a62
push esi
push edi
call fcn.00434580
add esp, 8
add esi, 0x38
cmp esi, 0x4ad908
jl 0x414a51
mov ecx, 4
mov edi, 0x4b4938
lea esi, [ebx + 8]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
pop edi
pop esi
jne 0x414ab2
call fcn.004123d0
mov ecx, dword [0x4ad974]
mov byte [0x4ad910], 3
push ecx
call fcn.004055a0
push 7
call fcn.0041c510
push eax
call fcn.00434f50
add esp, 0xc
pop ebx
add esp, 0x2b0
ret
mov dl, byte [ebx + 1]
push edx
call fcn.00412350
add esp, 4
pop ebx
add esp, 0x2b0
ret
mov bl, byte [ebx + 8]
mov al, byte [0x4acb18]
cmp bl, al
jne 0x414afc
mov eax, dword [0x4ad974]
mov byte [0x4ad910], 3
push eax
call fcn.004055a0
push 8
call fcn.0041c510
push eax
call fcn.00434f50
add esp, 0xc
pop ebx
add esp, 0x2b0
ret
mov eax, ebx
and eax, 0xff
lea ecx, [eax*8]
sub ecx, eax
cmp byte [ecx*8 + 0x4ad740], 1
jne case.0x414927.15
push ebx
call fcn.00412350
add esp, 4
pop ebx
add esp, 0x2b0
ret
add ebx, 8
lea edx, [esp + 8]
push ebx
push edx
call fcn.0040d7d0
mov eax, dword [esp + 0x12]
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.00411fd0
add esp, 0x10
test eax, eax
jne 0x414b5c
push str.chatroom:1
call fcn.00488ae0
add esp, 4
xor eax, eax
mov al, byte [0x4acb18]
lea edx, [eax*8]
sub edx, eax
lea eax, [edx*8 + 0x4ad740]
push eax
push 0xd
call fcn.00434540
add esp, 8
pop ebx
add esp, 0x2b0
ret
add ebx, 8
lea ecx, [esp + 0x178]
push ebx
push ecx
call fcn.0040d7d0
add esp, 8
pop ebx
add esp, 0x2b0
ret
push 1
call fcn.004798b0
xor edx, edx
mov dl, byte [ebx + 3]
push edx
call fcn.004798d0
mov eax, 0x8080808
add esp, 8
mov dword [0x4ad730], eax
mov dword [0x4ad734], eax
mov eax, dword [0x4ad910]
and eax, 0xff
dec eax
je 0x414be4
dec eax
je 0x414bdd
call fcn.004152e0
jmp 0x414be9
call fcn.00415240
jmp 0x414be9
call fcn.00414f70
mov byte [esp + 4], al
mov al, byte [0x4ad73e]
cmp al, 3
jne 0x414c1b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.004798d0
push 0x3c
push 1
push 0
call fcn.00479900
add esp, 0x10
test eax, eax
setne cl
mov byte [0x4ad73e], cl
push 0
call fcn.004798d0
push 0
call fcn.004798b0
mov dl, byte [0x4ad73e]
mov eax, dword [esp + 0xc]
push edx
push eax
call fcn.004345c0
add esp, 0x10
pop ebx
add esp, 0x2b0
ret
mov al, byte [ebx + 8]
cmp al, 8
jb 0x414cc3
mov al, byte [0x4ad61c]
mov cl, al
inc al
test cl, cl
mov byte [0x4ad61c], al
jne case.0x414927.15
mov al, byte [0x4ad900]
test al, al
je case.0x414927.15
xor ecx, ecx
mov al, byte [ebx + 8]
mov cl, byte [ebx + 1]
sub al, 8
lea edx, [ecx*8]
sub edx, ecx
lea ecx, [edx*8 + 0x4ad758]
xor dx, dx
mov dl, al
push ecx
add edx, 0x13
push edx
call fcn.0041c510
add esp, 4
push eax
lea eax, [esp + 0x7c]
push eax
call fcn.0047c875
lea ecx, [esp + 0x80]
push 0x43bdf0
push ecx
call fcn.00434dc0
add esp, 0x14
pop ebx
add esp, 0x2b0
ret
xor edx, edx
mov dl, byte [ebx + 1]
mov byte [edx + 0x4ad730], al
mov cl, byte [ebx + 9]
xor eax, eax
mov al, byte [ebx + 8]
pop ebx
mov byte [eax + 0x4abd28], cl
mov al, byte [0x4ad72e]
inc al
mov byte [0x4ad72e], al
add esp, 0x2b0
ret
mov edx, dword [ebx + 8]
lea ecx, [ebx + 0x10]
mov dword [0x4ad730], edx
mov eax, dword [ebx + 0xc]
push ecx
push 0x4ad940
mov dword [0x4ad734], eax
call fcn.0040d6a0
mov dl, byte [ebx + 3]
add esp, 8
mov byte [0x4ad943], dl
mov byte [0x4ad902], 1
mov byte [0x4ad72d], 0
call fcn.00431ce0
pop ebx
add esp, 0x2b0
ret
mov al, byte [ebx + 1]
mov byte [esp + 4], al
mov ecx, dword [esp + 4]
mov eax, ecx
and eax, 0xff
lea edx, [eax*8]
sub edx, eax
cmp byte [edx*8 + 0x4ad740], 1
jne case.0x414927.15
mov eax, dword [0x4ad974]
add ebx, 8
push ebx
push ecx
push eax
call fcn.00411c90
add esp, 0xc
pop ebx
add esp, 0x2b0
ret
mov cl, byte [ebx + 1]
push 1
push ecx
call fcn.00415380
add esp, 8
pop ebx
add esp, 0x2b0
ret
mov dl, byte [ebx + 1]
push 0
push edx
call fcn.00415380
add esp, 8
pop ebx
add esp, 0x2b0
ret