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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6e0
mov eax, dword [0x3001d1b0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov dword [ebp - 0x614], eax
mov eax, dword [ebp + 0x18]
push esi
push edi
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x630], eax
mov eax, dword [0x302ae658]
inc edi
cmp dword [eax + 0x120], ebx
mov dword [ebp - 0x634], ebx
mov dword [ebp - 0x604], ebx
mov dword [ebp - 0x620], ebx
mov dword [ebp - 0x638], edi
je 0x30100660
mov ecx, dword [eax + 0x11c]
jmp 0x30100666
mov ecx, dword [eax + 0x388]
mov dword [0x3022c720], ebx
and dword [eax + 0x220], 0xffffffef
mov dword [ebp - 0x61c], ecx
mov dword [0x3022c728], ebx
call fcn.300cae15
push 0x54
lea eax, [ebp - 0x6a0]
push ebx
push eax
mov dword [ebp - 0x5fc], ebx
mov dword [ebp - 0x600], ebx
call sub.MSVCR80.dll_memset
xor eax, eax
add esp, 0xc
cmp dword [ebp + 0x1c], ebx
mov dword [ebp - 0x628], ebx
sete al
cmp dword [0x30209e20], 6
mov dword [ebp - 0x610], ebx
mov dword [ebp - 0x62c], ebx
mov dword [ebp - 0x618], eax
jl 0x301006d7
mov dword [0x30229d18], 0x4b0
jmp 0x301006e2
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [0x30229d18], eax
or dword [ebp - 0x63c], 0xffffffff
mov esi, 0x180
push esi
lea eax, [ebp - 0x388]
push eax
mov dword [ebp - 0x644], ebx
mov dword [0x3022c724], ebx
mov dword [ebp - 0x608], edi
mov dword [0x30229d30], ebx
call fcn.300dc2df
lea eax, [ebp - 0x388]
push eax
push esi
mov ecx, 0x3022c73c
call fcn.3002f41c
cmp dword [ebp + 0x1c], ebx
mov eax, dword [0x302ae8d4]
mov dword [ebp - 0x60c], eax
mov eax, dword [0x302ae8d0]
mov dword [ebp - 0x640], eax
mov eax, dword [0x3022a1d4]
mov dword [ebp - 0x5f8], eax
mov dword [0x3022c718], edi
jne 0x30100761
mov eax, dword [0x302ae658]
add eax, 0xe0
mov dword [ebp - 0x624], eax
lea eax, [ebp - 0x6e0]
push ebx
push eax
mov dword [0x3022c714], ebx
mov dword [0x302ae8d0], eax
call sub.MSVCR80.dll__setjmp3
pop ecx
test eax, eax
mov eax, dword [ebp + 0x1c]
pop ecx
jne 0x30100fad
cmp eax, 7
mov dword [ebp - 0x650], eax
je 0x3010079b
cmp eax, 9
je 0x3010079b
cmp eax, 2
jne 0x301007b7
mov eax, dword [0x302ae8d4]
push dword [0x302ae658]
mov dword [ebp - 0x684], edi
mov dword [ebp - 0x60c], eax
call fcn.300bb581
cmp dword [ebp - 0x618], ebx
je 0x301007d1
cmp dword [0x3022c70c], ebx
jne 0x301007e0
call fcn.3007b28f
mov dword [0x3022bc9c], eax
cmp dword [0x3022c70c], ebx
jne 0x301007e0
call fcn.3007c3cc
jmp 0x301007e5
call fcn.3011c718
mov dword [ebp - 0x5f4], eax
call fcn.300bb599
mov edi, dword [ebp - 0x5f8]
jmp 0x30100df8
cmp dword [0x3022c70c], ebx
jne 0x3010080a
call fcn.3007c3cc
jmp 0x3010080f
call fcn.3011c708
push 0x2020
mov esi, eax
push esi
push edi
call fcn.300ff1ff
cmp dword [ebp - 0x618], ebx
je 0x30100870
cmp dword [0x3022c70c], ebx
jne 0x30100870
mov eax, dword [0x3022bc9c]
inc dword [ebp - 0x604]
cmp dword [ebp - 0x604], 0x100
lea eax, [eax + esi + 4]
mov dword [0x3022bc9c], eax
jb 0x30100870
mov dword [ebp - 0x604], ebx
call fcn.3006546d
mov ecx, dword [ebp - 0x620]
add ecx, 0x1f
cmp eax, ecx
jbe 0x30100870
call fcn.3006546d
mov dword [ebp - 0x620], eax
mov edx, dword [ebp + 0x1c]
cmp edx, 1
mov eax, dword [ebp - 0x5f4]
je 0x30100883
cmp edx, 3
jne 0x301008a6
cmp eax, 0x85
je 0x301008a6
cmp dword [0x3022c70c], ebx
jne 0x3010089c
call fcn.3007c3cc
jmp 0x30100df2
call fcn.3011c718
jmp 0x30100df2
cmp dword [0x3022c70c], ebx
je 0x3010090d
cmp eax, 0xb9
jg 0x301008e5
cmp eax, 0xb8
jge 0x30100e16
cmp eax, 0x12
jl 0x3010090d
cmp eax, 0x13
jle 0x30100e16
cmp eax, 0x19
je 0x30100e16
cmp eax, 0x40
je 0x30100e16
cmp eax, 0x5c
jmp 0x30100907
cmp eax, 0xc6
je 0x30100e16
cmp eax, 0xd2
jle 0x3010090d
cmp eax, 0xd4
jle 0x30100e16
cmp eax, 0x1bd
je 0x30100e16
cmp edx, ebx
lea ecx, [esi + edi]
mov dword [0x3022c71c], ecx
je 0x301009b5
cmp edx, 5
je 0x301009b5
cmp edx, 0xa
je 0x301009b5
cmp eax, 0xb9
jg 0x30100973
cmp eax, 0xb8
jge 0x301009aa
cmp eax, 0x23
jg 0x3010095b
je 0x301009a0
cmp eax, 0x12
je 0x301009aa
cmp eax, 0x15
jle 0x301009b5
cmp eax, 0x18
jle 0x301009a0
cmp eax, 0x19
je 0x301009aa
jmp 0x301009b5
cmp eax, 0x59
jl 0x301009b5
cmp eax, 0x5a
jle 0x301009a0
cmp eax, 0x9a
je 0x301009aa
cmp eax, 0x9c
jmp 0x30100957
mov ecx, eax
sub ecx, 0xd3
je 0x301009aa
dec ecx
dec ecx
je 0x301009aa
sub ecx, 5
je 0x301009aa
sub ecx, 5
je 0x301009aa
sub ecx, 0xcf
je 0x301009a0
sub ecx, 0xf
je 0x301009aa
sub ecx, 0x6db
jmp 0x30100957
cmp edx, 7
je 0x301009b5
cmp edx, 9
je 0x301009b5
mov eax, 0xff
mov dword [ebp - 0x5f4], eax
mov ecx, 0xe7
cmp eax, ecx
jg 0x30100c95
je 0x3010088a
mov ecx, eax
sub ecx, 0x31
je 0x30100bcb
sub ecx, 0x11
je 0x30100b9d
sub ecx, 0x43
je 0x30100a75
sub ecx, 0xd
je 0x30100a44
sub ecx, 0x4d
jne 0x30100ce4
cmp dword [ebp - 0x600], ebx
je 0x3010088a
cmp byte [edi], bl
jbe 0x3010088a
push dword [ebp - 0x5f8]
call fcn.3007f751
mov esi, eax
inc esi
lea eax, [esi + esi]
push eax
call dword [sym.imp.MSO.dll_Ordinal_815]
mov edi, eax
cmp edi, ebx
je 0x30100e27
push esi
push edi
push dword [ebp - 0x5f8]
call fcn.3007f693
mov eax, dword [ebp - 0x600]
mov dword [eax + 4], edi
jmp 0x30100dba
call fcn.300ff2a7
push edi
call fcn.300a928d
mov ecx, dword [ebp - 0x61c]
add ecx, 0x298
cmp ecx, ebx
je 0x3010088a
movsx eax, word [edi]
push eax
lea eax, [edi + 2]
push eax
call fcn.3002c5ad
jmp 0x3010088a
cmp dword [ebp + 0x1c], ebx
jne 0x30100a8b
test dword [0x302ad074], 0x2000000
jne 0x30100a8b
xor eax, eax
inc eax
jmp 0x30100a8d
xor eax, eax
push dword [ebp + 0x24]
mov esi, 0x102
push eax
lea eax, [ebp - 0x6a0]
push eax
push esi
lea eax, [ebp - 0x58c]
push eax
lea eax, [ebp - 0x5fc]
push eax
lea eax, [ebp - 0x600]
push eax
push edi
call fcn.30100395
test eax, eax
je 0x30100e41
cmp dword [ebp + 0x1c], 1
je 0x3010088a
cmp dword [ebp + 0x1c], 0xa
je 0x3010088a
push 0x5b
push esi
lea eax, [ebp - 0x208]
push eax
mov word [ebp - 0x208], bx
call fcn.3007e734
push 0x101
lea eax, [ebp - 0x208]
push eax
mov eax, dword [0x302ae658]
mov eax, dword [eax + 0xc]
push dword [eax]
call fcn.3007e1cb
push 0x5d
push esi
lea eax, [ebp - 0x208]
push eax
call fcn.3007e734
mov eax, dword [ebp - 0x600]
movzx eax, word [eax + 0xe]
movzx ecx, word [ebp - 0x208]
add ecx, eax
cmp ecx, esi
jae 0x30100e49
push esi
lea ecx, [ebp - 0x208]
push ecx
push eax
mov eax, dword [ebp - 0x600]
add eax, 0x10
push eax
call fcn.3007e120
movzx eax, word [ebp - 0x208]
push eax
lea eax, [ebp - 0x206]
push eax
call fcn.300acf21
mov esi, eax
push 8
lea eax, [ebp - 0x64c]
push eax
mov eax, dword [0x302ae658]
mov dword [ebp - 0x64c], esi
mov eax, dword [eax + 0xc]
add eax, 0x18
push eax
call fcn.30082c59
mov eax, dword [0x302ae658]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 0x610]
inc dword [ebp - 0x610]
mov dword [esi + 0x30], eax
jmp 0x3010088a
push 0x30229d18
push edi
call fcn.300ff466
cmp byte [0x30225c90], bl
je 0x30100dba
push 1
push dword [0x30229d18]
call fcn.300d620a
mov dword [0x30229d18], eax
jmp 0x3010088a
mov al, byte [0x30225c90]
cmp al, bl
je 0x30100bf8
cmp dword [0x30209e24], 5
jne 0x30100bf8
mov ecx, dword [0x302ae658]
cmp dword [ecx + 0xa4], ebx
jne 0x30100bf8
cmp dword [0x3022bcbc], ebx
jne 0x30100bf8
xor edi, edi
inc edi
jmp 0x30100bfa
xor edi, edi
mov ecx, dword [ebp - 0x5f8]
movsx esi, word [ecx + 4]
cmp al, bl
mov eax, dword [0x30209e20]
je 0x30100c19
cmp eax, 6
jl 0x30100c19
or dword [0x30225cb8], 0x40
mov ecx, dword [ebp - 0x63c]
inc ecx
cmp ecx, 4
jne 0x30100c28
push 5
pop ecx
push ecx
push eax
push dword [ebp - 0x5f8]
lea eax, [ebp - 0x5f0]
push eax
call fcn.300baf38
cmp esi, 0x7fff
je 0x30100c51
cmp esi, 0x51
je 0x30100c51
cmp esi, 0x40
jle 0x30100c51
push 0x48
pop esi
push esi
lea ecx, [ebp - 0x5f0]
call fcn.3002d26d
lea eax, [ebp - 0x5f0]
push eax
call fcn.300f30ba
cmp edi, ebx
je 0x30100c7d
mov eax, dword [0x302ae658]
add eax, 0xa4
cmp dword [eax], ebx
je 0x30100c7d
mov dword [eax], ebx
cmp byte [0x30225c90], bl
je 0x30100dba
and dword [0x30225cb8], 0xffffffbf
jmp 0x30100dba
mov ecx, eax
sub ecx, 0xeb
je 0x30100da8
sub ecx, 0x11
je 0x30100d89
sub ecx, 0x790
je 0x30100d6f
sub ecx, 0xf
je 0x30100d50
sub ecx, 0x7c1
jne 0x30100ce7
push ebx
push 0x6363616a
call dword [sym.imp.MSO.dll_Ordinal_6848]
mov dword [0x30229d1c], 1
jmp 0x3010088a
mov edx, dword [ebp + 0x1c]
cmp edx, ebx
jne 0x3010088a
cmp eax, 0x8a8
jl 0x30100cfd
cmp eax, 0x8ff
jle 0x30100d04
cmp eax, 0x87f
jne 0x30100d31
cmp dword [0x3022c70c], ebx
je 0x30100d13
cmp eax, 0x809
je 0x30100d31
push ebx
lea ecx, [ebp - 0x624]
push ecx
push esi
push eax
push edi
call fcn.300ff2be
test eax, eax
jne 0x3010088a
mov eax, dword [ebp - 0x5f4]
cmp eax, 0x8a7
jle 0x3010088a
mov eax, dword [0x302ae658]
or dword [eax + 0x220], 0x2000
jmp 0x3010088a
mov eax, dword [0x302ae658]
mov ecx, dword [edi + 0xc]
add eax, 0x314
shl ecx, 0x1a
xor ecx, dword [eax]
and ecx, 0x4000000
xor dword [eax], ecx
jmp 0x3010088a
mov eax, dword [0x302ae658]
mov ecx, dword [edi + 0xc]
add eax, 0x314
shl ecx, 0xc
xor ecx, dword [eax]
and ecx, 0x1000
jmp 0x30100d68
push 0x2020
lea eax, [ebp - 0x644]
push eax
push dword [ebp + 0x1c]
lea eax, [ebp - 0x5f4]
push eax
push esi
push edi
call fcn.300ffdab
jmp 0x30100df8
push esi
call fcn.30105ba5
push eax
push edi
push ebx
call fcn.30130d72
test eax, eax
je 0x30100dc5
mov edi, dword [ebp - 0x5f8]
jmp 0x3010088a
push ebx
push 0x67647666
call dword [sym.imp.MSO.dll_Ordinal_6848]
mov eax, dword [0x302ae658]
push 0x2020
mov dword [0x30229d1c], 1
or dword [eax + 0x314], 0x20
push edi
call fcn.30124ac6
mov dword [ebp - 0x5f4], eax
cmp dword [ebp - 0x5f4], 0xa
jne 0x301007fb
push ebx
call fcn.3007c1ca
mov esi, dword [ebp - 0x5fc]
jmp 0x30100f84
push ebx
push 0x74727571
call dword [sym.imp.MSO.dll_Ordinal_6848]
jmp 0x30100fad
push ebx
push 0x67647470
call dword [sym.imp.MSO.dll_Ordinal_6848]
push 6
push dword [0x302ae8d0]
call dword [sym.imp.MSVCR80.dll_longjmp]
push ebx
push 0x67647571
jmp 0x30100e1c
push ebx
push 0x787a6668
jmp 0x30100e1c
mov dword [0x30229d2c], ebx
mov ax, word [esi + 0xe]
mov word [ebp - 0x208], ax
movzx eax, ax
add eax, eax
push eax
lea eax, [ebp - 0x206]
push eax
lea eax, [esi + 0x10]
push eax
call fcn.3002660a
cmp word [ebp - 0x206], bx
jne 0x30100e88
mov word [ebp - 0x208], bx
push dword [ebp - 0x614]
call fcn.3007c722
test eax, eax
je 0x30100f94
cmp dword [0x3022c70c], ebx
jne 0x30100eab
push dword [esi + 8]
call fcn.3007c61d
mov eax, dword [ebp - 0x5f8]
mov dword [0x3022a1d4], eax
movzx edi, byte [esi + 0xd]
mov eax, edi
dec eax
dec eax
je 0x30100f7c
cmp dword [ebp - 0x684], ebx
je 0x30100ed7
push dword [ebp - 0x60c]
call fcn.300bb581
cmp dword [0x30209e24], 2
jne 0x30100eea
cmp dword [ebp + 0x1c], 7
jne 0x30100eea
xor eax, eax
jmp 0x30100f44
lea eax, [ebp - 0x638]
push eax
lea eax, [ebp - 0x62c]
push eax
push dword [ebp - 0x634]
mov eax, edi
push dword [ebp + 0x20]
dec eax
push 3
push dword [ebp + 0x1c]
neg eax
push dword [ebp - 0x630]
sbb eax, eax
and eax, 0xffffffd0
add eax, 0x40
push eax
push dword [ebp + 0x10]
lea eax, [ebp - 0x208]
push 0x102
push eax
push dword [ebp - 0x614]
call fcn.300ff7b1
cmp eax, ebx
je 0x30100f44
cmp dword [ebp + 0x1c], 1
je 0x30100f9f
cmp dword [ebp + 0x1c], 3
je 0x30100f9f
movzx edx, byte [esi + 0xc]
mov ecx, dword [0x302ae8d4]
xor dl, byte [ecx + 0x20]
and edx, 3
xor word [ecx + 0x20], dx
cmp edi, 6
jne 0x30100f7e
mov ecx, dword [0x302ae8d4]
lea edx, [ecx + 0x94]
movzx ecx, word [ecx + 0x20]
shl ecx, 0xb
xor ecx, dword [edx]
and ecx, 0x1800
xor dword [edx], ecx
jmp 0x30100f7e
xor eax, eax
cmp eax, ebx
je 0x30100fa7
mov esi, dword [esi]
cmp esi, ebx
mov dword [ebp - 0x600], esi
jne 0x30100e51
jmp 0x30100fe3
push ebx
push 0x74727575
jmp 0x30100e1c
mov dword [ebp - 0x608], eax
jmp 0x30100fe3
push ebx
call fcn.3007c1ca
push dword [0x302ae658]
call fcn.300ff33e
call fcn.300ff2a7
mov ecx, dword [0x3022c708]
cmp ecx, ebx
mov dword [ebp - 0x608], ebx
je 0x30100fe3
call fcn.3002eec2
push dword [0x3022c708]
call fcn.300ac4ef
mov dword [0x3022c708], ebx
mov ecx, 0x3022c73c
mov dword [0x3022a1d4], ebx
call fcn.3002f446
push 1
call fcn.3007c1ca
cmp dword [ebp - 0x5fc], ebx
je 0x3010102c
mov esi, dword [sym.imp.MSO.dll_Ordinal_652]
mov eax, dword [ebp - 0x5fc]
cmp dword [eax + 4], ebx
mov edi, dword [eax]
je 0x3010101a
push dword [eax + 4]
call esi
push dword [ebp - 0x5fc]
call esi
cmp edi, ebx
mov dword [ebp - 0x5fc], edi
jne 0x30101008
mov eax, dword [0x302ae658]
and dword [eax + 0x314], 0xffffffdf
cmp dword [ebp + 0x1c], ebx
je 0x30101054
cmp dword [ebp + 0x1c], 5
je 0x30101054
cmp dword [ebp + 0x1c], 0xa
je 0x30101054
push dword [ebp - 0x60c]
call fcn.300bb581
mov eax, dword [ebp - 0x640]
xor ecx, ecx
cmp dword [ebp - 0x628], ebx
mov dword [0x302ae8d0], eax
mov eax, dword [ebp - 0x608]
setne cl
neg eax
sbb eax, eax
pop edi
pop esi
mov dword [0x3022c728], ebx
pop ebx
lea ecx, [ecx + ecx + 1]
and eax, ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.3020156b
leave
ret 0x20