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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x111ec0fb
mov eax, dword fs:[0]
push eax
sub esp, 0x35c
mov eax, dword [0x11279148]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov ebx, 2
mov edi, ecx
mov dword [ebp - 0x358], esi
mov dword [ebp - 0x354], 1
lea ecx, [ebx + 1]
cmp eax, 0xf5
ja case.0x111c18e0.1
movzx eax, byte [eax + 0x111c2454]
jmp dword [eax*4 + 0x111c2434]
mov eax, dword [ebp + 0x10]
mov edx, dword [edi]
mov edx, dword [edx + 0xac]
push eax
push esi
mov ecx, edi
call edx
test eax, eax
je 0x111c1922
mov ecx, edi
call fcn.1108d7b0
test eax, eax
jne 0x111c1922
mov ecx, edi
call fcn.1108d7b0
neg eax
sbb eax, eax
and eax, 0xfffffffe
add eax, ebx
mov dword [ebp - 0x354], eax
jmp case.0x111c18e0.1
mov dword [ebp - 0x354], 0
jmp case.0x111c18e0.1
push 0
push 0
push 6
call fcn.111bb9f0
add esp, 0xc
test eax, eax
je case.0x111c18e0.45
push str.NC_AUTOLOGON:_See_if_we_need_to_send_CAD_here_n
call fcn.111bd7b0
mov ecx, dword [0x1127b21c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xd8]
add esp, 4
call edx
cmp word [eax], 0
mov ecx, dword [0x1127b21c]
mov eax, dword [ecx]
mov edx, dword [eax + 0xd8]
setne bl
call edx
push eax
movzx eax, bl
push eax
push str.NC_AUTOLOGON:_logged_on__d___logged_on_user__s_n
call fcn.111bd7b0
add esp, 0xc
test bl, bl
jne case.0x111c18e0.45
push str.NC_AUTOLOGON:_Attempt_to_open_Client32Provider_n
call fcn.111bd7b0
add esp, 4
mov esi, str.GlobalClient32Provider
cmp byte [0x1127ad8d], bl
je 0x111c19b4
mov esi, str.GlobalDNAClient32Provider
call fcn.111babb0
test al, al
je 0x111c19c2
mov esi, str.GlobalCICClient32Provider
lea ecx, [ebp - 0x350]
call fcn.111062e0
push esi
lea ecx, [ebp - 0x350]
mov dword [ebp - 4], 0
call fcn.111064d0
test eax, eax
jne 0x111c1a0a
push esi
push str.NC_AUTOLOGON:_Couldnt_open__s__send_CAD_n
call fcn.111bd7b0
mov ecx, dword [0x1127b21c]
mov edx, dword [ecx]
mov eax, dword [edx + 0xa0]
add esp, 8
call eax
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [ebp - 0x350]
mov dword [ebp - 4], 0xffffffff
call fcn.111062f0
mov dword [ebp - 0x354], 4
jmp case.0x111c18e0.1
mov dword [ebp - 0x354], ecx
jmp case.0x111c18e0.1
lea ecx, [edi + 0xd4]
call fcn.110e3ac0
mov ecx, dword [ebp + 0x10]
push ecx
push esi
lea ecx, [edi + 0xd4]
call fcn.110e41c0
mov dword [ebp - 0x354], 9
jmp case.0x111c18e0.1
push str.SendCached..._n
call fcn.111bd7b0
add esp, 4
mov dword [ebp - 0x354], ebx
mov ebx, dword [0x1127ad0c]
xor esi, esi
test byte [ebp - 0x354], 0xe
mov dword [ebp - 0x368], ebx
je 0x111c1b10
test ebx, ebx
jns 0x111c1ab8
push esi
call fcn.111613a0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x368], ebx
test ebx, ebx
js 0x111c1ab8
mov ecx, dword [0x1127b21c]
push esi
push 1
push ebx
call fcn.11162e10
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
mov ecx, edi
call fcn.111c1610
mov esi, eax
mov eax, dword [ebp - 0x354]
test al, 8
je 0x111c1ae2
test esi, esi
je 0x111c1ae2
cmp byte [esi + 0x1c], 0
je 0x111c1ae2
and eax, 0xfffffff7
or eax, 2
mov dword [ebp - 0x354], eax
test byte [ebp - 0x354], 4
je 0x111c1b05
test esi, esi
je 0x111c1b09
cmp dword [esi + 0x14], 0
je 0x111c1afe
or dword [ebp - 0x354], 2
jmp 0x111c1b05
or dword [ebp - 0x354], 1
test esi, esi
jne 0x111c1b10
and dword [ebp - 0x354], 0xfffffffd
test byte [ebp - 0x354], 2
je 0x111c240f
cmp dword [esi + 0x14], 0
jne 0x111c1bd8
push str.ProcessPacket_waiting_to_connect..._n
call fcn.111bd7b0
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x35c], eax
push ebx
mov ecx, edi
call fcn.111c2620
cmp dword [esi + 0x14], 0
mov dword [ebp - 0x364], eax
jne 0x111c1bd8
mov ecx, edi
call fcn.110c5f40
test eax, eax
jne 0x111c240f
push 0x2000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x111c240f
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
push ebx
call fcn.111611c0
add esp, 4
test eax, eax
je 0x111c1b9a
mov ecx, eax
call fcn.1114d080
test eax, eax
je 0x111c1bb8
cmp dword [ebp - 0x364], 0
jne 0x111c1bd8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x35c]
cmp eax, 0xbb8
jbe 0x111c1b40
jmp 0x111c1bd8
cmp dword [0x1127ad0c], ebx
jne 0x111c1bd8
push ebx
push str.Info._No_client_for_active_session__d__resetting_to__1_n
call fcn.111bd7b0
add esp, 8
mov dword [0x1127ad0c], 0xffffffff
cmp byte [esi + 0x1c], 0
jne 0x111c1c39
mov edx, dword [edi + 0xa4]
mov eax, dword [edx + 0xa4]
lea ecx, [edi + 0xa4]
call eax
test al, al
jne 0x111c1c0d
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
cmp dword [edi + 0xb0], 0
je 0x111c1c39
push ebx
lea ecx, [edi + 0xa4]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0xa4]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x1c], al
cmp byte [esi + 0x1d], 0
jne 0x111c1c77
cmp byte [esi + 0x1c], 0
je 0x111c1c77
lea ecx, [edi + 0xbc]
call fcn.1104dbf0
test eax, eax
je 0x111c1c77
push ebx
lea ecx, [edi + 0xbc]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0xbc]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x1d], al
cmp dword [ebp + 8], 3
je 0x111c240f
cmp byte [esi + 0x1f], 0
jne 0x111c1cbf
cmp byte [esi + 0x1d], 0
je 0x111c1cbf
lea ecx, [edi + 0xd4]
call fcn.1104dbf0
test eax, eax
je 0x111c1cbf
push ebx
lea ecx, [edi + 0xd4]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0xd4]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x1f], al
cmp byte [esi + 0x20], 0
jne 0x111c1d81
cmp byte [esi + 0x1d], 0
je 0x111c1d81
lea ecx, [edi + 0xec]
call fcn.1104dbf0
test eax, eax
je 0x111c1d81
lea ecx, [edi + 0xec]
call fcn.110684f0
push ebx
lea ecx, [edi + 0xec]
mov dword [ebp - 0x35c], eax
call fcn.1104dbf0
mov ecx, dword [ebp - 0x35c]
push eax
push ecx
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x20], al
test al, al
je 0x111c1d81
mov eax, dword [ebp - 0x35c]
test byte [eax + 2], 1
je 0x111c1d81
mov edx, 0x400
test word [eax + 4], dx
jne 0x111c1d81
mov ecx, dword [edi + 0x30]
push 0
push 0
push str.silent
push str.Client
call fcn.110bbc00
test eax, eax
je 0x111c1d81
xor eax, eax
push ebx
mov dword [ebp - 0x38], eax
push 0xc
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], al
mov eax, 8
push ecx
mov ecx, edi
mov word [ebp - 0x38], ax
call fcn.111c3190
cmp byte [esi + 0x21], 0
jne 0x111c1dbf
cmp byte [esi + 0x1d], 0
je 0x111c1dbf
lea ecx, [edi + 0x104]
call fcn.1104dbf0
test eax, eax
je 0x111c1dbf
push ebx
lea ecx, [edi + 0x104]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0x104]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x21], al
cmp byte [esi + 0x22], 0
jne 0x111c1dfd
cmp byte [esi + 0x1d], 0
je 0x111c1dfd
lea ecx, [edi + 0x11c]
call fcn.1104dbf0
test eax, eax
je 0x111c1dfd
push ebx
lea ecx, [edi + 0x11c]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0x11c]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x22], al
cmp byte [esi + 0x23], 0
jne 0x111c1e3b
cmp byte [esi + 0x1d], 0
je 0x111c1e3b
lea ecx, [edi + 0x134]
call fcn.1104dbf0
test eax, eax
je 0x111c1e3b
push ebx
lea ecx, [edi + 0x134]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0x134]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x23], al
cmp byte [esi + 0x24], 0
jne 0x111c1e79
cmp byte [esi + 0x1d], 0
je 0x111c1e79
lea ecx, [edi + 0x14c]
call fcn.1104dbf0
test eax, eax
je 0x111c1e79
push ebx
lea ecx, [edi + 0x14c]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0x14c]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x24], al
cmp byte [esi + 0x25], 0
jne 0x111c1eb7
cmp byte [esi + 0x1d], 0
je 0x111c1eb7
lea ecx, [edi + 0x164]
call fcn.1104dbf0
test eax, eax
je 0x111c1eb7
push ebx
lea ecx, [edi + 0x164]
call fcn.1104dbf0
push eax
lea ecx, [edi + 0x164]
call fcn.110684f0
push eax
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x25], al
lea edx, [esi + 0x26]
mov dword [ebp - 0x35c], edx
lea ebx, [edi + 0x17c]
mov dword [ebp - 0x364], 5
mov eax, dword [ebp - 0x35c]
cmp byte [eax], 0
jne 0x111c1f8e
cmp byte [esi + 0x1d], 0
je 0x111c1f8e
mov edx, dword [ebx]
mov eax, dword [edx + 0xa4]
mov ecx, ebx
call eax
test al, al
jne 0x111c1f10
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
cmp dword [ebx + 0xc], 0
je 0x111c1f8e
mov edx, dword [ebx]
mov eax, dword [edx + 0xa4]
mov ecx, ebx
call eax
test al, al
jne 0x111c1f3d
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx]
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x360], ecx
mov ecx, ebx
call eax
test al, al
jne 0x111c1f6d
push 0x135
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
mov ecx, dword [ebp - 0x368]
mov edx, dword [ebp - 0x360]
mov eax, dword [ebx + 0x14]
push ecx
push edx
push eax
mov ecx, edi
call fcn.111c3190
mov ecx, dword [ebp - 0x35c]
mov byte [ecx], al
mov eax, 1
add dword [ebp - 0x35c], eax
add ebx, 0x18
sub dword [ebp - 0x364], eax
jne 0x111c1ed0
cmp byte [esi + 0x2b], 0
jne 0x111c2081
cmp byte [esi + 0x1d], 0
je 0x111c2081
mov edx, dword [edi + 0x1f4]
mov eax, dword [edx + 0xa4]
lea ecx, [edi + 0x1f4]
call eax
test al, al
jne 0x111c1feb
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
cmp dword [edi + 0x200], 0
je 0x111c2081
mov edx, dword [edi + 0x1f4]
mov eax, dword [edx + 0xa4]
lea ecx, [edi + 0x1f4]
call eax
test al, al
jne 0x111c2027
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
mov ecx, dword [edi + 0x200]
mov edx, dword [edi + 0x1f4]
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x360], ecx
lea ecx, [edi + 0x1f4]
call eax
test al, al
jne 0x111c2062
push 0x135
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
mov ecx, dword [ebp - 0x368]
mov edx, dword [ebp - 0x360]
mov ebx, dword [edi + 0x208]
push ecx
push edx
push ebx
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x2b], al
cmp byte [esi + 0x2c], 0
jne 0x111c215a
cmp byte [esi + 0x1d], 0
je 0x111c215a
mov eax, dword [edi + 0x20c]
mov edx, dword [eax + 0xa4]
lea ecx, [edi + 0x20c]
call edx
test al, al
jne 0x111c20c4
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
cmp dword [edi + 0x218], 0
je 0x111c215a
mov eax, dword [edi + 0x20c]
mov edx, dword [eax + 0xa4]
lea ecx, [edi + 0x20c]
call edx
test al, al
jne 0x111c2100
push 0x13a
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
mov eax, dword [edi + 0x218]
mov edx, dword [edi + 0x20c]
mov dword [ebp - 0x360], eax
mov eax, dword [edx + 0xa4]
lea ecx, [edi + 0x20c]
call eax
test al, al
jne 0x111c213b
push 0x135
push str.e:_nsmsrc_nsm14101410fctl32DataStream.h
push str.IsA__
call fcn.11067750
add esp, 0xc
mov ecx, dword [ebp - 0x368]
mov edx, dword [ebp - 0x360]
mov ebx, dword [edi + 0x220]
push ecx
push edx
push ebx
mov ecx, edi
call fcn.111c3190
mov byte [esi + 0x2c], al
cmp dword [ebp - 0x358], 0
je 0x111c2184
mov eax, dword [ebp - 0x368]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x358]
push eax
push ecx
push edx
mov ecx, edi
call fcn.111c3190
test al, al
je 0x111c240f
mov eax, dword [ebp + 8]
add eax, 0xfffffff9
cmp eax, 0xa9
ja case.0x111c219c.8
movzx eax, byte [eax + 0x111c256c]
jmp dword [eax*4 + 0x111c254c]
mov ecx, dword [ebp - 0x358]
movzx edx, word [ecx + 2]
lea ecx, [edi + 0xec]
mov dword [ebp - 0x364], edx
mov dword [ebp - 0x360], 0
call fcn.1104dbf0
test eax, eax
je 0x111c21dd
lea ecx, [edi + 0xec]
call fcn.110684f0
movzx eax, word [eax + 2]
jmp 0x111c21e3
mov al, byte [ebp - 0x360]
test byte [ebp - 0x364], 1
jne 0x111c21f8
mov dword [0x1127af98], 0
jmp 0x111c2221
test al, 1
jne 0x111c2221
mov ecx, dword [edi + 0x30]
push 0
push 0
push str.ViewModeAcknowledgement
push str.Client
call fcn.110bbc00
test eax, eax
jne 0x111c2221
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x1127af98], eax
lea ecx, [edi + 0xec]
call fcn.110e3ac0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x358]
push eax
push ecx
lea ecx, [edi + 0xec]
call fcn.110e41c0
mov byte [esi + 0x20], 1
jmp case.0x111c219c.8
lea ecx, [edi + 0x104]
call fcn.110e3ac0
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x358]
push edx
push eax
lea ecx, [edi + 0x104]
call fcn.110e41c0
mov byte [esi + 0x21], 1
jmp case.0x111c219c.8
lea ecx, [edi + 0x11c]
call fcn.110e3ac0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x358]
push ecx
push edx
lea ecx, [edi + 0x11c]
call fcn.110e41c0
mov byte [esi + 0x22], 1
jmp case.0x111c219c.8
lea ecx, [edi + 0x134]
call fcn.110e3ac0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x358]
push eax
push ecx
lea ecx, [edi + 0x134]
call fcn.110e41c0
mov byte [esi + 0x23], 1
jmp case.0x111c219c.8
lea ecx, [edi + 0x14c]
call fcn.110e3ac0
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x358]
push edx
push eax
lea ecx, [edi + 0x14c]
call fcn.110e41c0
mov byte [esi + 0x24], 1
jmp case.0x111c219c.8
lea ecx, [edi + 0x164]
call fcn.110e3ac0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x358]
push ecx
push edx
lea ecx, [edi + 0x164]
call fcn.110e41c0
mov byte [esi + 0x25], 1
jmp case.0x111c219c.8
mov eax, dword [ebp - 0x358]
mov ebx, dword [eax + 2]
lea ecx, [ebx - 1]
cmp ecx, 4
ja 0x111c2381
mov eax, dword [eax + 0xa]
cmp eax, 3
jne 0x111c2368
lea edx, [ebx + ebx*2]
lea ecx, [edi + edx*8 + 0x164]
mov dword [ebp - 0x360], ecx
call fcn.110e3ac0
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x358]
push eax
push ecx
mov ecx, dword [ebp - 0x360]
call fcn.110e41c0
mov byte [ebx + esi + 0x25], 1
jmp 0x111c2381
cmp eax, 4
jne 0x111c2381
lea edx, [ebx + ebx*2]
lea ecx, [edi + edx*8 + 0x164]
call fcn.110e3ac0
mov byte [ebx + esi + 0x25], 0
cmp ebx, 6
jne case.0x111c219c.8
mov ebx, dword [ebp - 0x358]
lea eax, [ebx + 0x26]
push str.SETUSBMASSSTORAGEACCESS
push eax
call dword [sym.imp.MSVCR100.dll_strstr]
add esp, 8
test eax, eax
je 0x111c23c3
lea ecx, [edi + 0x1f4]
call fcn.110e3ac0
mov eax, dword [ebp + 0x10]
push eax
push ebx
lea ecx, [edi + 0x1f4]
call fcn.110e41c0
mov byte [esi + 0x2b], 1
jmp case.0x111c219c.8
lea eax, [ebx + 0x26]
push str.SETOPTICALDRIVEACCESS
push eax
call dword [sym.imp.MSVCR100.dll_strstr]
add esp, 8
test eax, eax
je case.0x111c219c.8
lea ecx, [edi + 0x20c]
call fcn.110e3ac0
mov ecx, dword [ebp + 0x10]
push ecx
push ebx
lea ecx, [edi + 0x20c]
call fcn.110e41c0
mov byte [esi + 0x2c], 1
cmp dword [ebp + 8], 0
jne 0x111c240f
push str.Sent_n
mov byte [esi + 0x1e], 1
call fcn.111bd7b0
add esp, 4
mov eax, dword [ebp - 0x354]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.111d9022
mov esp, ebp
pop ebp
ret 0xc