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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x20
cmp eax, 2
push ebx
push esi
push edi
mov esi, ecx
je 0x301834dd
cmp eax, 0x21
je 0x301834c5
mov edi, 0x100
cmp eax, edi
je 0x301834a1
cmp eax, 0x103
jbe 0x30183498
mov ecx, 0x105
cmp eax, ecx
jbe 0x30183477
cmp eax, 0x113
je 0x3018325a
mov edi, 0x200
cmp eax, edi
jne 0x30183498
mov eax, dword [esi + 0x108]
test al, 1
je 0x3018322c
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf4]
jmp 0x30183239
test ax, 0x500
je 0x30183239
mov ecx, esi
call fcn.30182d5e
test byte [esi + 0x108], 0x10
je 0x3018324e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xf4], eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push edi
jmp 0x30183512
cmp dword [ebp + 0x10], 0xed4c5
jne 0x30183467
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0xf4]
mov ecx, esi
cdq
mov edi, eax
mov eax, dword [esi]
xor edi, edx
sub edi, edx
call dword [eax + 0x10c]
mov dword [ebp + 0xc], eax
call fcn.30159eb7
test word [esi + 0x108], 0x500
mov ebx, eax
je 0x3018341c
test byte [esi + 0x79], 4
jne 0x3018341c
test ebx, ebx
je 0x3018341c
push dword [ebp + 8]
mov ecx, ebx
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::ToolWindowMgr::FManagedHwnd_struct_HWND____
test al, al
je 0x3018341c
push dword [ebp + 8]
mov ecx, ebx
call fcn.301aeb34
test al, al
jne 0x3018341c
push 2
call fcn.30159e5f
test eax, eax
jne 0x3018341c
xor ebx, ebx
mov dword [ebp - 8], ebx
lea edi, [ebp - 4]
stosd dword es:[edi], eax
lea eax, [ebp - 8]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
xor eax, eax
mov dword [ebp - 0x20], ebx
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x20]
cmp eax, ecx
jge 0x3018331d
sub ecx, eax
mov eax, ecx
jmp 0x30183329
cmp eax, dword [ebp - 0x18]
jle 0x30183327
sub eax, dword [ebp - 0x18]
jmp 0x30183329
xor eax, eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
cmp ecx, edx
jge 0x30183339
sub edx, ecx
mov ecx, edx
jmp 0x30183345
cmp ecx, dword [ebp - 0x14]
jle 0x30183343
sub ecx, dword [ebp - 0x14]
jmp 0x30183345
xor ecx, ecx
cmp eax, ebx
jne 0x30183369
cmp ecx, ebx
jne 0x30183369
and dword [esi + 0x108], 0xfffff7ff
mov ecx, esi
mov dword [esi + 0x110], ebx
call fcn.30182d5e
jmp 0x30183416
cmp eax, ecx
jge 0x30183372
mov dword [ebp + 0xc], ecx
jmp 0x30183377
mov ecx, eax
mov dword [ebp + 0xc], eax
test word [esi + 0x108], 0x800
je 0x30183399
lea eax, [esi + 0x110]
mov edx, dword [eax]
cmp edx, ebx
je 0x30183392
cmp ecx, edx
jge 0x30183394
mov dword [eax], ecx
sub ecx, dword [eax]
mov dword [ebp + 0xc], ecx
fild dword [ebp + 0xc]
push 0x3e8
fadd qword [0x3000e4b8]
fstp qword [ebp - 0x10]
call fcn.30116762
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
fdiv qword [0x300365c0]
fdivr qword [ebp - 0x10]
fadd qword [0x3000e4b8]
call fcn.301375b6
mov ecx, dword [esi + 0x108]
and ecx, 0x400
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff5
add ecx, 0xe
mov edi, eax
mov ebx, ecx
imul ebx, edi
mov eax, 0xff
mov edx, eax
sub edx, ebx
test edx, edx
jg 0x3018340e
cdq
idiv ecx
add eax, 0x64
cmp edi, eax
jl 0x3018340c
push 0
push dword [ebp + 8]
call fcn.3015a826
jmp 0x30183491
xor edx, edx
push edx
mov ecx, esi
call fcn.30182588
push 0
push 0x1e
jmp 0x30183459
cmp dword [ebp + 0xc], 0
jle 0x3018344a
cmp edi, dword [ebp + 0xc]
jbe 0x3018344a
cmp byte [esi + 0x104], 0
je 0x3018343e
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x110]
test eax, eax
jne 0x3018344a
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xf4]
jmp 0x30183467
mov eax, dword [ebp + 0xc]
cdq
and edx, 7
add eax, edx
push 0
sar eax, 3
push eax
push 0xed4c5
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetTimer]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x113
jmp 0x30183512
cmp dword [ebp + 0x10], 0x12
jne 0x30183498
test byte [esi + 0x108], 0x40
je 0x30183498
cmp eax, ecx
jne 0x30183491
push 0
call fcn.3015a769
xor eax, eax
jmp 0x3018351c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
jmp 0x30183512
cmp dword [ebp + 0x10], 0x1b
jne 0x3018324e
test byte [esi + 0x108], 0x40
jne 0x3018324e
mov eax, dword [esi]
call dword [eax + 0xf4]
jmp 0x3018324e
call sym.OFFDIAG.exe_public:_bool___thiscall_NetUI::ToolWindow::MouseDownTakesKeyboardFocus_void_
test al, al
jne 0x301834d3
push 3
pop eax
jmp 0x3018351c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0x21
jmp 0x30183512
push 0xed4c5
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
and dword [esi + 0x10c], 0
call fcn.30159eb7
test eax, eax
je 0x3018350a
push 0
push dword [esi + 0x84]
mov ecx, eax
call fcn.301afc3a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 2
push dword [ebp + 8]
mov ecx, esi
call sym.OFFDIAG.exe_public_virtual:_long_int___thiscall_NetUI::HWNDElement::WndProc_struct_HWND_____unsigned_int__unsigned_int__long_int_
pop edi
pop esi
pop ebx
leave
ret 0x10