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

Disassembly:
push ebp
lea ebp, [esp - 0x610]
sub esp, 0x6c8
mov eax, dword [section..cdata]
push ebx
xor ebx, ebx
mov dword [ebp + 0x60c], eax
mov eax, dword [0x301e48a8]
push esi
mov dword [0x301e6c98], ebx
and dword [eax + 0x2a0], 0xffffffef
push edi
mov dword [ebp + 0x58], ebx
mov dword [ebp + 0x4c], ebx
mov dword [ebp + 0x70], ebx
mov dword [ebp + 0x54], ebx
mov dword [0x301e577c], ebx
call fcn.300f4355
push 0x54
lea eax, [ebp - 0x20]
push eax
push ebx
mov dword [ebp + 0x74], ebx
mov dword [ebp + 0x78], ebx
call fcn.30056452
xor eax, eax
cmp dword [ebp + 0x62c], ebx
mov dword [ebp + 0x40], ebx
sete al
cmp dword [0x301e3340], 6
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x5c], eax
jl 0x30120092
mov dword [0x301e8b20], 0x4b0
jmp 0x3012009d
call dword [sym.imp.KERNEL32.dll_GetACP]
mov dword [0x301e8b20], eax
or dword [ebp + 0x50], 0xffffffff
mov esi, 0x180
xor edi, edi
push esi
lea eax, [ebp + 0x288]
inc edi
push eax
mov dword [ebp + 0x48], ebx
mov dword [0x301e5778], ebx
mov dword [ebp + 0x6c], edi
mov dword [0x301e4e90], ebx
call fcn.30101bd1
cmp dword [ebp + 0x62c], ebx
lea eax, [ebp + 0x288]
mov dword [0x301e3f98], eax
mov eax, dword [0x301e491c]
mov dword [ebp + 0x68], eax
mov eax, dword [0x301e4ae8]
mov dword [ebp + 0x44], eax
mov eax, dword [0x301e7830]
mov dword [0x301e3f94], esi
mov dword [ebp + 0x80], eax
mov dword [0x301e6c90], edi
jne 0x3012010f
mov eax, dword [0x301e48a8]
add eax, 0xc4
mov dword [ebp + 0x3c], eax
lea eax, [ebp - 0xb8]
push ebx
push eax
mov dword [0x301e6c8c], ebx
mov dword [0x301e4ae8], eax
call sub.MSVCRT.dll__setjmp3
test eax, eax
mov edi, dword [ebp + 0x62c]
pop ecx
pop ecx
jne 0x3012085d
cmp edi, 7
mov dword [ebp + 0x30], edi
je 0x30120149
cmp edi, 9
je 0x30120149
cmp edi, 2
jne 0x30120163
mov eax, dword [0x301e491c]
push dword [0x301e48a8]
mov dword [ebp - 4], 1
mov dword [ebp + 0x68], eax
call fcn.30056032
cmp dword [ebp + 0x5c], ebx
je 0x3012017a
cmp dword [0x301e6c84], ebx
jne 0x30120189
call fcn.300413ff
mov dword [0x301e3f4c], eax
cmp dword [0x301e6c84], ebx
jne 0x30120189
call fcn.3004c4f5
jmp 0x3012018e
call fcn.301338ba
mov dword [ebp + 0x7c], eax
call fcn.30013c0d
cmp dword [ebp + 0x7c], 0xa
jne 0x301201b0
push ebx
call fcn.30047187
mov esi, dword [ebp + 0x78]
jmp 0x30120837
mov edi, dword [ebp + 0x62c]
cmp dword [0x301e6c84], ebx
jne 0x301201bf
call fcn.3004c4f5
jmp 0x301201c4
call fcn.301338aa
push 0x2020
mov esi, eax
push esi
push dword [ebp + 0x80]
call fcn.3011e943
cmp dword [ebp + 0x5c], ebx
je 0x30120218
cmp dword [0x301e6c84], ebx
jne 0x30120218
mov eax, dword [0x301e3f4c]
inc dword [ebp + 0x70]
cmp dword [ebp + 0x70], 0x100
lea eax, [eax + esi + 4]
mov dword [0x301e3f4c], eax
jb 0x30120218
mov dword [ebp + 0x70], ebx
call fcn.30056071
mov ecx, dword [ebp + 0x54]
add ecx, 0x1f
cmp eax, ecx
jbe 0x30120218
call fcn.30056071
mov dword [ebp + 0x54], eax
cmp edi, 1
mov eax, dword [ebp + 0x7c]
je 0x30120225
cmp edi, 3
jne 0x30120230
cmp eax, 0x85
jne 0x30120378
mov edx, dword [0x301e6c84]
cmp edx, ebx
je 0x30120299
cmp eax, 0xb9
jg 0x30120271
cmp eax, 0xb8
jge 0x301206e9
cmp eax, 0x12
jl 0x30120299
cmp eax, 0x13
jle 0x301206e9
cmp eax, 0x19
je 0x301206e9
cmp eax, 0x40
je 0x301206e9
cmp eax, 0x5c
jmp 0x30120293
cmp eax, 0xc6
je 0x301206e9
cmp eax, 0xd2
jle 0x30120299
cmp eax, 0xd4
jle 0x301206e9
cmp eax, 0x1bd
je 0x301206e9
mov ecx, dword [ebp + 0x80]
add ecx, esi
cmp edi, ebx
mov dword [0x301e6c94], ecx
je 0x30120333
cmp edi, 5
je 0x30120333
cmp edi, 0xb
je 0x30120333
cmp eax, 0xb9
jg 0x301202fa
cmp eax, 0xb8
jge 0x3012032b
cmp eax, 0x23
jg 0x301202e2
je 0x30120321
cmp eax, 0x12
je 0x3012032b
cmp eax, 0x15
jle 0x30120333
cmp eax, 0x18
jle 0x30120321
cmp eax, 0x19
jmp 0x3012031d
cmp eax, 0x59
jl 0x30120333
cmp eax, 0x5a
jle 0x30120321
cmp eax, 0x9a
je 0x3012032b
cmp eax, 0x9c
jmp 0x3012031d
mov ecx, eax
sub ecx, 0xd3
je 0x3012032b
dec ecx
dec ecx
je 0x3012032b
sub ecx, 5
je 0x3012032b
sub ecx, 5
je 0x3012032b
sub ecx, 0xcf
je 0x30120321
sub ecx, 0xf
je 0x3012032b
jmp 0x30120333
cmp edi, 7
je 0x30120333
cmp edi, 9
je 0x30120333
mov eax, 0xff
mov dword [ebp + 0x7c], eax
mov ecx, 0xdf
cmp eax, ecx
jg 0x301205e5
je 0x3012058d
mov ecx, eax
sub ecx, 0x31
je 0x301204ca
sub ecx, 0x11
je 0x30120497
sub ecx, 0x43
je 0x3012038e
sub ecx, 0xd
jne 0x3012060d
call fcn.3011e9e2
push dword [ebp + 0x80]
call fcn.300e3657
cmp dword [0x301e6c84], ebx
jne 0x301206d2
call fcn.3004c4f5
jmp 0x301206d7
cmp edi, ebx
jne 0x301203a0
test byte [0x301e494b], 2
jne 0x301203a0
xor eax, eax
inc eax
jmp 0x301203a2
xor eax, eax
push dword [ebp + 0x634]
mov esi, 0x102
push eax
lea eax, [ebp - 0x20]
push eax
push esi
lea eax, [ebp + 0x84]
push eax
lea eax, [ebp + 0x78]
push eax
lea eax, [ebp + 0x74]
push eax
push dword [ebp + 0x80]
call fcn.3011f83f
test eax, eax
je 0x3012085d
cmp edi, 1
je 0x30120378
cmp edi, 0xb
je 0x30120378
push 0x5b
push esi
lea eax, [ebp + 0x408]
push eax
mov word [ebp + 0x408], bx
call fcn.300c9117
push 0x101
lea eax, [ebp + 0x408]
push eax
mov eax, dword [0x301e48a8]
mov eax, dword [eax + 0xc]
push dword [eax]
call fcn.300c7e7f
push 0x5d
push esi
lea eax, [ebp + 0x408]
push eax
call fcn.300c9117
mov ecx, dword [ebp + 0x74]
movzx eax, byte [ecx + 0xe]
movzx edx, word [ebp + 0x408]
add edx, eax
cmp edx, esi
jae 0x301206f4
push esi
lea edx, [ebp + 0x408]
push edx
push eax
add ecx, 0xf
push ecx
call fcn.300c7e63
movzx eax, word [ebp + 0x408]
push eax
lea eax, [ebp + 0x40a]
push eax
call fcn.30010991
mov esi, eax
push 0x1020
push 8
lea eax, [ebp + 0x34]
push eax
mov eax, dword [0x301e48a8]
mov dword [ebp + 0x34], esi
mov eax, dword [eax + 0xc]
add eax, 0x18
push eax
call fcn.300501e8
mov eax, dword [0x301e48a8]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x14], eax
mov eax, dword [ebp + 0x64]
inc dword [ebp + 0x64]
mov dword [esi + 0x30], eax
jmp 0x30120378
push 0x301e8b20
push dword [ebp + 0x80]
call fcn.3011eac8
cmp byte [0x301e4d00], bl
je 0x30120378
push 1
push dword [0x301e8b20]
call fcn.300fef1b
mov dword [0x301e8b20], eax
jmp 0x30120378
mov al, byte [0x301e4d00]
cmp al, bl
je 0x301204f7
cmp dword [0x301e4520], 5
jne 0x301204f7
mov ecx, dword [0x301e48a8]
cmp dword [ecx + 0x94], ebx
jne 0x301204f7
cmp dword [0x301e75fc], ebx
jne 0x301204f7
xor edi, edi
inc edi
jmp 0x301204f9
xor edi, edi
cmp al, bl
mov ecx, dword [ebp + 0x80]
movsx esi, word [ecx + 4]
mov ecx, dword [0x301e3340]
je 0x30120519
cmp ecx, 6
jl 0x30120519
or dword [0x301ddd64], 0x40
mov eax, dword [ebp + 0x50]
inc eax
cmp eax, 4
jne 0x30120525
push 5
pop eax
push eax
push ecx
push dword [ebp + 0x80]
lea eax, [ebp - 0x78]
push eax
call fcn.300e7ca2
cmp esi, 0x7fff
je 0x30120555
cmp esi, 0x51
je 0x30120555
cmp esi, ebx
jl 0x3012054c
cmp esi, 0x40
jle 0x30120555
mov dword [ebp - 0x28], 0x48
jmp 0x30120558
mov dword [ebp - 0x28], esi
lea eax, [ebp - 0x78]
push eax
call fcn.30011250
cmp edi, ebx
je 0x30120575
mov eax, dword [0x301e48a8]
add eax, 0x94
cmp dword [eax], ebx
je 0x30120575
mov dword [eax], ebx
cmp byte [0x301e4d00], bl
je 0x30120378
and dword [0x301ddd64], 0xffffffbf
jmp 0x30120378
cmp dword [ebp + 0x74], ebx
je 0x30120378
mov eax, dword [ebp + 0x80]
cmp byte [eax], bl
jbe 0x30120378
push eax
call fcn.300c9089
mov esi, eax
inc esi
push 0x1010
lea eax, [esi + esi]
push eax
lea eax, [ebp + 0x60]
push eax
call dword [sym.imp.MSO.DLL_Ordinal_347]
test eax, eax
je 0x301206ff
push esi
push dword [ebp + 0x60]
push dword [ebp + 0x80]
call fcn.300c8f62
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebp + 0x74]
mov dword [ecx + 4], eax
jmp 0x30120378
mov ecx, eax
sub ecx, 0xe7
je 0x30120378
sub ecx, 4
je 0x3012068f
sub ecx, 0x11
je 0x3012066b
sub ecx, 0xf60
je 0x30120378
cmp dword [ebp + 0x62c], ebx
jne 0x30120378
cmp eax, 0x876
jl 0x3012064f
cmp eax, 0x8ff
jg 0x3012064f
cmp edx, ebx
je 0x30120632
cmp eax, 0x809
je 0x3012064f
push ebx
lea ecx, [ebp + 0x3c]
push ecx
push esi
push eax
push dword [ebp + 0x80]
call fcn.3011eec4
test eax, eax
jne 0x30120378
mov eax, dword [ebp + 0x7c]
cmp eax, 0x875
jle 0x30120378
mov eax, dword [0x301e48a8]
or byte [eax + 0x2a1], 0x20
jmp 0x30120378
push 0x2020
lea eax, [ebp + 0x48]
push eax
push dword [ebp + 0x62c]
lea eax, [ebp + 0x7c]
push eax
push esi
push dword [ebp + 0x80]
call fcn.3011f086
mov dword [ebp + 0x58], eax
jmp 0x301206da
push esi
call fcn.30040f77
push eax
push dword [ebp + 0x80]
push ebx
call fcn.30142a9b
test eax, eax
jne 0x30120378
mov eax, dword [0x301e48a8]
push 0x2020
push dword [ebp + 0x80]
mov dword [0x301e3f5c], 1
or dword [eax + 0x38c], 0x20
call fcn.3013af82
jmp 0x301206d7
call fcn.301338ba
mov dword [ebp + 0x7c], eax
cmp dword [ebp + 0x7c], 0xa
jne 0x301201aa
jmp 0x3012019c
push ebx
push 0x74727571
jmp 0x3012084a
push ebx
push 0x787a6668
jmp 0x3012084a
push 6
push dword [0x301e4ae8]
call sub.MSVCRT.dll_longjmp
mov dword [0x301e88c4], ebx
movzx ax, byte [esi + 0xe]
mov word [ebp + 0x408], ax
movzx eax, ax
push eax
lea eax, [ebp + 0x40a]
push eax
lea eax, [esi + 0xf]
push eax
call fcn.30055d91
cmp word [ebp + 0x40a], bx
jne 0x30120742
mov word [ebp + 0x408], bx
push dword [ebp + 0x618]
call fcn.30046e92
test eax, eax
je 0x30120844
cmp dword [0x301e6c84], ebx
jne 0x30120765
push dword [esi + 8]
call fcn.30046f17
mov eax, dword [ebp + 0x80]
mov dword [0x301e7830], eax
movzx edi, byte [esi + 0xd]
mov eax, edi
dec eax
dec eax
je 0x3012082f
cmp dword [ebp - 4], ebx
je 0x3012078b
push dword [ebp + 0x68]
call fcn.30056032
cmp dword [0x301e4520], 2
jne 0x301207a1
cmp dword [ebp + 0x62c], 7
jne 0x301207a1
xor eax, eax
jmp 0x301207e2
push dword [ebp + 0x4c]
mov eax, edi
push dword [ebp + 0x630]
dec eax
neg eax
push 3
push dword [ebp + 0x62c]
sbb eax, eax
push dword [ebp + 0x628]
and al, 0xd0
add eax, 0x40
push eax
push dword [ebp + 0x620]
lea eax, [ebp + 0x408]
push 0x102
push eax
push dword [ebp + 0x618]
call fcn.3011fab2
cmp eax, ebx
je 0x301207f8
cmp dword [ebp + 0x62c], 1
je 0x30120852
cmp dword [ebp + 0x62c], 3
je 0x30120852
mov dl, byte [esi + 0xc]
mov ecx, dword [0x301e491c]
xor dl, byte [ecx + 0x20]
and edx, 3
xor word [ecx + 0x20], dx
cmp edi, 6
jne 0x30120831
mov ecx, dword [0x301e491c]
lea edx, [ecx + 0x80]
movzx ecx, word [ecx + 0x20]
shl ecx, 0xc
xor ecx, dword [edx]
and ecx, 0x3000
xor dword [edx], ecx
jmp 0x30120831
xor eax, eax
cmp eax, ebx
je 0x30120857
mov esi, dword [esi]
cmp esi, ebx
mov dword [ebp + 0x74], esi
jne 0x3012070c
jmp 0x30120880
push ebx
push 0x74727575
call dword [sym.imp.MSO.DLL_Ordinal_6848]
jmp 0x3012085d
mov dword [ebp + 0x6c], eax
jmp 0x30120880
push ebx
call fcn.30047187
push dword [0x301e48a8]
call fcn.3004b193
call fcn.3011e9e2
mov dword [ebp + 0x6c], ebx
mov dword [0x301e4708], 1
mov dword [0x301e6c80], ebx
mov eax, dword [0x301e48ac]
mov eax, dword [eax + 0x48]
cmp eax, ebx
mov esi, dword [sym.imp.MSO.DLL_Ordinal_957]
je 0x301208a8
mov ecx, dword [ebp + 0x58]
cmp ecx, ebx
je 0x301208c4
mov eax, dword [eax]
cmp eax, ebx
je 0x301208c4
shl ecx, 2
push ecx
push eax
call esi
jmp 0x301208c4
cmp dword [ebp + 0x62c], ebx
je 0x301208b9
cmp dword [ebp + 0x62c], 5
jne 0x301208c4
cmp dword [ebp + 0x6c], ebx
je 0x301208c4
push ebx
call fcn.301d94c1
mov eax, dword [0x301e48ac]
mov dword [eax + 0x50], ebx
push 1
mov dword [0x301e3f98], ebx
mov dword [0x301e7830], ebx
mov dword [0x301e3f94], ebx
call fcn.30047187
cmp dword [ebp + 0x78], ebx
je 0x30120918
mov eax, dword [ebp + 0x78]
cmp dword [eax + 4], ebx
mov edi, dword [eax]
je 0x30120902
mov eax, dword [eax + 4]
movzx ecx, word [eax]
lea ecx, [ecx + ecx + 2]
push ecx
push eax
call esi
mov eax, dword [ebp + 0x78]
movzx ecx, byte [eax + 0xe]
lea ecx, [ecx + ecx + 0xf]
push ecx
push eax
call esi
cmp edi, ebx
mov dword [ebp + 0x78], edi
jne 0x301208ea
mov eax, dword [0x301e48a8]
and dword [eax + 0x38c], 0xffffffdf
cmp dword [ebp + 0x62c], ebx
je 0x30120946
cmp dword [ebp + 0x62c], 5
je 0x30120946
cmp dword [ebp + 0x62c], 0xb
je 0x30120946
push dword [ebp + 0x68]
call fcn.30056032
mov eax, dword [ebp + 0x44]
xor ecx, ecx
cmp dword [ebp + 0x40], ebx
mov dword [0x301e4ae8], eax
mov eax, dword [ebp + 0x6c]
setne cl
neg eax
sbb eax, eax
mov dword [0x301e577c], ebx
lea ecx, [ecx + ecx + 1]
and eax, ecx
mov ecx, dword [ebp + 0x60c]
call fcn.30056b36
pop edi
pop esi
pop ebx
add ebp, 0x610
leave
ret 0x20