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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x15
push 0
push 0
dec ecx
jne 0x49ba95
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x49c224
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 0xc], 0xffffffff
je 0x49c1ae
cmp dword [ebp + 0x18], 1
jne 0x49bad6
cmp dword [ebp + 0x14], 0
jbe 0x49bb8c
jmp 0x49badc
jle 0x49bb8c
push 0x34
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c23c
mov edx, 0x49c24c
call fcn.00492f6c
mov eax, dword [ebp - 0x50]
call fcn.00405330
push eax
push 1
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c260
mov edx, 0x49c2ac
call fcn.00492f6c
mov eax, dword [ebp - 0x58]
push eax
push 0
push 0x100000
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
call fcn.00405e08
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
lea eax, [ebp - 0x70]
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x64], 0x10
lea edx, [ebp - 0x74]
mov eax, dword [ebp - 8]
call fcn.00409bb8
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0xb
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov eax, dword [ebp - 0x54]
call fcn.00405330
mov edx, eax
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
pop ecx
call fcn.0046b734
cmp eax, 6
jne 0x49c19e
xor eax, eax
push ebp
push 0x49c146
push dword fs:[eax]
mov dword fs:[eax], esp
push 0xffff
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x419358]
call fcn.0041df84
mov dword [ebp - 0x38], eax
push 0
push 0
mov eax, dword [ebp - 0x38]
call fcn.0041daf0
mov eax, dword [ebp - 4]
mov byte [eax + 0x4b9], 0
mov byte [ebp - 0x3d], 0
xor eax, eax
push ebp
push 0x49c0f8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404e6c
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
xor eax, eax
mov dword [ebp - 0x34], eax
cmp byte [ebp + 0xc], 0
je 0x49bc69
mov eax, dword [str.ZIM_]
mov dword [ebp - 0x4b], eax
mov word [ebp - 0x47], 0x101
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x45], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x41], eax
lea edx, [ebp - 0x4b]
mov ecx, 0xe
mov eax, dword [ebp - 0x38]
mov ebx, dword [eax]
call dword [ebx + 0x10]
cmp eax, 0xe
jne 0x49bc51
mov eax, dword [ebp - 0x38]
push eax
mov cl, 3
mov dl, 1
mov eax, dword [0x46ce48]
call fcn.0046d1c0
mov dword [ebp - 0x3c], eax
jmp 0x49bc6f
mov ecx, 0x49c2c4
mov dl, 1
mov eax, dword [0x4187b4]
call fcn.0040ce1c
call fcn.004048b4
jmp 0x49bc6f
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x10]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.004910dc
push dword [ebp + 0x18]
push dword [ebp + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490ee0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490ff8
push 0
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c2e4
mov edx, 0x49c304
call fcn.00492f6c
mov eax, dword [ebp - 0x7c]
push eax
push 0
push 0x200
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
mov edx, dword [eax + 0x1bc]
mov eax, dword [eax + 0x1b8]
call fcn.00405e08
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edx
lea eax, [ebp - 0x84]
mov dword [ebp - 0x70], eax
mov byte [ebp - 0x6c], 0x10
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3ec]
call fcn.0044cdd0
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c31c
mov edx, 0x49c32c
call fcn.00492f6c
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f0]
call fcn.0044cdd0
xor ecx, ecx
movzx edx, word [ebp + 0x10]
mov eax, 0x100000
call fcn.00491440
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
mov edx, dword [eax + 0x1b8]
mov eax, dword [ebp - 4]
call fcn.0049d564
mov esi, eax
mov eax, esi
call fcn.00402d34
mov ebx, eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.004099e8
push 0
push 0x20000
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
call fcn.00405e08
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3bc]
call fcn.00484260
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x3bc]
mov eax, edi
call fcn.00484050
mov edx, eax
mov eax, edi
call fcn.00484270
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
sub eax, dword [ebp - 0x18]
sbb edx, dword [ebp - 0x14]
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.0049d524
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call sub.kernel32.dll_GetTickCount
mov edi, eax
mov edx, ebx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.00409990
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, edi
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.0049d570
mov edi, eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 0x18], eax
adc dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x1c]
jne 0x49bea8
cmp eax, dword [ebp - 0x20]
jne 0x49bea8
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
add dword [ebp - 0x30], eax
adc dword [ebp - 0x2c], edx
add dword [ebp - 0x34], edi
fild qword [ebp - 0x30]
fdiv dword [0x49c338]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x70], eax
xor eax, eax
mov dword [ebp - 0x6c], eax
fild qword [ebp - 0x70]
fdiv dword [0x49c33c]
fdivp st(1)
mov eax, dword [ebp - 4]
fstp qword [eax + 0x4c8]
wait
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490d04
mov edx, 0xff0000
call fcn.00490210
jmp 0x49bfae
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490d04
mov edx, 0xff
call fcn.00490210
push 1
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c348
mov edx, 0x49c384
call fcn.00492f6c
mov eax, dword [ebp - 0x90]
push eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
sub eax, dword [ebp - 0x20]
sbb edx, dword [ebp - 0x1c]
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
lea eax, [ebp - 0x70]
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x64], 0x10
lea eax, [ebp - 0x18]
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0x10
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x8c]
mov ecx, 0xff
mov eax, dword [ebp - 4]
call fcn.0049e98c
lea eax, [ebp - 0x94]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c3a0
mov edx, 0x49c3c4
call fcn.00492f6c
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov eax, dword [ebp + 8]
inc dword [eax + 4]
lea edx, [ebp - 0x98]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
call fcn.0040956c
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x384]
call fcn.0044cdd0
mov eax, ebx
xor ecx, ecx
mov edx, dword [ebp - 0x20]
call fcn.004037dc
xor ecx, ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
call fcn.004099e8
push 0
push 0x20000
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
call fcn.00405e08
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3bc]
call fcn.00484270
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
mov edx, ebx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x3c]
mov edi, dword [eax]
call dword [edi + 0x10]
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp - 0x1c]
jne 0x49bffe
cmp eax, dword [ebp - 0x20]
je 0x49c0a3
push 0
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c3dc
mov edx, 0x49c404
call fcn.00492f6c
mov eax, dword [ebp - 0xa0]
push eax
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0xa4]
call fcn.0040c608
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0x70], eax
mov byte [ebp - 0x6c], 0xb
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x9c]
mov ecx, 0xff
mov eax, dword [ebp - 4]
call fcn.0049e98c
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c420
mov edx, 0x49c43c
call fcn.00492f6c
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov byte [ebp - 0x3d], 1
mov eax, esi
xor edx, edx
cmp edx, dword [ebp - 0x1c]
jne 0x49c0b3
cmp eax, dword [ebp - 0x20]
ja 0x49c0cb
jmp 0x49c0b5
jg 0x49c0cb
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4b9], 0
jne 0x49c0cb
cmp byte [ebp - 0x3d], 0
je 0x49bddc
mov edx, esi
mov eax, ebx
call fcn.00402d50
cmp byte [ebp + 0xc], 0
je 0x49c0e2
mov eax, dword [ebp - 0x3c]
call fcn.00404018
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49c0ff
mov eax, dword [ebp - 0x38]
call fcn.00404018
ret
mov eax, dword [ebp + 8]
mov byte [eax], 4
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
jmp 0x49c1ec
mov eax, dword [ebp + 8]
mov byte [eax], 1
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49c498
mov edx, 0x49c4b0
call fcn.00492f6c
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49c22b
lea eax, [ebp - 0xb0]
mov edx, 0xb
call fcn.00404e90
lea eax, [ebp - 0x7c]
mov edx, 3
call fcn.00404e90
lea eax, [ebp - 0x58]
mov edx, 3
call fcn.00404e90
ret