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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100262aa
mov eax, dword fs:[0]
push eax
sub esp, 0x980
mov eax, dword [0x10036174]
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 edi, ecx
mov dword [ebp - 0x93c], edi
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x28]
mov dword [ebp - 0x97c], eax
mov dword [ebp - 0x988], ecx
mov dword [ebp - 4], 0
test eax, eax
je 0x100148ad
test ecx, ecx
je 0x100148ad
mov eax, dword [edi + 0x3c]
lea ecx, [edi + 0x3c]
mov byte [ebp - 4], 1
push dword [eax + 4]
call fcn.10014ad0
mov eax, dword [edi + 0x3c]
mov dword [eax + 4], eax
mov eax, dword [edi + 0x3c]
mov dword [eax], eax
mov eax, dword [edi + 0x3c]
mov dword [eax + 8], eax
mov dword [edi + 0x40], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x800
mov dword [ebp - 0x984], eax
lea eax, [ebp - 0x910]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xor ebx, ebx
add esp, 0xc
mov dword [ebp - 0x96c], ebx
mov dword [ebp - 0x968], ebx
mov dword [ebp - 0x964], ebx
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 2
mov esi, dword [eax]
mov dword [ebp - 0x960], esi
cmp esi, dword [eax + 4]
je 0x100144a1
nop word [eax + eax]
lea eax, [esi + 0x18]
push eax
mov dword [ebp - 0x980], eax
lea eax, [ebp - 0x928]
push eax
call fcn.10008850
add esp, 8
cmp dword [esi + 0x14], 8
jb 0x10013c43
mov ecx, dword [esi]
jmp 0x10013c45
mov ecx, esi
cmp dword [eax + 0x14], 8
jb 0x10013c4d
mov eax, dword [eax]
push ecx
push eax
push str.Split:_Next_source_filter:_clsid:__s_name:__s
lea eax, [ebp - 0x910]
push 0x400
push eax
call fcn.10007ff0
mov eax, dword [ebp - 0x914]
add esp, 0x14
cmp eax, 8
jb 0x10013c85
inc eax
push 2
push eax
push dword [ebp - 0x928]
call fcn.10005560
add esp, 0xc
lea eax, [ebp - 0x910]
push eax
call fcn.1000b200
lea edi, [esi + 0x28]
lea eax, [ebp + 0x10]
mov dword [ebp - 0x938], edi
push eax
mov ecx, edi
call fcn.1001f5c0
mov edi, dword [edi]
mov esi, eax
cmp esi, edi
je 0x10013cdc
cmp dword [esi + 0x24], 8
lea ecx, [esi + 0x10]
lea edx, [ecx + 0x10]
jb 0x10013cbb
mov ecx, dword [ecx]
push dword [edx]
cmp dword [ebp + 0x24], 8
lea eax, [ebp + 0x10]
push ecx
cmovae eax, dword [ebp + 0x10]
push dword [ebp + 0x20]
push eax
call fcn.1000be30
shr eax, 0x1f
add esp, 0x10
test al, al
je 0x10013cde
mov esi, edi
mov eax, dword [ebp - 0x938]
cmp esi, dword [eax]
jne 0x10013cf7
push str.Split:_Mime_type_not_found
call fcn.1000b200
jmp 0x10014486
mov dword [ebp - 0x948], 0
mov esi, dword [ebp - 0x960]
mov byte [ebp - 4], 3
cmp dword [esi + 0x14], 8
jb 0x10013d15
mov eax, dword [esi]
jmp 0x10013d17
mov eax, esi
mov edi, dword [ebp - 0x93c]
lea ecx, [ebp - 0x948]
push ecx
push 0x1002ef08
push eax
lea eax, [esi + 0x18]
mov ecx, edi
push eax
call fcn.10011280
cmp eax, 0x80004004
je 0x10014838
test eax, eax
jns 0x10013d61
mov eax, dword [ebp - 0x948]
mov byte [ebp - 4], 2
test eax, eax
je 0x1001448c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1001448c
push str.Split:_Open_source
call fcn.1000b200
mov edx, dword [ebp - 0x97c]
lea ecx, [ebp - 0x948]
push ecx
lea ecx, [esi + 0x18]
push ecx
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
test eax, eax
jns 0x10013d95
push dword [ebp - 0x948]
mov ecx, edi
call fcn.100139c0
jmp 0x10013d44
mov dword [ebp - 0x95c], 0
mov dword [ebp - 0x958], 0
mov dword [ebp - 0x954], 0
mov eax, dword [ebp - 0x948]
mov byte [ebp - 4], 5
mov dword [ebp - 0x94c], eax
test eax, eax
je 0x10013dcd
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x94c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x95c]
call fcn.10015690
mov eax, dword [ebp - 0x94c]
mov byte [ebp - 4], 5
test eax, eax
je 0x10013df7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x948]
mov dword [ebp - 0x94c], eax
test eax, eax
je 0x10013e0d
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x94c]
mov byte [ebp - 4], 7
push eax
lea ecx, [ebp - 0x96c]
call fcn.10015690
mov eax, dword [ebp - 0x94c]
mov byte [ebp - 4], 5
test eax, eax
je 0x10013e37
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.Split:_Reader_Ok___search_splitter
call fcn.1000b200
mov ebx, dword [ebp - 0x96c]
xor al, al
mov esi, dword [ebp - 0x958]
mov byte [ebp - 0x931], al
nop word [eax + eax]
mov edi, dword [esi - 4]
add esi, 0xfffffffc
mov dword [ebp - 0x938], esi
mov dword [ebp - 0x974], edi
mov dword [ebp - 0x98c], edi
test edi, edi
je 0x10013e82
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, dword [esi]
mov byte [ebp - 4], 8
test ecx, ecx
je 0x10013e92
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebp - 0x958], esi
mov dword [ebp - 0x940], 0
lea eax, [ebp - 0x940]
mov byte [ebp - 4], 9
push eax
push 1
push 0
push 0
push 1
push edi
call fcn.10008da0
mov esi, eax
add esp, 0x18
test esi, esi
js 0x1001477e
mov eax, dword [ebp - 0x940]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x1001477e
mov dword [ebp - 0x930], 0
mov eax, dword [ebp - 0x940]
lea edx, [ebp - 0x950]
push edx
lea edx, [ebp - 0x930]
mov dword [ebp - 0x950], 0
push edx
mov ecx, dword [eax]
push 1
push eax
mov byte [ebp - 4], 0xe
call dword [ecx + 0xc]
test eax, eax
jne 0x100143fe
nop word [eax + eax]
cmp dword [ebp - 0x950], 0
je 0x100143f0
mov ecx, dword [ebp - 0x93c]
mov byte [ebp - 0x941], 0
mov esi, dword [ecx + 0xa4]
cmp esi, dword [ecx + 0xa8]
je 0x10013f98
lea ebx, [esi + 0x10]
mov edi, ecx
nop dword [eax]
xor ecx, ecx
mov eax, ebx
cmp dword [ebx + 0x10], ecx
cmove eax, ecx
push eax
push esi
push 1
push 1
push dword [ebp - 0x930]
call fcn.10008680
add esp, 0x14
test eax, eax
sete cl
mov byte [ebp - 0x941], cl
cmp cl, 1
je 0x10013f8c
add esi, 0x30
add ebx, 0x30
cmp esi, dword [edi + 0xa8]
jne 0x10013f50
mov edi, dword [ebp - 0x974]
mov ecx, dword [ebp - 0x93c]
mov esi, dword [ecx + 0xb0]
xor al, al
cmp esi, dword [ecx + 0xb4]
je 0x10013ff2
mov edi, dword [ebp - 0x93c]
lea ebx, [esi + 0x10]
xor ecx, ecx
mov eax, ebx
cmp dword [ebx + 0x10], ecx
cmove eax, ecx
push eax
push esi
push 1
push 1
push dword [ebp - 0x930]
call fcn.10008680
add esp, 0x14
test eax, eax
sete al
cmp al, 1
je 0x10013fe6
add esi, 0x30
add ebx, 0x30
cmp esi, dword [edi + 0xb4]
jne 0x10013fb1
mov edi, dword [ebp - 0x974]
mov ecx, dword [ebp - 0x93c]
cmp byte [ebp - 0x941], 0
jne 0x100143b2
test al, al
jne 0x100143b2
mov esi, dword [ecx + 0x5c]
cmp esi, dword [ecx + 0x60]
je 0x10014269
lea ebx, [esi + 0x28]
mov dword [ebp - 0x94c], ebx
nop dword [eax]
lea eax, [ebx - 0x10]
push eax
lea eax, [ebp - 0x928]
push eax
call fcn.10008850
add esp, 8
cmp dword [ebx - 0x14], 8
jb 0x1001403d
mov ecx, dword [esi]
jmp 0x1001403f
mov ecx, esi
cmp dword [eax + 0x14], 8
jb 0x10014047
mov eax, dword [eax]
push ecx
push eax
push str.Split:_Next_splitter:_clsid:__s_name:__s
lea eax, [ebp - 0x910]
push 0x400
push eax
call fcn.10007ff0
mov eax, dword [ebp - 0x914]
add esp, 0x14
cmp eax, 8
jb 0x100140bb
mov ecx, dword [ebp - 0x928]
inc eax
cmp eax, 0x7fffffff
ja 0x100147eb
add eax, eax
cmp eax, 0x1000
jb 0x100140b2
test cl, 0x1f
jne 0x100147eb
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x100147eb
sub ecx, eax
cmp ecx, 4
jb 0x100147eb
cmp ecx, 0x23
ja 0x100147eb
mov ecx, eax
push ecx
call fcn.10023c22
add esp, 4
lea eax, [ebp - 0x910]
push eax
call fcn.1000b200
lea eax, [ebp + 0x10]
mov ecx, ebx
push eax
call fcn.1001f5c0
mov ecx, dword [ebx]
cmp eax, ecx
je 0x10014194
cmp dword [eax + 0x24], 8
lea edx, [eax + 0x10]
lea ebx, [edx + 0x10]
mov dword [ebp - 0x938], ebx
jb 0x100140f0
mov edx, dword [edx]
cmp dword [ebp + 0x24], 8
lea ebx, [ebp + 0x10]
mov edi, dword [ebp + 0x20]
cmovae ebx, dword [ebp + 0x10]
mov dword [ebp - 0x970], ebx
mov ebx, dword [ebp - 0x938]
mov ebx, dword [ebx]
cmp edi, ebx
mov dword [ebp - 0x938], ebx
cmovb ebx, edi
mov edi, dword [ebp - 0x974]
mov dword [ebp - 0x978], ebx
test ebx, ebx
mov ebx, dword [ebp - 0x970]
je 0x10014163
cmp dword [ebp - 0x978], 0
jbe 0x10014163
nop word [eax + eax]
mov bx, word [ebx]
cmp bx, word [edx]
mov ebx, dword [ebp - 0x970]
jne 0x1001417b
add ebx, 2
add edx, 2
sub dword [ebp - 0x978], 1
mov dword [ebp - 0x970], ebx
jne 0x10014140
xor edx, edx
test edx, edx
jne 0x1001418d
mov edx, dword [ebp - 0x938]
mov ebx, dword [ebp + 0x20]
cmp edx, ebx
jbe 0x10014189
or edx, 0xffffffff
jmp 0x1001418d
mov bx, word [ebx]
cmp bx, word [edx]
sbb edx, edx
and edx, 0xfffffffe
inc edx
jmp 0x10014165
sbb edx, edx
neg edx
shr edx, 0x1f
test dl, dl
je 0x10014196
mov eax, ecx
cmp eax, ecx
jne 0x100141af
push str.Split:_Splitter___Mime_type_not_found
call fcn.1000b200
mov ebx, dword [ebp - 0x94c]
jmp 0x1001424e
mov dword [ebp - 0x92c], 0
mov ebx, dword [ebp - 0x94c]
mov byte [ebp - 4], 0xf
cmp dword [ebx - 0x14], 8
jb 0x100141cd
mov eax, dword [esi]
jmp 0x100141cf
mov eax, esi
lea ecx, [ebp - 0x92c]
push ecx
mov ecx, dword [ebp - 0x93c]
push 0x1002ef08
push eax
lea eax, [ebx - 0x10]
push eax
call fcn.10011280
cmp eax, 0x80004004
je 0x10014712
test eax, eax
js 0x1001423a
mov ecx, dword [ebp - 0x93c]
lea eax, [ebx - 0x10]
push eax
push dword [ebp - 0x92c]
push dword [ebp - 0x980]
push edi
call fcn.10011620
cmp eax, 0x80004004
je 0x10014712
test eax, eax
jns 0x10014314
push dword [ebp - 0x92c]
mov ecx, dword [ebp - 0x93c]
call fcn.100139c0
mov eax, dword [ebp - 0x92c]
mov byte [ebp - 4], 0xe
test eax, eax
je 0x1001424e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x93c]
add esi, 0x30
add ebx, 0x30
mov dword [ebp - 0x94c], ebx
cmp esi, dword [ecx + 0x60]
jne 0x10014020
mov ebx, dword [ebp - 0x96c]
mov esi, ebx
mov eax, dword [ebp - 0x968]
cmp ebx, eax
je 0x100142a8
nop dword [eax + eax]
push dword [esi]
call fcn.100139c0
test eax, eax
jns 0x10014295
push str.Split:_Cannot_delete_filter
call fcn.1000b010
mov eax, dword [ebp - 0x968]
add esi, 4
mov ecx, dword [ebp - 0x93c]
cmp esi, eax
jne 0x10014280
mov esi, ebx
cmp ebx, eax
je 0x100142c9
nop
mov ecx, dword [esi]
test ecx, ecx
je 0x100142c2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x968]
add esi, 4
cmp esi, eax
jne 0x100142b0
mov ecx, dword [ebp - 0x95c]
mov esi, ecx
mov eax, dword [ebp - 0x958]
mov dword [ebp - 0x968], ebx
cmp ecx, eax
je 0x10014300
mov ecx, dword [esi]
test ecx, ecx
je 0x100142f3
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x958]
add esi, 4
cmp esi, eax
jne 0x100142e1
mov ecx, dword [ebp - 0x95c]
mov esi, ecx
mov byte [ebp - 0x931], 1
mov dword [ebp - 0x958], esi
jmp 0x10014404
mov eax, dword [ebp - 0x92c]
mov dword [ebp - 0x938], eax
test eax, eax
je 0x1001432a
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x938]
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x96c]
call fcn.10015690
mov eax, dword [ebp - 0x938]
mov byte [ebp - 4], 0xf
test eax, eax
je 0x10014354
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x92c]
mov dword [ebp - 0x938], eax
test eax, eax
je 0x1001436a
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
lea eax, [ebp - 0x938]
mov byte [ebp - 4], 0x14
push eax
lea ecx, [ebp - 0x95c]
call fcn.10015690
mov eax, dword [ebp - 0x938]
mov byte [ebp - 4], 0xf
test eax, eax
je 0x10014394
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.Split:_Add_splitter___Ok
call fcn.1000b200
mov eax, dword [ebp - 0x92c]
mov byte [ebp - 4], 0xe
test eax, eax
je 0x100143b2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x930]
test eax, eax
je 0x100143cc
mov dword [ebp - 0x930], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x940]
lea edx, [ebp - 0x950]
push edx
lea edx, [ebp - 0x930]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x10013f20
mov ebx, dword [ebp - 0x96c]
mov esi, dword [ebp - 0x958]
jmp 0x10014404
mov esi, dword [ebp - 0x938]
mov eax, dword [ebp - 0x930]
mov byte [ebp - 4], 9
test eax, eax
je 0x10014418
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x940]
mov byte [ebp - 4], 8
test eax, eax
je 0x1001442c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
test edi, edi
je 0x1001443a
mov eax, dword [edi]
push edi
call dword [eax + 8]
cmp dword [ebp - 0x95c], esi
sete al
test al, al
jne 0x10014455
cmp byte [ebp - 0x931], al
je 0x10013e60
jmp 0x10014463
mov al, byte [ebp - 0x931]
test al, al
je 0x10014752
lea ecx, [ebp - 0x95c]
mov byte [ebp - 4], 0x16
call fcn.10014cb0
mov eax, dword [ebp - 0x948]
mov byte [ebp - 4], 2
test eax, eax
je 0x10014486
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x960]
mov eax, dword [ebp + 8]
add esi, 0x30
mov dword [ebp - 0x960], esi
cmp esi, dword [eax + 4]
jne 0x10013c20
push 0x100
lea eax, [ebp - 0x110]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
add esp, 0xc
call esi
sub eax, dword [ebp - 0x984]
push eax
push str.Split:_SplitSource_graph_building_time:__d
lea eax, [ebp - 0x110]
push 0x80
push eax
call fcn.10007ff0
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
call fcn.1000b200
call esi
cmp ebx, dword [ebp - 0x968]
mov edi, eax
sete cl
test cl, cl
jne 0x10014897
mov dword [ebp - 0x92c], 0
lea eax, [ebp - 0x92c]
mov byte [ebp - 4], 0x17
push eax
push 0x100283fc
push 0x17
push 0
push 0x1002d318
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
js 0x100146f5
cmp ebx, dword [ebp - 0x968]
je 0x10014677
nop
mov dword [ebp - 0x940], 0
lea eax, [ebp - 0x940]
mov byte [ebp - 4], 0x19
push eax
push 1
push 0
push 0
push 1
push dword [ebx]
call fcn.10008da0
mov esi, eax
add esp, 0x18
test esi, esi
js 0x1001487a
mov eax, dword [ebp - 0x940]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
js 0x1001487a
mov dword [ebp - 0x930], 0
mov eax, dword [ebp - 0x940]
lea edx, [ebp - 0x950]
push edx
lea edx, [ebp - 0x930]
mov dword [ebp - 0x950], 0
push edx
mov ecx, dword [eax]
push 1
push eax
mov byte [ebp - 4], 0x1c
call dword [ecx + 0xc]
test eax, eax
jne 0x1001461f
nop
cmp dword [ebp - 0x950], 0
je 0x1001461f
mov eax, dword [ebp - 0x92c]
push dword [ebp - 0x930]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, eax
test esi, esi
js 0x10014866
mov eax, dword [ebp - 0x930]
test eax, eax
je 0x100145ff
mov dword [ebp - 0x930], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x940]
lea edx, [ebp - 0x950]
push edx
lea edx, [ebp - 0x930]
push edx
mov ecx, dword [eax]
push 1
push eax
call dword [ecx + 0xc]
test eax, eax
je 0x100145c0
mov esi, dword [ebp - 0x93c]
mov ecx, esi
lea eax, [esi + 0xa4]
push eax
push dword [ebx]
call fcn.10011470
cmp eax, 0x80004004
je 0x1001485a
mov eax, dword [ebp - 0x930]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x10014654
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x940]
mov byte [ebp - 4], 0x17
test eax, eax
je 0x10014668
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
add ebx, 4
cmp ebx, dword [ebp - 0x968]
jne 0x10014540
mov eax, dword [ebp - 0x92c]
push dword [ebp - 0x988]
push 0x1002e968
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
jns 0x100146bb
push 4
push dword [ebp - 0x92c]
call fcn.10024281
mov eax, dword [ebp - 0x92c]
add esp, 8
test eax, eax
je 0x100146bb
mov dword [ebp - 0x92c], 0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
push eax
push str.Split:_SplitSource_enumeration_creation_time:__d
lea eax, [ebp - 0x110]
push 0x80
push eax
call fcn.10007ff0
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
call fcn.1000b200
push str.Split:_Done
call fcn.1000b010
xor esi, esi
mov eax, dword [ebp - 0x92c]
mov byte [ebp - 4], 2
test eax, eax
je 0x1001489c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1001489c
mov ecx, dword [ebp - 0x93c]
call fcn.10013a30
mov eax, dword [ebp - 0x92c]
mov esi, 0x80004004
mov byte [ebp - 4], 0xe
test eax, eax
je 0x10014736
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x930]
mov byte [ebp - 4], 9
test eax, eax
je 0x1001474a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, dword [ebp - 0x958]
jmp 0x10014784
lea ecx, [ebp - 0x95c]
mov byte [ebp - 4], 0x15
call fcn.10014cb0
mov eax, dword [ebp - 0x948]
mov byte [ebp - 4], 2
test eax, eax
je 0x100144a1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x100144a1
mov ebx, dword [ebp - 0x938]
mov eax, dword [ebp - 0x940]
mov byte [ebp - 4], 8
test eax, eax
je 0x10014798
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 5
test edi, edi
je 0x100147a6
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [ebp - 0x95c]
mov byte [ebp - 4], 3
test ecx, ecx
je 0x10014844
mov edi, ecx
cmp ecx, ebx
je 0x100147d9
nop
mov ecx, dword [edi]
test ecx, ecx
je 0x100147cc
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
add edi, 4
cmp edi, ebx
jne 0x100147c0
mov ecx, dword [ebp - 0x95c]
mov eax, dword [ebp - 0x954]
sub eax, ecx
sar eax, 2
cmp eax, 0x3fffffff
jbe 0x100147f1
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
shl eax, 2
cmp eax, 0x1000
jb 0x1001482d
test cl, 0x1f
je 0x10014806
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x10014813
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
sub ecx, eax
cmp ecx, 4
jae 0x10014820
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp ecx, 0x23
jbe 0x1001482b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov ecx, eax
push ecx
call fcn.10023c22
add esp, 4
jmp 0x10014844
mov ecx, edi
call fcn.10013a30
mov esi, 0x80004004
mov eax, dword [ebp - 0x948]
mov byte [ebp - 4], 2
test eax, eax
je 0x1001489c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x1001489c
mov ecx, esi
call fcn.10013a30
mov esi, 0x80004004
mov eax, dword [ebp - 0x930]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x1001487a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x940]
mov byte [ebp - 4], 0x17
test eax, eax
je 0x100146f5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x100146f5
mov esi, 0x80004005
lea ecx, [ebp - 0x96c]
mov byte [ebp - 4], 0x20
call fcn.10014cb0
jmp 0x100148b2
mov esi, 0x80004003
mov ecx, dword [ebp + 0x24]
cmp ecx, 8
jb 0x100148c9
push 2
inc ecx
push ecx
push dword [ebp + 0x10]
call fcn.10005560
add esp, 0xc
mov eax, esi
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.1002429d
mov esp, ebp
pop ebp
ret 0x24