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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [eax + 4]
xor ebx, ebx
cmp esi, ebx
push edi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x18], esi
jge 0x3011f0aa
push 0xa
pop esi
mov dword [ebp - 0x18], esi
xor edi, edi
inc edi
cmp dword [ebp + 0x14], ebx
je 0x3011f0c7
cmp dword [ebp + 0x14], 5
je 0x3011f0c7
mov eax, dword [0x301e48ac]
cmp dword [eax + 0x48], ebx
je 0x3011f0c7
mov dword [ebp - 0x2c], ebx
jmp 0x3011f125
push 0x43
pop eax
cmp esi, eax
jl 0x3011f117
add eax, 0x40
cmp esi, eax
jl 0x3011f117
mov eax, 0x101
cmp esi, eax
jl 0x3011f117
mov eax, 0x209
cmp esi, eax
jl 0x3011f117
mov eax, 0x407
cmp esi, eax
jl 0x3011f117
mov eax, 0x805
cmp esi, eax
jl 0x3011f117
mov eax, 0x1003
cmp esi, eax
jl 0x3011f117
xor eax, eax
cmp esi, 0x2011
setge al
dec eax
and ax, 0xdff6
add eax, 0x401b
push eax
call fcn.301d94c1
mov eax, dword [0x301e48ac]
mov dword [ebp - 0x2c], edi
mov ecx, dword [eax + 0x48]
cmp dword [ecx + 0x14], edi
je 0x3011f137
mov edx, dword [eax + 0x44]
lea ecx, [edx + ecx - 0x1000]
cmp esi, ebx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x10], ebx
mov ecx, esi
jne 0x3011f148
mov ecx, edi
mov dword [eax + 0x50], ecx
mov eax, dword [0x301e4ae8]
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x94]
push ebx
push eax
mov dword [0x301e4ae8], eax
call sub.MSVCRT.dll__setjmp3
cmp eax, ebx
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
jne 0x3011f7a9
cmp dword [ebp - 0x18], ebx
jle 0x3011f75d
mov esi, dword [ebp - 0x18]
xor eax, eax
inc eax
push eax
shl esi, 2
push esi
mov dword [ebp - 0x3c], eax
call fcn.300563f8
mov ecx, dword [0x301e48ac]
mov ecx, dword [ecx + 0x48]
mov dword [ecx], eax
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x48]
mov eax, dword [eax]
push esi
push eax
push 0
mov dword [ebp - 0xc], eax
call fcn.30056452
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x34]
lea esi, [eax + 8]
add eax, ecx
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 4]
lea edi, [eax + ebx + 0x18]
mov eax, dword [ebx + 8]
lea eax, [eax + ebx + 0x18]
mov dword [ebp - 0x40], eax
jne 0x3011f1e9
cmp dword [0x301e6c84], 0
jne 0x3011f1e9
mov dword [ebp - 0x4c], 1
jmp 0x3011f1ed
and dword [ebp - 0x4c], 0
cmp dword [ebp - 0x4c], 0
je 0x3011f642
call fcn.30056071
mov ecx, dword [0x301e75b4]
add ecx, 0x1f
cmp eax, ecx
jbe 0x3011f642
call fcn.30056071
mov dword [0x301e75b4], eax
jmp 0x3011f642
lea eax, [esi + 2]
test byte [eax], 8
mov dword [ebp - 0x1c], eax
je 0x3011f231
mov ax, word [esi + 3]
mov word [ebp - 4], ax
jmp 0x3011f235
and dword [ebp - 4], 0
push esi
call fcn.300c7cf4
movzx ecx, word [ebp - 4]
mov edx, dword [0x301e3340]
and dword [ebp - 0x30], 0
cmp edx, 6
mov dword [ebp - 8], eax
lea eax, [eax + ecx*2]
lea eax, [eax + eax + 6]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], eax
jne 0x3011f270
cmp dword [0x301e6634], 0xbd5
jge 0x3011f270
cmp dword [ebp - 8], 0
je 0x3011f2d5
mov eax, dword [ebp - 0x1c]
test byte [eax], 4
je 0x3011f2d5
xor ax, ax
cmp ax, word [ebp - 4]
mov dword [ebp - 0x28], 1
sbb eax, eax
and eax, 2
mov eax, dword [eax + esi + 3]
test eax, eax
mov dword [ebp - 0x30], eax
jne 0x3011f299
and dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
xor ecx, ecx
xor esi, esi
add eax, dword [ebp - 0x30]
adc ecx, esi
cmp ecx, 1
jg 0x3011f6f8
jl 0x3011f2b8
test eax, eax
jae 0x3011f6f8
cmp edx, 6
mov dword [ebp - 0x20], eax
jl 0x3011f2d9
cmp dword [ebp - 0x30], 0xe
jne 0x3011f2d9
cmp word [ebp - 4], 0
jne 0x3011f2d9
add eax, 2
mov dword [ebp - 0x20], eax
jmp 0x3011f2d9
and dword [ebp - 0x28], 0
cmp dword [ebp - 0x20], 0
jl 0x3011f71f
mov eax, dword [ebp - 0x20]
lea eax, [edi + eax + 4]
cmp eax, dword [ebp - 0x40]
ja 0x3011f2fe
cmp dword [ebx + 0xc], 0x100
jge 0x3011f2fe
cmp dword [ebx + 0x14], 1
jne 0x3011f336
push dword [ebp - 0x20]
sub edi, ebx
sub edi, 0x18
mov dword [ebx + 4], edi
call fcn.301d940a
mov eax, dword [0x301e48ac]
mov ebx, dword [eax + 0x48]
cmp dword [ebx + 0x14], 1
je 0x3011f326
mov eax, dword [eax + 0x44]
lea ebx, [eax + ebx - 0x1000]
mov eax, dword [ebx + 8]
lea eax, [eax + ebx + 0x18]
mov dword [ebp - 0x34], ebx
lea edi, [ebx + 0x18]
mov dword [ebp - 0x40], eax
mov esi, dword [ebp - 0x1c]
push 0
push dword [ebp - 0x24]
lea eax, [edi + 4]
push 0
push dword [ebp - 8]
push eax
call fcn.301d8efe
lea ecx, [ebp - 0x38]
push ecx
push dword [ebp - 0x14]
lea eax, [edi + 0xa]
push dword [ebp - 8]
push eax
push dword [ebp - 8]
push esi
call fcn.300c897c
add esi, eax
mov eax, dword [ebp - 0x38]
sub dword [ebp - 8], eax
lea eax, [eax + 1]
mov dword [ebp - 0x1c], eax
je 0x3011f422
cmp dword [0x301e6c84], 0
jne 0x3011f387
call fcn.3004c4f5
jmp 0x3011f38c
call fcn.301338ba
cmp eax, 0x3c
jne 0x3011f71f
cmp dword [0x301e6c84], 0
jne 0x3011f3a5
call fcn.3004c4f5
jmp 0x3011f3aa
call fcn.301338aa
mov esi, eax
push esi
push esi
push dword [ebp + 8]
mov dword [ebp + 0xc], esi
call fcn.3011e943
cmp dword [0x301e7628], 0
je 0x3011f3d8
mov eax, dword [0x301e48ac]
cmp dword [eax + 0x2c], 0
je 0x3011f3d8
push 1
push esi
push dword [ebp + 8]
call fcn.300cabbe
mov edx, dword [0x301e3f4c]
mov ecx, dword [ebp + 8]
lea edx, [edx + esi + 4]
mov dword [0x301e3f4c], edx
lea eax, [ecx + esi]
lea edx, [ebp - 0x38]
push edx
push eax
push dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
lea eax, [edi + eax*2 + 8]
push eax
push dword [ebp - 8]
push ecx
call fcn.300c897c
mov esi, eax
mov eax, dword [ebp - 0x38]
sub dword [ebp - 8], eax
add esi, dword [ebp + 8]
add dword [ebp - 0x1c], eax
cmp dword [ebp - 8], 0
jne 0x3011f377
cmp word [ebp - 4], 0
je 0x3011f584
cmp esi, dword [ebp - 0x14]
jb 0x3011f4ad
cmp dword [0x301e6c84], 0
jne 0x3011f442
call fcn.3004c4f5
jmp 0x3011f447
call fcn.301338ba
cmp eax, 0x3c
jne 0x3011f701
xor esi, esi
cmp dword [0x301e6c84], esi
jne 0x3011f461
call fcn.3004c4f5
jmp 0x3011f466
call fcn.301338aa
push eax
push eax
push dword [ebp + 8]
mov dword [ebp + 0xc], eax
call fcn.3011e943
cmp dword [0x301e7628], esi
je 0x3011f492
mov eax, dword [0x301e48ac]
cmp dword [eax + 0x2c], esi
je 0x3011f492
push 1
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.300cabbe
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea ecx, [eax + esi]
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x301e3f4c]
lea eax, [eax + ecx + 4]
mov dword [0x301e3f4c], eax
and dword [ebp - 4], 0
cmp dword [ebp - 0x24], 0
jle 0x3011f584
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x14]
sub eax, esi
shr eax, 2
push eax
call fcn.30055f82
mov dword [ebp - 0x1c], eax
lea ecx, [edi + 4]
movzx edx, word [ecx]
shl eax, 2
push eax
mov eax, dword [ebp - 4]
lea ecx, [ecx + edx*2 + 6]
push esi
lea eax, [ecx + eax*4]
push eax
call fcn.301d9156
add esi, eax
mov eax, dword [ebp - 4]
add eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x24]
mov dword [ebp - 4], eax
jge 0x3011f578
xor esi, esi
cmp dword [0x301e6c84], esi
jne 0x3011f50f
call fcn.3004c4f5
jmp 0x3011f514
call fcn.301338ba
cmp eax, 0x3c
jne 0x3011f70a
cmp dword [0x301e6c84], esi
jne 0x3011f52c
call fcn.3004c4f5
jmp 0x3011f531
call fcn.301338aa
push eax
push eax
push dword [ebp + 8]
mov dword [ebp + 0xc], eax
call fcn.3011e943
cmp dword [0x301e7628], esi
je 0x3011f55d
mov eax, dword [0x301e48ac]
cmp dword [eax + 0x2c], esi
je 0x3011f55d
push 1
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.300cabbe
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea ecx, [eax + esi]
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x301e3f4c]
lea eax, [eax + ecx + 4]
mov dword [0x301e3f4c], eax
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 4], eax
jl 0x3011f4bb
cmp dword [ebp - 0x28], 0
je 0x3011f5a7
lea eax, [ebp - 0x14]
push eax
push esi
push dword [ebp + 0x1c]
push dword [ebp - 0x30]
push dword [ebp + 8]
call fcn.3011e9f9
mov esi, eax
test esi, esi
je 0x3011f712
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x10], eax
jne 0x3011f5e4
lea ecx, [eax + 0xa]
push 1
mov dword [ebp - 0x28], ecx
shl ecx, 2
push ecx
shl eax, 2
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_573]
test eax, eax
je 0x3011f7a9
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x48]
mov dword [eax], ecx
cmp dword [ebp - 0x2c], 0
je 0x3011f65b
movzx eax, word [edi + 4]
push eax
lea eax, [edi + 0xa]
push eax
call fcn.301d8db9
mov dword [edi], eax
mov ecx, dword [0x301e48ac]
mov ecx, dword [ecx + 0x34]
lea eax, [ecx + eax*4]
inc dword [eax]
push dword [ebp - 0x20]
lea eax, [edi + 4]
push eax
call fcn.301d925b
test eax, eax
je 0x3011f625
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x3011f625
mov dword [eax], 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
inc dword [ebp - 0x10]
lea eax, [edi + 4]
mov dword [ecx + edx*4], eax
inc dword [ebx + 0xc]
inc dword [ebp - 0x48]
push edi
call fcn.301d8f91
mov edi, eax
cmp esi, dword [ebp - 0x14]
jb 0x3011f21c
cmp dword [0x301e6c84], 0
jne 0x3011f688
call fcn.3004c4f5
jmp 0x3011f68d
and dword [edi], 0
push 0
lea eax, [ebp - 0x50]
push eax
push edi
call fcn.301d9054
test eax, eax
jne 0x3011f608
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x50]
inc dword [ebp - 0x10]
mov dword [eax + edx*4], ecx
cmp dword [ebx + 0x14], 1
jne 0x3011f642
inc dword [ebx + 0xc]
jmp 0x3011f63a
call fcn.301338ba
cmp eax, 0x3c
jne 0x3011f739
xor esi, esi
cmp dword [0x301e6c84], esi
jne 0x3011f6a7
call fcn.3004c4f5
jmp 0x3011f6ac
call fcn.301338aa
push eax
push eax
push dword [ebp + 8]
mov dword [ebp + 0xc], eax
call fcn.3011e943
cmp dword [0x301e7628], esi
je 0x3011f6d8
mov eax, dword [0x301e48ac]
cmp dword [eax + 0x2c], esi
je 0x3011f6d8
push 1
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.300cabbe
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea ecx, [eax + esi]
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x301e3f4c]
lea eax, [eax + ecx + 4]
mov dword [0x301e3f4c], eax
jmp 0x3011f1ed
push 0
push 0x30303030
jmp 0x3011f719
push 0
push 0x74727578
jmp 0x3011f719
push esi
push 0x74727579
jmp 0x3011f719
push 0
push 0x7472757a
call dword [sym.imp.MSO.DLL_Ordinal_6848]
push 0
push 0x74727577
call dword [sym.imp.MSO.DLL_Ordinal_6848]
push 6
push dword [0x301e4ae8]
jmp 0x3011f806
mov ecx, dword [ebp + 0x10]
sub edi, ebx
sub edi, 0x18
cmp dword [ebp - 0x2c], 0
mov dword [ecx], eax
mov dword [ebx + 4], edi
je 0x3011f783
push dword [ebp - 0x10]
and dword [ebp - 0x3c], 0
push dword [ebp - 0xc]
call fcn.3011ef46
jmp 0x3011f783
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x48]
mov dword [eax], ebx
cmp dword [0x301e6c84], ebx
mov dword [ebp - 0x3c], ebx
jne 0x3011f779
call fcn.3004c4f5
jmp 0x3011f77e
call fcn.301338ba
mov ecx, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
cmp ecx, eax
je 0x3011f81b
push 2
shl ecx, 2
push ecx
shl eax, 2
push eax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_573]
test eax, eax
jne 0x3011f80b
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0xc]
xor edi, edi
cmp ecx, dword [eax]
jne 0x3011f7bc
mov dword [eax], edi
mov eax, dword [ebp - 0x18]
shl eax, 2
push eax
push dword [ebp - 0xc]
call dword [sym.imp.MSO.DLL_Ordinal_957]
cmp dword [ebp - 0x2c], edi
mov esi, dword [ebp - 0x44]
je 0x3011f7df
cmp dword [ebp - 0x3c], edi
je 0x3011f7df
mov dword [0x301e4ae8], esi
mov eax, dword [0x301e48ac]
mov ecx, dword [eax + 0x38]
shl ecx, 2
push ecx
push dword [eax + 0x34]
push edi
call fcn.30056452
mov eax, dword [0x301e48ac]
push dword [ebp - 0x54]
mov dword [eax + 0x50], edi
mov dword [0x301e4ae8], esi
push esi
call sub.MSVCRT.dll_longjmp
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x48]
mov ecx, dword [ebp - 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x3011f823
mov ecx, eax
jmp 0x3011f826
xor ecx, ecx
inc ecx
mov edx, dword [0x301e48ac]
pop edi
mov dword [edx + 0x50], ecx
mov ecx, dword [ebp - 0x44]
pop esi
mov dword [0x301e4ae8], ecx
pop ebx
leave
ret 0x18