Function at 0x100099c0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100fa8d8
mov eax, dword fs:[0]
push eax
sub esp, 0x60
push ebx
push esi
push edi
mov eax, dword [0x1013f030]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
lea eax, [ebx + 0x2c]
push eax
mov dword [ebp - 0x18], vtable.ProtocolFilters::AutoLock.0
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x50], vtable.ProtocolFilters::IOB.0
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0x6400000
mov dword [ebp - 0x3c], 1
push ebx
mov byte [ebp - 4], 1
call fcn.1000aff0
mov esi, dword [ebp + 8]
lea ecx, [ebp - 0x6c]
call fcn.10009840
push eax
lea eax, [ebp - 0x20]
push eax
mov esi, ebx
mov byte [ebp - 4], 2
call fcn.1000f7c0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x54], 0x10
jb 0x10009a5c
mov ecx, dword [ebp - 0x68]
push ecx
call fcn.10031f94
add esp, 4
mov edi, dword [ebp - 0x20]
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx]
mov dword [ebp - 0x24], edx
test edi, edi
je 0x10009a6f
cmp edi, eax
je 0x10009a74
call fcn.10031672
mov esi, dword [ebp - 0x1c]
cmp esi, dword [ebp - 0x24]
je 0x10009b72
test edi, edi
jne 0x10009b15
call fcn.10031672
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x10009a99
call fcn.10031672
cmp dword [esi + 0x48], 0
je 0x10009b28
test edi, edi
jne 0x10009b1c
call fcn.10031672
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x10009ab8
call fcn.10031672
push 0
call fcn.10032148
add esp, 4
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
test edi, edi
jne 0x10009b20
call fcn.10031672
xor eax, eax
cmp esi, dword [eax + 0x18]
jne 0x10009add
call fcn.10031672
mov eax, dword [esi + 0x48]
mov esi, dword [ebp + 0xc]
call fcn.10013840
test edi, edi
jne 0x10009b24
call fcn.10031672
mov esi, dword [ebp - 0x1c]
cmp esi, dword [edi + 0x18]
jne 0x10009afe
call fcn.10031672
mov eax, dword [esi + 0x48]
mov esi, dword [ebp + 0x10]
add eax, 0x18
call fcn.10013840
mov ecx, dword [ebp - 0x14]
push ecx
jmp 0x10009dcc
mov eax, dword [edi]
jmp 0x10009a8f
mov eax, dword [edi]
jmp 0x10009aae
mov eax, dword [edi]
jmp 0x10009ad3
mov edi, dword [edi]
jmp 0x10009af1
test edi, edi
jne 0x10009b92
call fcn.10031672
cmp esi, dword [edi + 0x18]
jne 0x10009b3b
call fcn.10031672
mov edx, dword [esi + 0x30]
mov eax, dword [ebx + 0x28]
push 0
push edx
push eax
call fcn.1003170c
mov ecx, dword [ebx + 0x28]
add esp, 0xc
push ecx
push 0x10
lea edx, [ebp - 0x38]
push 1
push edx
call fcn.10031405
add esp, 0x10
cmp eax, 0x10
je 0x10009b96
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.10013810
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [edi]
jmp 0x10009b31
movzx eax, word [ebp - 0x32]
movzx ecx, word [ebp - 0x34]
add eax, ecx
lea esi, [ebp - 0x50]
call fcn.10013aa0
test al, al
jne 0x10009bd8
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.10013810
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
movzx eax, word [ebp - 0x36]
mov ecx, dword [ebx + 0x28]
push 1
push eax
push ecx
call fcn.1003170c
mov edx, dword [ebx + 0x28]
mov esi, dword [ebp - 0x48]
mov edi, dword [ebp - 0x4c]
add esp, 0xc
push edx
push esi
push 1
push edi
call fcn.10031405
add esp, 0x10
cmp eax, esi
jne 0x10009b66
push 0
push esi
mov ebx, edi
call fcn.1000b9e0
movzx ebx, word [ebp - 0x34]
add esp, 8
test edi, edi
je 0x10009bac
test ebx, ebx
je 0x10009bac
mov edi, dword [ebp + 0xc]
mov ecx, dword [edi + 8]
lea eax, [ecx + ebx + 1]
mov ecx, dword [edi + 0x10]
cmp eax, ecx
ja 0x10009bac
mov esi, dword [edi + 0xc]
cmp eax, esi
jbe 0x10009c8a
test esi, esi
jne 0x10009c47
mov esi, 0xa
cmp dword [edi + 0x14], 1
jne 0x10009c59
cmp esi, eax
ja 0x10009c5b
add esi, esi
cmp esi, eax
jbe 0x10009c51
jmp 0x10009c5b
mov esi, eax
cmp esi, ecx
jb 0x10009c61
mov esi, eax
mov eax, dword [edi + 4]
push esi
test eax, eax
je 0x10009c74
push eax
call fcn.10032818
add esp, 8
jmp 0x10009c7c
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10009bac
mov dword [edi + 0xc], esi
mov dword [edi + 4], eax
mov edx, dword [edi + 4]
mov esi, dword [ebp - 0x4c]
add edx, dword [edi + 8]
push ebx
push esi
push edx
call fcn.10037db0
add dword [edi + 8], ebx
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
mov byte [eax + ecx], 0
movzx ecx, word [ebp - 0x34]
movzx ebx, word [ebp - 0x32]
add esp, 0xc
add ecx, esi
mov dword [ebp + 8], ecx
je 0x10009b66
test ebx, ebx
je 0x10009b66
mov edi, dword [ebp + 0x10]
mov eax, dword [edi + 8]
mov edx, dword [edi + 0x10]
lea eax, [eax + ebx + 1]
cmp eax, edx
ja 0x10009b66
mov esi, dword [edi + 0xc]
cmp eax, esi
jbe 0x10009d31
test esi, esi
jne 0x10009ceb
mov esi, 0xa
cmp dword [edi + 0x14], 1
jne 0x10009cfd
cmp esi, eax
ja 0x10009cff
add esi, esi
cmp esi, eax
jbe 0x10009cf5
jmp 0x10009cff
mov esi, eax
cmp esi, edx
jb 0x10009d05
mov esi, eax
mov eax, dword [edi + 4]
push esi
test eax, eax
je 0x10009d18
push eax
call fcn.10032818
add esp, 8
jmp 0x10009d20
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10009b66
mov ecx, dword [ebp + 8]
mov dword [edi + 0xc], esi
mov dword [edi + 4], eax
push ebx
push ecx
mov ecx, dword [edi + 8]
add ecx, dword [edi + 4]
push ecx
call fcn.10037db0
add dword [edi + 8], ebx
mov eax, dword [edi + 8]
mov edx, dword [edi + 4]
add esp, 0xc
push 0
mov byte [eax + edx], 0
call fcn.10032148
mov ebx, eax
mov eax, edx
add esp, 4
lea esi, [ebp - 0x20]
mov dword [ebp + 0x10], eax
call fcn.1000f840
mov dword [eax + 0x28], ebx
mov ebx, dword [ebp + 0x10]
push 0x30
mov dword [eax + 0x2c], ebx
call fcn.10031dbc
add esp, 4
test eax, eax
je 0x10009d88
call fcn.10009510
mov ebx, eax
jmp 0x10009d8a
xor ebx, ebx
lea esi, [ebp - 0x20]
call fcn.1000f840
mov dword [eax + 0x38], ebx
call fcn.1000f840
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ecx + 0x38]
call fcn.10013840
lea esi, [ebp - 0x20]
call fcn.1000f840
mov esi, dword [eax + 0x38]
add esi, 0x18
mov eax, edi
call fcn.10013840
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.10013810
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc