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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x462b0e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x264]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov al, byte [eax + 0x225]
xor al, 1
and eax, 0x7f
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
add eax, dword [edx + 0x220]
mov edx, dword [ebp + 8]
mov dword [edx - 0x18], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov ebx, dword [eax + 0x4c]
dec ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov esi, dword [eax + 0x48]
dec esi
mov eax, dword [ebp + 8]
sub esi, dword [eax - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x14]
xor edx, edx
call fcn.0041e828
mov byte [ebp - 0xa], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0x225], 0
je 0x462482
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x18]
add eax, esi
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov ecx, dword [edx + 0x21c]
cdq
idiv ecx
mov edx, dword [ebp + 8]
sub eax, dword [edx - 0x18]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
add eax, dword [edx + 0x228]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov edx, dword [edx + 0x25c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx - 4]
add edx, dword [ecx + 0x228]
mov ecx, edx
cdq
idiv ecx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov edx, dword [edx + 0x25c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx - 4]
add edx, dword [ecx + 0x228]
imul edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
sub edx, dword [eax + 0x228]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
push dword [eax + 0x25c]
mov eax, ebx
pop edx
sub eax, edx
sar eax, 1
jns 0x462435
adc eax, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov edx, dword [edx + 0x25c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx - 4]
add edx, dword [ecx + 0x228]
mov ecx, edx
cdq
idiv ecx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov edx, dword [edx + 0x25c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx - 4]
add edx, dword [ecx + 0x228]
imul edx, eax
mov eax, edx
add eax, eax
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
add eax, dword [edx + 0x25c]
mov dword [ebp - 0x18], eax
jmp 0x4624af
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x21c]
mov edx, dword [ebp + 8]
imul dword [edx - 0x18]
push eax
mov eax, esi
pop edx
sub eax, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov ecx, dword [edx + 0x21c]
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0x225], 0
je 0x4624d0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0x1c], edx
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax - 0x20], edx
jmp 0x4624f4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x234]
mov edx, dword [ebp + 8]
mov dword [edx - 0x1c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x230]
mov edx, dword [ebp + 8]
mov dword [edx - 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x25c]
mov edx, dword [ebp + 8]
mov dword [edx - 0x14], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x25c]
mov edx, dword [ebp + 8]
mov dword [edx - 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
add eax, eax
mov edx, dword [ebp - 0x14]
sub edx, eax
mov eax, dword [ebp + 8]
mov dword [eax - 0x24], edx
mov eax, dword [ebp - 0x18]
sar eax, 1
jns 0x462535
adc eax, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x1c]
add edx, edx
sub eax, edx
mov edx, dword [ebp + 8]
mov dword [edx - 0x28], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov esi, dword [eax + 0x21c]
test esi, esi
jle 0x462684
mov ebx, 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x2c]
mov al, byte [eax + ebx - 1]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x30]
cmp al, byte [edx + ebx - 1]
jne 0x46257e
cmp byte [ebp - 9], 0
jne 0x46267c
mov edx, dword [ebp + 8]
cmp al, 0x2e
jne 0x4625b5
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x250]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x14]
call fcn.0041e70c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x250]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
call fcn.0041e42c
jmp 0x4625e3
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x23c]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x14]
call fcn.0041e70c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edx, dword [eax + 0x23c]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x10]
call fcn.0041e42c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x18]
sub eax, 2
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
cmp eax, dword [edx + 0x25c]
jge 0x462605
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x18]
sub eax, 2
jmp 0x462611
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x25c]
mov ecx, ebx
dec ecx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x18]
add edx, dword [ebp - 0x14]
imul ecx, edx
mov edx, dword [ebp + 8]
add ecx, dword [edx - 0x18]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x18]
add edx, eax
sar edx, 1
jns 0x462635
adc edx, 0
sub ecx, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
cmp byte [edx + 0x225], 0
je 0x462662
lea edx, [eax + ecx]
push edx
mov edx, dword [ebp - 0x18]
push edx
mov edx, dword [ebp - 0x18]
sub edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [ebp - 0x20]
xchg ecx, eax
call fcn.0041ed70
jmp 0x46267c
lea edx, [eax + ecx]
push edx
mov edx, dword [ebp - 0x18]
push edx
mov edx, dword [ebp - 0x18]
sub edx, eax
mov eax, edx
mov edx, ecx
mov ecx, dword [ebp - 0x20]
xchg ecx, eax
call fcn.0041ef2c
inc ebx
dec esi
jne 0x46255e
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp + 8]
sub eax, dword [edx - 0x34]
push eax
mov eax, dword [ebp - 8]
pop edx
sub eax, edx
mov ecx, 7
cdq
idiv ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jge 0x4626ac
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x10], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x1c], eax
inc byte [ebp - 0xa]
cmp dword [ebp - 4], 0
je 0x4626e0
xor eax, eax
mov al, byte [ebp - 0xa]
mov edx, dword [ebp - 4]
shl edx, 2
lea edx, [edx*8 + 0x49f41c]
mov al, byte [edx + eax*4 - 0x24]
mov edx, dword [ebp + 8]
mov byte [edx - 9], al
jmp 0x4626f2
xor eax, eax
mov al, byte [ebp - 0xa]
mov al, byte [eax*4 + 0x49f458]
mov edx, dword [ebp + 8]
mov byte [edx - 9], al
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov esi, dword [eax + 0x21c]
test esi, esi
jle 0x462a48
mov ebx, 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov al, byte [eax + ebx - 1]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x3c]
cmp al, byte [edx + ebx - 1]
jne 0x46272b
cmp byte [ebp - 9], 0
jne case.0x46281f.0
mov eax, dword [ebp + 8]
mov dword [eax - 8], 8
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
cmp byte [eax + ebx - 1], 0x20
jne 0x462750
mov eax, dword [ebp + 8]
mov dword [eax - 8], 8
xor eax, eax
jmp 0x4627be
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
mov al, byte [eax + ebx - 1]
sub al, 0x2d
je 0x46276e
add al, 0xfd
sub al, 0xa
jb 0x462786
je 0x46277a
add al, 0xf9
sub al, 0x1a
jb 0x4627a8
jmp 0x4627bc
mov eax, dword [ebp + 8]
mov dword [eax - 8], 0xa
jmp 0x4627bc
mov eax, dword [ebp + 8]
mov dword [eax - 8], 0xb
jmp 0x4627bc
lea eax, [ebp - 0x24]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x38]
mov dl, byte [edx + ebx - 1]
call fcn.00404728
mov eax, dword [ebp - 0x24]
call fcn.004088ec
mov edx, dword [ebp + 8]
mov dword [edx - 8], eax
jmp 0x4627bc
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
movzx eax, byte [eax + ebx - 1]
sub eax, 0x35
mov edx, dword [ebp + 8]
mov dword [edx - 8], eax
mov al, 1
test al, al
je 0x4627ee
mov eax, dword [ebp + 8]
movzx eax, byte [eax - 9]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 8]
shl edx, 2
lea edx, [edx*8 + 0x49ef5c]
cmp dword [edx + eax*4 - 4], 1
jne 0x4627ee
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edi, dword [eax + 0x250]
jmp 0x4627fa
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov edi, dword [eax + 0x23c]
mov ecx, ebx
dec ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x18]
add eax, dword [ebp - 0x14]
imul ecx, eax
mov eax, dword [ebp + 8]
add ecx, dword [eax - 0x18]
mov eax, dword [ebp + 8]
movzx eax, byte [eax - 9]
cmp eax, 8
ja case.0x46281f.0
jmp dword [eax*4 + 0x462826]
mov eax, dword [ebp + 8]
add ecx, dword [eax - 0x20]
mov eax, dword [ebp + 8]
cmp byte [eax - 9], 1
jne 0x46287b
xor eax, eax
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
push edx
push edi
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x24]
xchg ecx, edx
xchg edx, eax
call fcn.004616b8
pop ecx
jmp case.0x46281f.0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
neg edx
push edx
push edi
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x24]
xchg ecx, edx
xchg edx, eax
call fcn.004616b8
pop ecx
jmp case.0x46281f.0
mov eax, dword [ebp + 8]
add ecx, dword [eax - 0x20]
mov eax, dword [ebp - 0x18]
sar eax, 1
jns 0x4628b0
adc eax, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
sar edx, 1
jns 0x4628bd
adc edx, 0
sub eax, edx
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
push edx
push edi
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x24]
xchg ecx, edx
xchg edx, eax
call fcn.00461aa4
pop ecx
jmp case.0x46281f.0
mov eax, dword [ebp + 8]
cmp byte [eax - 9], 2
jne 0x4628f0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x1c]
jmp 0x46292a
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0x225], 0
je 0x46291a
mov eax, dword [ebp - 0x18]
sar eax, 1
jns 0x462909
adc eax, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
sar edx, 1
jns 0x462916
adc edx, 0
sub eax, edx
jmp 0x46292a
mov eax, dword [ebp - 0x18]
sar eax, 1
jns 0x462924
adc eax, 0
mov edx, dword [ebp + 8]
add eax, dword [edx - 0x1c]
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x28]
push edx
push edi
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
xchg ecx, edx
xchg edx, eax
call fcn.00461e38
pop ecx
jmp case.0x46281f.0
add ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
cmp byte [eax - 9], 3
jne 0x46295e
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x1c]
jmp 0x462998
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0x225], 0
je 0x462988
mov eax, dword [ebp - 0x18]
sar eax, 1
jns 0x462977
adc eax, 0
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
sar edx, 1
jns 0x462984
adc edx, 0
sub eax, edx
jmp 0x462998
mov eax, dword [ebp - 0x18]
sar eax, 1
jns 0x462992
adc eax, 0
mov edx, dword [ebp + 8]
add eax, dword [edx - 0x1c]
mov edx, dword [ebp + 8]
push edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x28]
push edx
push edi
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x10]
neg edx
xchg ecx, edx
xchg edx, eax
call fcn.00461e38
pop ecx
jmp case.0x46281f.0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x24]
push ecx
mov ecx, 3
cdq
idiv ecx
pop ecx
mov edx, dword [ebp - 0x14]
sub edx, eax
sar edx, 1
jns 0x4629d6
adc edx, 0
add ecx, edx
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x28]
push ecx
mov ecx, 3
cdq
idiv ecx
pop ecx
mov edx, dword [ebp - 0x18]
sar edx, 1
jns 0x4629f6
adc edx, 0
add eax, edx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x24]
push ecx
mov ecx, 3
cdq
idiv ecx
pop ecx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x28]
push ecx
mov ecx, 3
cdq
idiv ecx
pop ecx
push eax
push edi
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x28]
mov edi, 3
cdq
idiv edi
add eax, eax
mov edx, dword [ebp - 0x18]
sar edx, 1
jns 0x462a36
adc edx, 0
sub edx, eax
mov eax, ecx
call fcn.0046228c
pop ecx
inc ebx
dec esi
jne 0x46270b
cmp dword [ebp - 4], 0
je 0x462aee
cmp dword [ebp - 8], 0
jle 0x462aee
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
cmp byte [eax + 0x224], 0
je 0x462aab
lea edx, [ebp - 0x34]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov ecx, dword [eax]
call dword [ecx + 0x44]
lea eax, [ebp - 0x34]
push eax
lea edx, [ebp - 0x44]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov ecx, dword [eax]
call dword [ecx + 0x44]
lea edx, [ebp - 0x44]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov ecx, dword [eax + 0x264]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x208]
call fcn.0041ec3c
cmp byte [ebp - 0xa], 8
jae 0x462aee
mov ebx, dword [ebp - 8]
sub ebx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
test byte [eax + 0x1c], 0x10
jne 0x462acf
mov eax, dword [0x4a09c8]
mov eax, dword [eax]
call fcn.0045f3dc
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebp - 0x1c]
cmp ebx, eax
ja 0x462ab7
sub eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jle 0x462aee
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
cmp byte [ebp - 0xa], 8
jne 0x4626b1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x462b15
lea eax, [ebp - 0x24]
call fcn.00404540
ret