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

Disassembly:
mov eax, 0x56617c
call fcn.0052a208
sub esp, 0x34
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, str.Flags
push dword [esi + 0xa8]
lea eax, [ebp - 0x1c]
mov ecx, ebx
push edi
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de78
push dword [esi + 0xac]
lea eax, [ebp - 0x1c]
mov ecx, ebx
push str.SourceType
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0xb4]
lea eax, [ebp - 0x1c]
mov ecx, ebx
push dword [esi + 0xb0]
push str.SourceSize
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
mov eax, dword [esi + 0xbc]
mov ecx, dword [esi + 0xb8]
test eax, eax
jl 0x447aac
jg 0x447a93
test ecx, ecx
jbe 0x447aac
push eax
push ecx
lea eax, [ebp - 0x1c]
push str.SourceDurationInMs
push eax
mov ecx, ebx
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
push dword [esi + 0xc0]
lea eax, [ebp - 0x1c]
mov ecx, ebx
push str.MaxConnections
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
test eax, eax
jl 0x447af8
jg 0x447adf
test ecx, ecx
jbe 0x447af8
push eax
push ecx
lea eax, [ebp - 0x1c]
push str.CacheSize
push eax
mov ecx, ebx
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
push dword [esi + 0xd0]
lea eax, [ebp - 0x1c]
mov ecx, ebx
push str.HttpIOModule
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
mov ecx, dword [ebp + 8]
mov ebx, str.State
lea eax, [ebp + 0xc]
push ebx
push eax
call fcn.0042e29c
lea ecx, [ebp + 0xc]
call fcn.0042ddc0
test al, al
jne 0x447c56
push dword [esi + 0x54]
lea eax, [ebp - 0x1c]
lea ecx, [ebp + 0xc]
push edi
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de78
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
je 0x447b7b
push 0x64
lea eax, [ebp - 0x1c]
push ebx
push eax
lea ecx, [ebp + 0xc]
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push 0xa
push str.Result
lea eax, [ebp - 0x1c]
jmp 0x447b9d
push dword [esi + 0x58]
lea eax, [ebp - 0x1c]
lea ecx, [ebp + 0xc]
push ebx
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0x60]
lea eax, [ebp - 0x1c]
push str.Result
push eax
lea ecx, [ebp + 0xc]
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0x5c]
lea eax, [ebp - 0x1c]
lea ecx, [ebp + 0xc]
push str.Substate
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0x64]
lea eax, [ebp - 0x1c]
lea ecx, [ebp + 0xc]
push str.Error
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0x68]
lea eax, [ebp - 0x1c]
lea ecx, [ebp + 0xc]
push str.Misc
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de78
cmp dword [esi + 0x58], 0x64
jne 0x447c0a
cmp dword [esi + 0x60], 0x64
je 0x447c56
push dword [esi + 0x74]
lea eax, [ebp - 0x1c]
lea ecx, [ebp + 0xc]
push dword [esi + 0x70]
push str.CompletedSize
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
xor edi, edi
cmp eax, edi
jl 0x447c58
jg 0x447c3a
cmp ecx, edi
jbe 0x447c58
push eax
push ecx
lea eax, [ebp - 0x1c]
push str.CompletedDurationInMs
push eax
lea ecx, [ebp + 0xc]
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
jmp 0x447c58
xor edi, edi
mov eax, dword [esi + 8]
cmp dword [eax - 8], edi
je 0x447c97
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push str.SourceURL
push eax
call fcn.0042e29c
lea ecx, [ebp - 0x1c]
call fcn.0042ddc0
test al, al
jne 0x447f97
push dword [esi + 8]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x1c]
push eax
call fcn.0042e0b7
mov ecx, eax
call fcn.0042e423
mov eax, dword [esi + 0xc]
cmp dword [eax - 8], edi
je 0x447cd6
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x1c]
push str.CacheFile
push eax
call fcn.0042e29c
lea ecx, [ebp - 0x1c]
call fcn.0042ddc0
test al, al
jne 0x447f97
push dword [esi + 0xc]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x1c]
push eax
call fcn.0042e0b7
mov ecx, eax
call fcn.0042e423
mov eax, dword [0x643788]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x10]
push str.SourceInfo
push eax
mov dword [ebp - 4], edi
call fcn.0042e29c
lea ecx, [ebp - 0x10]
call fcn.0042ddc0
test al, al
jne 0x447de8
push dword [esi + 0x10]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x10]
push str.Mask
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de78
push dword [esi + 0x14]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x10]
push str.Attributes
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de78
lea eax, [esi + 0x18]
lea ecx, [ebp - 0x14]
push eax
call fcn.00546b26
mov eax, dword [ebp - 0x14]
cmp dword [eax - 8], edi
je 0x447d65
push eax
lea eax, [ebp - 0x24]
push str.ProtocolName
push eax
lea ecx, [ebp - 0x10]
call fcn.0042e110
mov ecx, eax
call fcn.0042de54
mov eax, dword [esi + 0x38]
cmp eax, edi
je 0x447d85
push eax
lea eax, [ebp - 0x24]
push str.MaxConnections
push eax
lea ecx, [ebp - 0x10]
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0x3c]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x10]
push str.Resumable
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [esi + 0x44]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x10]
push dword [esi + 0x40]
push 0x5b31a4
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
mov ecx, dword [esi + 0x4c]
mov eax, dword [esi + 0x48]
cmp ecx, edi
jl 0x447de8
jg 0x447dce
cmp eax, edi
jbe 0x447de8
push ecx
push eax
lea eax, [ebp - 0x24]
push str.DurationInMs
push eax
lea ecx, [ebp - 0x10]
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
cmp dword [esi + 0x98], edi
jle 0x447f6c
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x20]
push str.Segments
push eax
call fcn.0042e29c
lea ecx, [ebp - 0x20]
call fcn.0042ddc0
test al, al
jne 0x447f8b
cmp dword [esi + 0x98], edi
mov dword [ebp - 0x1c], edi
jle 0x447f6c
lea eax, [ebp - 0x18]
push str.Segment
push eax
lea ecx, [ebp - 0x20]
call fcn.0042e29c
lea ecx, [ebp - 0x18]
call fcn.0042ddc0
test al, al
jne 0x447f8b
mov eax, dword [esi + 0x94]
mov ecx, dword [ebp - 0x1c]
mov edi, dword [eax + ecx*4]
lea eax, [ebp - 0x24]
lea ecx, [ebp - 0x18]
push dword [edi + 0xc]
push dword [edi + 8]
push 0x5c1f20
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
push dword [edi + 0x14]
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x18]
push dword [edi + 0x10]
push str.Length
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
lea eax, [ebp + 8]
push ebx
push eax
lea ecx, [ebp - 0x18]
call fcn.0042e29c
lea ecx, [ebp + 8]
call fcn.0042ddc0
test al, al
jne 0x447f5a
push dword [edi + 0x20]
lea eax, [ebp - 0x2c]
lea ecx, [ebp + 8]
push ebx
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [edi + 0x24]
lea eax, [ebp - 0x30]
lea ecx, [ebp + 8]
push str.Substate
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [edi + 0x28]
lea eax, [ebp - 0x34]
lea ecx, [ebp + 8]
push str.Result
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [edi + 0x2c]
lea eax, [ebp - 0x38]
lea ecx, [ebp + 8]
push str.Error
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042de66
push dword [edi + 0x3c]
lea eax, [ebp - 0x3c]
lea ecx, [ebp + 8]
push dword [edi + 0x38]
push str.CompletedSize
push eax
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
mov eax, dword [edi + 0x40]
mov edi, dword [edi + 0x44]
test edi, edi
jl 0x447f5a
jg 0x447f40
test eax, eax
jbe 0x447f5a
push edi
push eax
lea eax, [ebp - 0x40]
push str.CompletedDurationInMs
push eax
lea ecx, [ebp + 8]
call fcn.0042e110
mov ecx, eax
call fcn.0042dea1
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0x98]
jl 0x447e24
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00546968
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.00546968
or eax, 0xffffffff
jmp 0x447f7a