Function at 0x100017e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004ebc2
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x1005d500]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
mov eax, dword [0x1005d500]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], vtable.FileService.0
xor esi, esi
mov dword [esp + 0x90], esi
xor ebx, ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
push esi
mov byte [esp + 0x94], 1
mov ecx, dword [edi + 0x24]
push 0x20
push ecx
call fcn.10035716
add esp, 0xc
mov dword [esp + 0x14], ebx
cmp dword [edi + 0x2c], ebx
jbe 0x10001a3d
lea ebx, [ebx]
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
lea eax, [esp + 0x3c]
mov byte [esp + 0x90], 2
call fcn.10001fe0
test al, al
je 0x10001b9b
lea edx, [esp + 0x3c]
cmp edx, esi
jae 0x1000192c
mov eax, edx
cmp ebx, eax
ja 0x1000192c
mov ecx, dword [esp + 0x28]
mov edi, edx
sub edi, ebx
cmp esi, ecx
jne 0x10001905
mov eax, esi
sub eax, ebx
sar eax, 6
cmp eax, 0x3fffffe
ja 0x10001bb1
sub ecx, ebx
inc eax
sar ecx, 6
cmp eax, ecx
jbe 0x10001905
mov edx, ecx
shr edx, 1
mov esi, 0x3ffffff
sub esi, edx
cmp esi, ecx
jae 0x100018eb
xor ecx, ecx
jmp 0x100018ed
add ecx, edx
cmp ecx, eax
jae 0x100018f3
mov ecx, eax
push ecx
lea ecx, [esp + 0x24]
call fcn.100022e0
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
and edi, 0xffffffc0
add edi, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x90], 3
test esi, esi
je 0x100019f1
call fcn.10001d70
jmp 0x100019f1
mov ecx, dword [esp + 0x28]
cmp esi, ecx
jne 0x1000197d
mov eax, esi
sub eax, ebx
sar eax, 6
cmp eax, 0x3fffffe
ja 0x10001bb1
sub ecx, ebx
inc eax
sar ecx, 6
cmp eax, ecx
jbe 0x1000197d
mov edx, ecx
shr edx, 1
mov esi, 0x3ffffff
sub esi, edx
cmp esi, ecx
jae 0x10001963
xor ecx, ecx
jmp 0x10001965
add ecx, edx
cmp ecx, eax
jae 0x1000196b
mov ecx, eax
push ecx
lea ecx, [esp + 0x24]
call fcn.100022e0
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x34], esi
mov dword [esp + 0x18], esi
mov byte [esp + 0x90], 4
test esi, esi
je 0x100019f1
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x44]
push ecx
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov ecx, esi
mov byte [esi], 0
call fcn.10002da0
mov edx, dword [esp + 0x58]
mov dword [esi + 0x1c], edx
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x20], eax
mov ecx, dword [esp + 0x60]
mov dword [esi + 0x24], ecx
mov edx, dword [esp + 0x64]
mov dword [esi + 0x28], edx
mov eax, dword [esp + 0x68]
mov dword [esi + 0x2c], eax
mov ecx, dword [esp + 0x6c]
mov dword [esi + 0x30], ecx
mov edx, dword [esp + 0x70]
mov dword [esi + 0x34], edx
mov al, byte [esp + 0x74]
mov byte [esi + 0x38], al
mov ecx, dword [esp + 0x78]
mov dword [esi + 0x3c], ecx
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x1c]
mov eax, dword [edi + 0x24]
push 1
push edx
add esi, 0x40
push eax
mov dword [esp + 0x30], esi
call fcn.10035716
add esp, 0xc
mov byte [esp + 0x90], 1
cmp dword [esp + 0x50], 0x10
jb 0x10001a2b
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10032db0
add esp, 4
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [edi + 0x2c]
jb 0x10001870
mov edi, esi
sub edi, ebx
sar edi, 6
test edi, edi
setne al
mov dword [esp + 0x18], edi
test al, al
je 0x10001be4
mov ecx, dword [esp + 0x30]
cmp dword [ecx + 0x14], 0x10
jb 0x10001a61
mov ecx, dword [ecx]
call fcn.10020c80
test al, al
je 0x10001be4
mov dword [esp + 0x14], 0
test edi, edi
jle 0x10001b3a
lea edi, [ebx + 0x30]
push 0xffffffffffffffff
push 0
lea eax, [edi - 0x30]
push eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
mov byte [esp + 0x48], 0
call fcn.10002da0
mov ecx, dword [edi - 0x14]
mov dword [esp + 0x58], ecx
mov edx, dword [edi - 0x10]
mov dword [esp + 0x5c], edx
mov eax, dword [edi - 0xc]
mov dword [esp + 0x60], eax
mov ecx, dword [edi - 8]
mov dword [esp + 0x64], ecx
mov edx, dword [edi - 4]
mov dword [esp + 0x68], edx
mov eax, dword [edi]
mov dword [esp + 0x6c], eax
mov ecx, dword [edi + 4]
mov dword [esp + 0x70], ecx
mov dl, byte [edi + 8]
mov byte [esp + 0x74], dl
mov eax, dword [edi + 0xc]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0x98], 5
call fcn.10001440
test al, al
je 0x10001bbb
mov byte [esp + 0x90], 1
cmp dword [esp + 0x50], 0x10
jb 0x10001b24
mov eax, dword [esp + 0x3c]
push eax
call fcn.10032db0
add esp, 4
mov eax, dword [esp + 0x14]
inc eax
add edi, 0x40
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0x18]
jl 0x10001a81
test ebx, ebx
je 0x10001b76
mov edi, ebx
cmp ebx, esi
je 0x10001b6d
cmp dword [edi + 0x14], 0x10
jb 0x10001b55
mov edx, dword [edi]
push edx
call fcn.10032db0
add esp, 4
mov dword [edi + 0x14], 0xf
mov dword [edi + 0x10], 0
mov byte [edi], 0
add edi, 0x40
cmp edi, esi
jne 0x10001b44
push ebx
call fcn.10032db0
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.10034d4a
mov esp, ebp
pop ebp
ret 4
cmp dword [esp + 0x50], 0x10
jb 0x10001be4
mov edx, dword [esp + 0x3c]
push edx
call fcn.10032db0
add esp, 4
jmp 0x10001be4
push str.vector_T__too_long
call fcn.100341c7
cmp dword [esp + 0x50], 0x10
jb 0x10001bcf
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.10032db0
add esp, 4
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
test ebx, ebx
je 0x10001bfa
mov edi, esi
mov eax, ebx
call fcn.100022a0
push ebx
call fcn.10032db0
add esp, 4
xor al, al
jmp 0x10001b78