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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x710
mov eax, dword [0x30179b58]
push ebx
push esi
push edi
xor edi, edi
push 0x54
mov dword [0x3017de88], edi
and word [eax + 0x254], 0xffef
lea eax, [ebp - 0x9c]
push eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], edi
push edi
call fcn.30001448
xor eax, eax
cmp dword [ebp + 0x1c], edi
mov dword [ebp - 0x34], edi
sete al
cmp dword [0x30179b7c], 6
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x18], edi
jge 0x30093582
call dword [sym.imp.KERNEL32.dll_GetACP]
push 1
pop esi
mov dword [0x3017bf24], eax
lea eax, [ebp - 0x510]
mov dword [0x30179b18], edi
mov dword [ebp - 0x14], esi
mov dword [0x3017a5f8], edi
push eax
call fcn.3007e963
lea eax, [ebp - 0x510]
mov dword [0x3017de2c], eax
mov eax, dword [0x3017dca0]
cmp dword [ebp + 0x1c], edi
mov dword [ebp - 0x1c], eax
mov eax, dword [0x3017f120]
mov dword [ebp - 0x38], eax
mov eax, dword [0x3017e348]
mov dword [ebp - 0x30], eax
mov dword [0x3017de90], esi
jne 0x300933ff
mov eax, dword [0x30179b58]
add eax, 0xbc
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x18c]
push edi
mov dword [0x3017f120], eax
lea eax, [ebp - 0x18c]
push eax
call fcn.30001d18
pop ecx
test eax, eax
mov eax, dword [ebp + 0x1c]
pop ecx
jne 0x300935bf
cmp eax, 7
mov dword [ebp - 0x4c], eax
je 0x30093436
cmp eax, 9
je 0x30093436
cmp eax, 2
jne 0x3009344c
mov eax, dword [0x3017dca0]
push dword [0x30179b58]
mov dword [ebp - 0x80], esi
mov dword [ebp - 0x1c], eax
call fcn.3000225c
cmp dword [ebp - 0x28], edi
je 0x30093467
cmp dword [0x30179b10], edi
jne 0x3009358e
call fcn.301661ac
mov dword [0x3017dfac], eax
cmp dword [0x30179b10], edi
jne 0x3009358e
call fcn.30165fce
mov dword [ebp - 4], eax
call fcn.300025d2
cmp dword [ebp - 4], 0xa
mov ebx, dword [ebp - 0x30]
je 0x30093801
cmp dword [0x30179b10], edi
jne 0x30093598
call fcn.30165fce
cmp dword [0x30179b10], edi
mov esi, eax
push esi
push ebx
jne 0x300935a2
call fcn.30166041
cmp dword [ebp - 0x28], edi
je 0x300934f4
cmp dword [0x30179b10], edi
jne 0x300934f4
mov eax, dword [0x3017dfac]
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x100
lea eax, [eax + esi + 4]
mov dword [0x3017dfac], eax
jb 0x300934f4
mov dword [ebp - 0x10], edi
call fcn.3000395f
mov ecx, dword [ebp - 0x20]
add ecx, 0x1f
cmp eax, ecx
jbe 0x300934f4
call fcn.3000395f
mov dword [ebp - 0x20], eax
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp - 4]
cmp edx, 1
je 0x30093504
cmp edx, 3
jne 0x3009350f
cmp eax, 0x85
jne 0x300936b2
cmp dword [0x30179b10], edi
je 0x30093537
cmp eax, 0x19
jg 0x300935ac
cmp eax, 0x19
je 0x300935bf
cmp eax, 0x12
jl 0x30093537
cmp eax, 0x13
jle 0x300935bf
lea ecx, [ebx + esi]
cmp edx, edi
mov dword [0x3017de8c], ecx
je 0x30093652
cmp edx, 5
je 0x30093652
cmp edx, 0xb
je 0x30093652
cmp eax, 0x18
jg 0x30093619
cmp eax, 0x16
jge 0x3009371c
cmp eax, 0x12
jne 0x30093652
mov eax, 0xff
mov dword [ebp - 4], eax
jmp 0x30093652
movzx eax, word [0x3017e056]
jmp 0x300933a1
call fcn.300bc460
jmp 0x30093478
call fcn.300bc450
jmp 0x3009349e
call fcn.300bc402
jmp 0x300934b3
cmp eax, 0x5c
jg 0x300935e7
cmp eax, 0x5c
je 0x300935bf
cmp eax, 0x40
jne 0x30093537
push dword [0x30179b58]
call fcn.30026c8e
call fcn.300932c7
mov dword [ebp - 0x14], edi
mov dword [0x3017d5f8], 1
mov dword [0x30179b14], edi
jmp 0x30093926
cmp eax, 0xb8
jl 0x30093537
cmp eax, 0xb9
jle 0x300935bf
cmp eax, 0xc6
je 0x300935bf
cmp eax, 0xd2
jle 0x30093537
cmp eax, 0xd4
jle 0x300935bf
cmp eax, 0x1bd
jmp 0x300935b9
cmp eax, 0x23
jg 0x3009362f
cmp eax, 0x23
je 0x3009371c
cmp eax, 0x19
jmp 0x3009356f
mov ecx, 0x9a
cmp eax, ecx
jg 0x300936c8
cmp eax, ecx
je 0x30093575
cmp eax, 0x59
jl 0x30093652
cmp eax, 0x5a
jle 0x3009371c
cmp eax, 0x42
jg 0x30093743
cmp eax, 0x42
je 0x30093733
cmp eax, 0x31
jne 0x30093786
push dword [0x30179b7c]
movsx esi, word [ebx + 4]
push ebx
lea eax, [ebp - 0xf4]
push eax
call fcn.30068269
cmp esi, 0x7fff
je 0x300936a0
cmp esi, 0x51
je 0x300936a0
cmp esi, 0x40
mov dword [ebp - 0xa4], 0x48
jg 0x300936a6
mov dword [ebp - 0xa4], esi
lea eax, [ebp - 0xf4]
push eax
call fcn.30017d34
cmp dword [0x30179b10], edi
jne 0x30093b90
call fcn.30165fce
jmp 0x300939f4
cmp eax, 0xb9
jg 0x300936e4
cmp eax, 0xb8
jge 0x30093575
cmp eax, 0x9c
jmp 0x3009356f
mov ecx, eax
sub ecx, 0xd3
je 0x30093575
dec ecx
dec ecx
je 0x30093575
sub ecx, 5
je 0x30093575
sub ecx, 5
je 0x30093575
sub ecx, 0xcf
je 0x3009371c
sub ecx, 0xf
jmp 0x3009356f
cmp edx, 7
je 0x30093652
cmp edx, 9
jne 0x30093575
jmp 0x30093652
push 0x3017bf24
push ebx
call fcn.300945c6
jmp 0x300936b2
mov ecx, eax
sub ecx, 0x85
je 0x30093a96
sub ecx, 0xd
je 0x30093a86
sub ecx, 0x4d
je 0x30093a34
sub ecx, 8
je 0x300939fc
sub ecx, 4
je 0x300939d5
sub ecx, 0x11
je 0x300937e6
sub ecx, 0xf60
je 0x300936b2
cmp edx, edi
jne 0x300936b2
cmp eax, 0x1c2
jle 0x300937a4
mov eax, dword [0x30179b58]
or byte [eax + 0x255], 0x10
mov eax, dword [ebp - 4]
cmp edx, edi
jne 0x300936b2
cmp eax, 0x800
jl 0x300936b2
cmp eax, 0x8ff
jg 0x300936b2
cmp dword [0x30179b10], edi
je 0x300937d5
cmp eax, 0x809
je 0x300936b2
lea ecx, [ebp - 0x3c]
push ecx
push esi
push eax
push ebx
call fcn.300932de
jmp 0x300936b2
push dword [ebp + 0x1c]
lea eax, [ebp - 4]
push eax
push esi
push ebx
call fcn.30093cf2
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 4], 0xa
jne 0x3009348d
push edi
call fcn.30165d1f
mov eax, dword [ebp - 0xc]
cmp eax, edi
mov dword [ebp - 8], eax
je 0x30093926
xor edi, edi
mov dword [0x3017c814], edi
movzx cx, byte [eax + 0xe]
mov word [ebp - 0x390], cx
movzx ecx, cx
push ecx
lea ecx, [ebp - 0x38e]
push ecx
add eax, 0xf
push eax
call fcn.30028c12
push dword [ebp + 8]
call fcn.30165c4f
test eax, eax
je 0x300935bf
cmp dword [0x30179b10], edi
jne 0x30093860
mov eax, dword [ebp - 8]
push dword [eax + 8]
call fcn.3016616a
mov eax, dword [ebp - 8]
mov dword [0x3017e348], ebx
movzx esi, word [eax + 0xc]
shr esi, 8
mov eax, esi
dec eax
dec eax
je 0x30093b9a
cmp dword [ebp - 0x80], edi
je 0x30093887
push dword [ebp - 0x1c]
call fcn.3000225c
push dword [ebp - 0x40]
mov eax, esi
push dword [ebp + 0x20]
neg eax
push 3
push dword [ebp + 0x1c]
sbb eax, eax
push dword [ebp + 0x18]
and eax, 0x30
add eax, 0x10
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x390]
push eax
push dword [ebp + 8]
call fcn.30092da6
mov edi, eax
test edi, edi
je 0x300938ce
cmp dword [ebp + 0x1c], 1
je 0x30093ba1
cmp dword [ebp + 0x1c], 3
je 0x30093ba1
mov ecx, dword [0x3017dca0]
mov eax, dword [ebp - 8]
mov dx, word [ecx + 0x20]
mov al, byte [eax + 0xc]
xor al, dl
and eax, 3
xor eax, edx
cmp esi, 6
mov word [ecx + 0x20], ax
jne 0x3009390c
mov ecx, dword [0x3017dca0]
mov al, byte [ecx + 0x20]
lea edx, [ecx + 0x80]
and eax, 3
mov ecx, dword [edx]
shl eax, 0xc
and ch, 0xcf
or eax, ecx
mov dword [edx], eax
test edi, edi
je 0x30093ba9
mov eax, dword [ebp - 8]
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 8], eax
jne 0x30093815
xor edi, edi
mov eax, dword [0x3017e478]
cmp eax, edi
je 0x30093bb7
mov ecx, dword [ebp - 0x2c]
cmp ecx, edi
je 0x3009394b
mov eax, dword [eax]
cmp eax, edi
je 0x3009394b
shl ecx, 2
push ecx
push eax
call dword [0x3017ba7c]
mov dword [0x3017de2c], edi
mov dword [0x3017e348], edi
push 1
call fcn.30165d1f
mov eax, dword [ebp - 0xc]
cmp eax, edi
je 0x30093999
mov ecx, dword [eax + 4]
mov esi, dword [eax]
cmp ecx, edi
je 0x30093980
movzx eax, word [ecx]
lea eax, [eax + eax + 2]
push eax
push ecx
call dword [0x3017ba7c]
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0xe]
lea ecx, [ecx + ecx + 0xf]
push ecx
push eax
call dword [0x3017ba7c]
mov eax, esi
cmp esi, edi
mov dword [ebp - 0xc], eax
jne 0x30093965
cmp dword [ebp + 0x1c], edi
je 0x300939b2
cmp dword [ebp + 0x1c], 5
je 0x300939b2
cmp dword [ebp + 0x1c], 0xb
je 0x300939b2
push dword [ebp - 0x1c]
call fcn.3000225c
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
neg ecx
sbb ecx, ecx
mov dword [0x3017f120], eax
mov eax, dword [ebp - 0x14]
and ecx, 2
inc ecx
neg eax
pop edi
sbb eax, eax
pop esi
and eax, ecx
pop ebx
leave
ret 0x1c
push ebx
push edi
call fcn.300a1744
test eax, eax
jne 0x300936b2
mov dword [0x3017bf28], 1
push ebx
call fcn.300a1974
mov dword [ebp - 4], eax
jmp 0x300937f7
movzx edi, word [ebx]
test edi, edi
je 0x30093a2d
mov esi, dword [ebx + 2]
movsx eax, word [esi]
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.300290ee
push 0
lea eax, [ebp - 0x14c]
mov dword [ebp - 0xfc], edi
push eax
call fcn.3008cb6c
mov word [esi], ax
xor edi, edi
jmp 0x300936b2
cmp dword [ebp - 8], edi
je 0x300936b2
mov al, byte [ebx]
test al, al
jbe 0x300936b2
movzx eax, al
push 0x1010
lea eax, [eax + eax + 2]
push eax
lea eax, [ebp - 0x24]
push eax
call dword [0x3017b9d8]
test eax, eax
je 0x30093a79
push dword [ebp - 0x24]
push ebx
call fcn.30167d86
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
jmp 0x300936b2
push 6
push dword [0x3017f120]
call fcn.3016b55f
call fcn.300932c7
push ebx
call fcn.300642c0
jmp 0x300936b2
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x710]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push ebx
call fcn.30094531
cmp dword [ebp + 0x1c], 1
je 0x300936b2
cmp dword [ebp + 0x1c], 0xb
je 0x300936b2
mov eax, dword [0x30179b58]
mov word [ebp - 0x38e], 0x5b
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
movzx ecx, word [eax]
push ecx
lea ecx, [ebp - 0x38c]
push ecx
add eax, 2
push eax
call fcn.30028c12
mov eax, dword [0x30179b58]
mov ecx, dword [eax + 0xc]
mov ecx, dword [ecx]
movzx ecx, word [ecx]
mov word [ebp + ecx*2 - 0x38c], 0x5d
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 8]
mov eax, dword [eax]
movzx edx, byte [ecx + 0xe]
movzx eax, word [eax]
push edx
lea eax, [ebp + eax*2 - 0x38a]
push eax
add ecx, 0xf
push ecx
call fcn.30028c12
mov eax, dword [0x30179b58]
mov ecx, dword [ebp - 8]
mov eax, dword [eax + 0xc]
movzx cx, byte [ecx + 0xe]
mov eax, dword [eax]
mov ax, word [eax]
add ax, cx
inc eax
inc eax
mov word [ebp - 0x390], ax
movzx eax, ax
push eax
lea eax, [ebp - 0x38e]
push eax
call fcn.30016d67
push 0x1020
push 8
mov esi, eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [0x30179b58]
mov dword [ebp - 0x48], esi
mov eax, dword [eax + 0xc]
add eax, 0x18
push eax
call fcn.3014e0c6
mov eax, dword [0x30179b58]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x18]
inc dword [ebp - 0x18]
mov dword [esi + 0x30], eax
jmp 0x300936b2
call fcn.300bc460
jmp 0x300939f4
xor edi, edi
jmp 0x3009390c
mov dword [ebp - 0x14], edi
jmp 0x30093924
push 0
call fcn.30165d1f
xor edi, edi
jmp 0x300935bf
cmp dword [ebp + 0x1c], edi
je 0x30093bc6
cmp dword [ebp + 0x1c], 5
jne 0x3009394b
cmp dword [ebp - 0x14], edi
je 0x3009394b
push edi
call fcn.3016ae84
jmp 0x3009394b