Function at 0x1000ec20
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10081338
mov eax, dword fs:[0]
push eax
sub esp, 0x108
mov eax, dword [0x100aa394]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x70], edi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x7c], esi
mov dword [ebp - 4], 0
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], 0
call fcn.10004ec0
mov ecx, eax
test ecx, ecx
je 0x1000f6ed
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [esi], eax
mov eax, dword [edi]
mov ecx, edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x78], 1
mov eax, dword [eax + 0x1c]
call eax
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x64], eax
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x60], ecx
jb 0x1000ecbd
mov eax, dword [eax]
mov dword [ebp - 0x64], eax
or edi, 0xffffffff
cmp ecx, 0x10
jae 0x1000ecd8
movups xmm0, xmmword [eax]
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], 0xf
movups xmmword [ebp - 0x58], xmm0
jmp 0x1000ed46
mov esi, ecx
mov eax, 0x7fffffff
or esi, 0xf
cmp esi, eax
cmova esi, eax
lea ecx, [esi + 1]
cmp ecx, 0x1000
jb 0x1000ed16
lea eax, [ecx + 0x23]
cmp eax, ecx
cmovbe eax, edi
push eax
call fcn.1003f1dc
add esp, 4
test eax, eax
je 0x1000f6f7
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x1000ed29
test ecx, ecx
je 0x1000ed27
push ecx
call fcn.1003f1dc
add esp, 4
mov ecx, eax
jmp 0x1000ed29
xor ecx, ecx
mov eax, dword [ebp - 0x60]
inc eax
mov dword [ebp - 0x58], ecx
push eax
push dword [ebp - 0x64]
push ecx
call fcn.1005b350
mov eax, dword [ebp - 0x60]
add esp, 0xc
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], esi
mov dword [ebp - 4], 1
call fcn.1003c1f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1000ee96
push 0x2c
push str.f:lib_common_netshieldconfigconfigmgr.cpp
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
call fcn.10007ae0
push 3
push 0x10088b5c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10007ae0
mov byte [ebp - 4], 3
call fcn.1003c1f0
mov edi, eax
lea ecx, [ebp - 0x114]
push 0xe2
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.100034d0
mov esi, eax
push str._GetListFile_ConfigMgrImpl__QAE_AV__CStringT__WV__StrTraitATL__WV__ChTraitsCRT__W_ATL___ATL___ATL__H_Z
push esi
mov byte [ebp - 4], 4
call fcn.10004460
push str.list_url_:
push esi
call fcn.10004460
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push eax
push esi
call fcn.10004460
mov eax, dword [edi]
add esp, 0x18
mov ecx, edi
push esi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x114]
call fcn.10004590
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 2
cmp edx, 0x10
jb 0x1000ee49
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000ee3f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f6f7
push edx
push ecx
call fcn.1003f20c
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x1000ee93
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000ee89
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f6fc
push edx
push ecx
call fcn.1003f20c
add esp, 8
or edi, 0xffffffff
cmp dword [ebp - 0x48], 0
jne 0x1000ef67
call fcn.1003c1f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1000f6c5
push 0x2c
push str.f:lib_common_netshieldconfigconfigmgr.cpp
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.10007ae0
push 3
push 0x10088b5c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10007ae0
mov byte [ebp - 4], 6
call fcn.1003c1f0
mov edi, eax
lea ecx, [ebp - 0x114]
push 0xe5
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100034d0
mov esi, eax
push str._GetListFile_ConfigMgrImpl__QAE_AV__CStringT__WV__StrTraitATL__WV__ChTraitsCRT__W_ATL___ATL___ATL__H_Z
push esi
mov byte [ebp - 4], 7
call fcn.10004460
push str.list_url_is_empty
push esi
call fcn.10004460
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
push esi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x114]
call fcn.10004590
lea ecx, [ebp - 0x40]
call fcn.10003ec0
lea ecx, [ebp - 0x28]
call fcn.10003ec0
jmp 0x1000f6c5
lea eax, [ebp - 0x5c]
push 1
push eax
call fcn.10042e10
push 1
push str.net_shield
push dword [ebp - 0x5c]
lea eax, [ebp - 0x64]
mov byte [ebp - 4], 8
push eax
call fcn.100432d0
add esp, 0x18
mov ecx, dword [eax]
mov esi, dword [ebp - 0x5c]
add esi, 0xfffffff0
mov byte [ebp - 4], 9
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x1000efe4
cmp dword [esi + 0xc], 0
jl 0x1000efd8
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1000efd8
push edx
call fcn.10004cd0
add esp, 4
mov dword [ebp - 0x68], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000efd0
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x68]
add eax, 0x10
mov dword [ebp - 0x5c], eax
jmp 0x1000efe4
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10006390
mov edx, dword [ebp - 0x64]
mov eax, edi
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000f002
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
push str.netshield.dat
push dword [ebp - 0x5c]
lea eax, [ebp - 0x64]
push eax
call fcn.100432d0
add esp, 0x10
mov ecx, dword [eax]
mov esi, dword [ebp - 0x5c]
add esi, 0xfffffff0
mov byte [ebp - 4], 0xa
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x1000f070
cmp dword [esi + 0xc], 0
jl 0x1000f064
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x1000f064
push edx
call fcn.10004cd0
add esp, 4
mov dword [ebp - 0x68], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1000f05c
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x68]
add eax, 0x10
mov dword [ebp - 0x5c], eax
jmp 0x1000f070
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.10006390
mov edx, dword [ebp - 0x64]
mov eax, edi
mov byte [ebp - 4], 8
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000f08e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x5c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000f0db
cmp dword [ebp + 0xc], 0
jne 0x1000f0d2
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x5c]
push eax
call fcn.1000d1e0
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x1000f6c5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x1000f6c5
push dword [ebp - 0x5c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.1003c1f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1000f243
push 0x2c
push str.f:lib_common_netshieldconfigconfigmgr.cpp
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
call fcn.10007ae0
push 3
push 0x10088b5c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10007ae0
mov byte [ebp - 4], 0xc
call fcn.1003c1f0
mov edi, eax
lea ecx, [ebp - 0x114]
push 0xf6
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.100034d0
mov esi, eax
push str._GetListFile_ConfigMgrImpl__QAE_AV__CStringT__WV__StrTraitATL__WV__ChTraitsCRT__W_ATL___ATL___ATL__H_Z
push esi
mov byte [ebp - 4], 0xd
call fcn.10004460
push str.download_file_url:
push esi
call fcn.10004460
cmp dword [ebp - 0x44], 0x10
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push eax
push esi
call fcn.10004460
push str._path:
push esi
call fcn.10004460
mov eax, dword [ebp - 0x5c]
mov ecx, 0x10088dd4
test eax, eax
cmovne ecx, eax
push ecx
push esi
call fcn.10009540
mov eax, dword [edi]
add esp, 0x28
mov ecx, edi
push esi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x114]
call fcn.10004590
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0xb
cmp edx, 0x10
jb 0x1000f1f6
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000f1ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f701
push edx
push ecx
call fcn.1003f20c
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 8
cmp edx, 0x10
jb 0x1000f240
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000f236
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f706
push edx
push ecx
call fcn.1003f20c
add esp, 8
or edi, 0xffffffff
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov ecx, dword [ebp - 0x70]
mov dword [ecx + 0x54], eax
call fcn.10004ec0
mov ecx, eax
test ecx, ecx
je 0x1000f70b
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x64], eax
cmp dword [ebp - 0x44], 0x10
lea esi, [ebp - 0x58]
mov byte [ebp - 4], 0xe
cmovae esi, dword [ebp - 0x58]
mov dword [ebp - 0x6c], esi
call fcn.10004ec0
mov ecx, eax
test ecx, ecx
je 0x1000f715
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x60], eax
push esi
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xf
call fcn.10004b90
test al, al
jne 0x1000f324
test esi, esi
je 0x1000f31c
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea edx, [eax - 1]
mov dword [ebp - 0x68], edx
test edx, edx
jle 0x1000f31c
mov esi, dword [ebp - 0x60]
mov ecx, 1
mov eax, dword [esi - 8]
sub ecx, dword [esi - 4]
sub eax, edx
or eax, ecx
jge 0x1000f2f4
push edx
lea ecx, [ebp - 0x60]
call fcn.10006080
mov esi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
push edx
push esi
push 0xffffffffffffffff
push dword [ebp - 0x6c]
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov eax, dword [ebp - 0x68]
cmp eax, dword [esi - 8]
jg 0x1000f71f
xor ecx, ecx
mov dword [esi - 0xc], eax
mov word [esi + eax*2], cx
jmp 0x1000f327
lea ecx, [ebp - 0x60]
call fcn.1000e4d0
mov esi, dword [ebp - 0x60]
mov eax, dword [ebp - 0x70]
mov byte [ebp - 4], 0x10
push dword [eax + 0x54]
lea eax, [ebp - 0x64]
push 0xea60
push eax
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.10011500
add esp, 0x14
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 0xe
add esi, 0xfffffff0
mov ecx, edi
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x1000f368
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.1003c1f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
mov esi, dword [ebp - 0x64]
movzx eax, al
sub eax, 1
jne 0x1000f4b0
push 0x2c
push str.f:lib_common_netshieldconfigconfigmgr.cpp
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10007ae0
push 3
push 0x10088b5c
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.10007ae0
mov byte [ebp - 4], 0x12
call fcn.1003c1f0
mov dword [ebp - 0x6c], eax
lea ecx, [ebp - 0x114]
push 0xfd
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.100034d0
mov edi, eax
push str._GetListFile_ConfigMgrImpl__QAE_AV__CStringT__WV__StrTraitATL__WV__ChTraitsCRT__W_ATL___ATL___ATL__H_Z
push edi
mov byte [ebp - 4], 0x13
call fcn.10004460
push str.response:
push edi
call fcn.10004460
push esi
push edi
call fcn.10004460
mov ecx, dword [ebp - 0x6c]
add esp, 0x18
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x114]
call fcn.10004590
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 0x11
cmp edx, 0x10
jb 0x1000f463
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000f459
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f729
push edx
push ecx
call fcn.1003f20c
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 0xe
cmp edx, 0x10
jb 0x1000f4ad
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000f4a3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f72e
push edx
push ecx
call fcn.1003f20c
add esp, 8
or edi, 0xffffffff
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x54]
test eax, eax
je 0x1000f4cb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x70]
mov dword [eax + 0x54], 0
cmp dword [ebp - 0x68], 0
je 0x1000f5c7
push dword [ebp - 0x5c]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1000f5c7
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x5c]
mov edx, dword [edx]
lea ecx, [eax - 0x10]
sub edx, 0x10
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x70], edx
cmp ecx, edx
je 0x1000f553
cmp dword [edx + 0xc], 0
lea esi, [edx + 0xc]
mov dword [ebp - 0x68], esi
mov esi, dword [ebp - 0x64]
jl 0x1000f547
mov ecx, dword [ecx]
cmp ecx, dword [edx]
jne 0x1000f547
push dword [ebp - 0x6c]
call fcn.10004cd0
mov dword [ebp - 0x6c], eax
add esp, 4
mov eax, dword [ebp - 0x68]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x1000f53a
mov eax, dword [ebp - 0x70]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x6c]
add eax, 0x10
mov dword [ecx], eax
jmp 0x1000f553
push dword [eax - 0xc]
mov ecx, dword [ebp - 0x74]
push eax
call fcn.10006390
mov byte [ebp - 4], 8
add esi, 0xfffffff0
mov eax, edi
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x1000f56e
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], edi
dec edi
test edi, edi
jg 0x1000f58a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x1000f6cd
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1000f5b8
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000f733
push edx
push ecx
call fcn.1003f20c
add esp, 8
jmp 0x1000f6cd
call fcn.1003c1f0
mov ecx, eax
push 1
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x1000f68b
push 0x2c
push str.f:lib_common_netshieldconfigconfigmgr.cpp
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.10007ae0
push 3
push 0x10088b5c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x14
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.10007ae0
mov byte [ebp - 4], 0x15
call fcn.1003c1f0
mov dword [ebp - 0x6c], eax
lea ecx, [ebp - 0x114]
push 0x104
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.100034d0
mov edi, eax
push str._GetListFile_ConfigMgrImpl__QAE_AV__CStringT__WV__StrTraitATL__WV__ChTraitsCRT__W_ATL___ATL___ATL__H_Z
push edi
mov byte [ebp - 4], 0x16
call fcn.10004460
push str.download_file_failed
push edi
call fcn.10004460
mov ecx, dword [ebp - 0x6c]
add esp, 0x10
mov eax, dword [ecx]
push edi
call dword [eax + 0x1c]
lea ecx, [ebp - 0x114]
call fcn.10004590
lea ecx, [ebp - 0x40]
call fcn.10003ec0
lea ecx, [ebp - 0x28]
call fcn.10003ec0
lea edx, [esi - 0x10]
mov byte [ebp - 4], 8
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x1000f6a9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x5c]
mov byte [ebp - 4], 1
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x1000f6c5
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x58]
call fcn.10003ec0
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003f57d
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.10004b70
call fcn.1005f339
call fcn.1005f339
call fcn.1005f339
call fcn.1005f339
push 0x80004005
call fcn.10004b70
push 0x80004005
call fcn.10004b70
push 0x80070057
call fcn.10004b70
call fcn.1005f339
call fcn.1005f339
call fcn.1005f339
int3