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

Disassembly:
sub esp, 0x20
push esi
mov esi, dword [esp + 0x28]
cmp byte [esi + 0x4d], 0
jne 0x4405c1
cmp byte [esi + 0x4e], 0
jne 0x4405c1
cmp dword [esi + 0x28], 0
jne 0x44010f
mov eax, 0xffffffe7
or edx, 0xffffffff
pop esi
add esp, 0x20
ret
mov eax, dword [esp + 0x34]
push ebx
mov ebx, dword [esi + 0x10]
add ebx, 0x78
mov dword [esp + 0x24], ebx
push ebp
push edi
sub eax, 0
je 0x4403a4
dec eax
je 0x440391
dec eax
jne 0x44058f
mov ebp, dword [ebx + 0x28]
xor edi, edi
mov dword [esp + 0x18], ebp
cmp dword [ebp + 4], edi
jl 0x440196
jg 0x44014c
cmp dword [ebp], edi
jb 0x440196
mov eax, ebp
mov edi, edi
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
test edx, edx
jl 0x440196
jg 0x440160
test ecx, ecx
jb 0x440196
lea ebp, [edi + 1]
cmp ebp, dword [ebx + 0x18]
jae 0x440196
add ecx, dword [eax]
mov edi, ebp
mov ebp, dword [esp + 0x18]
adc edx, dword [eax + 4]
lea eax, [edi + edi*2]
shl eax, 3
mov dword [eax + ebp], ecx
mov dword [eax + ebp + 4], edx
mov ebp, dword [ebx + 0x28]
add eax, ebp
mov dword [esp + 0x18], ebp
cmp dword [eax + 4], 0
jg 0x440150
jl 0x440196
cmp dword [eax], 0
jae 0x440150
push edi
push esi
call fcn.004413b0
cdq
add esp, 8
mov ecx, eax
or ecx, edx
jne 0x440389
lea ebp, [edi + edi*2]
shl ebp, 3
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x84]
test ecx, ecx
je 0x44059f
push 2
push 0
push 0
push dword [esi + 0x18]
push eax
call ecx
add esp, 0x14
mov ecx, eax
test edx, edx
jl 0x440387
jg 0x4401e5
test ecx, ecx
jb 0x440387
mov eax, dword [ebx + 0x28]
lea esi, [edi + 1]
mov dword [esp + 0x20], esi
mov dword [eax + ebp + 8], ecx
mov dword [eax + ebp + 0xc], edx
mov eax, dword [ebx + 0x28]
mov ecx, dword [eax + ebp + 8]
add ecx, dword [eax + ebp]
mov edx, dword [eax + ebp + 0xc]
adc edx, dword [eax + ebp + 4]
cmp esi, dword [ebx + 0x18]
mov esi, dword [esp + 0x34]
jae 0x440243
mov edi, dword [esp + 0x20]
add ebp, 0x18
push edi
push esi
mov dword [eax + ebp], ecx
mov dword [eax + ebp + 4], edx
call fcn.004413b0
cdq
add esp, 8
mov dword [esp + 0x28], eax
or eax, edx
je 0x4401b1
mov eax, dword [esp + 0x28]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret
mov esi, dword [esp + 0x3c]
lea eax, [edi + edi*2]
shl eax, 3
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x28]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, ecx
add eax, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, edx
adc eax, esi
mov dword [esp + 0x10], esi
mov esi, dword [ebx + 0x28]
cmp eax, dword [esi + ebp + 4]
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
jg 0x440333
jl 0x4402a1
mov esi, dword [esp + 0x14]
mov eax, dword [ebx + 0x28]
mov ebp, dword [esp + 0x20]
cmp ebp, dword [eax + esi]
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
jae 0x440333
mov esi, dword [ebx + 0x28]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov eax, dword [esi + ebx + 8]
mov ebx, dword [esi + ebx + 0xc]
mov esi, dword [esp + 0x3c]
add ebp, eax
adc esi, ebx
mov dword [esp + 0x10], esi
test edi, edi
je 0x44032f
mov ebx, dword [esp + 0x24]
dec edi
lea eax, [edi + edi*2]
shl eax, 3
mov dword [esp + 0x14], eax
mov ecx, dword [ebx + eax + 8]
mov edx, dword [ebx + eax + 0xc]
mov dword [esp + 0x1c], ecx
add ecx, dword [ebx + eax]
mov dword [esp + 0x20], edx
adc edx, dword [ebx + eax + 4]
mov eax, ecx
mov ebx, dword [esp + 0x14]
add eax, ebp
mov dword [esp + 0x28], eax
mov eax, edx
adc eax, esi
mov esi, dword [esp + 0x18]
cmp eax, dword [esi + ebx + 4]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
jl 0x4402b8
jg 0x44032f
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
cmp esi, dword [ebx + eax]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
jb 0x4402b8
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x18]
lea eax, [edi + edi*2]
shl eax, 3
push edi
push esi
mov dword [esp + 0x3c], eax
sub ecx, dword [ebx + eax]
sbb edx, dword [ebx + eax + 4]
add ebp, ecx
adc dword [esp + 0x18], edx
call fcn.004413b0
mov ebx, dword [esp + 0x34]
add esp, 8
cdq
mov ecx, eax
or ecx, edx
jne 0x440389
push 0
push dword [esp + 0x14]
push ebp
push esi
call fcn.00441260
add esp, 0x10
mov ecx, eax
test edx, edx
jg 0x44054a
jl 0x440387
test ecx, ecx
jae 0x44054a
mov eax, ecx
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret
mov ebp, dword [esp + 0x38]
add ebp, dword [esi]
mov ecx, dword [esp + 0x3c]
adc ecx, dword [esi + 4]
mov dword [esp + 0x10], ecx
jmp 0x4403b0
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x28]
xor edi, edi
cmp dword [eax + 4], edi
jl 0x440420
jg 0x4403c0
cmp dword [eax], edi
jb 0x440420
mov esi, eax
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
test edx, edx
jl 0x44041c
jg 0x4403d2
test ecx, ecx
jb 0x44041c
add ecx, dword [eax]
adc edx, dword [eax + 4]
mov eax, ecx
sub eax, 1
mov dword [esp + 0x2c], eax
mov eax, edx
sbb eax, 0
cmp eax, dword [esp + 0x10]
jg 0x44041c
jl 0x4403f3
cmp dword [esp + 0x2c], ebp
ja 0x44041c
lea eax, [edi + 1]
cmp eax, dword [ebx + 0x18]
jae 0x44041c
mov edi, eax
lea eax, [edi + edi*2]
shl eax, 3
mov dword [esi + eax], ecx
mov dword [esi + eax + 4], edx
mov esi, dword [ebx + 0x28]
add eax, esi
cmp dword [eax + 4], 0
jg 0x4403c2
jl 0x44041c
cmp dword [eax], 0
jae 0x4403c2
mov esi, dword [esp + 0x34]
push edi
push esi
call fcn.004413b0
cdq
add esp, 8
mov ecx, eax
or ecx, edx
jne 0x440389
lea eax, [edi + edi*2]
shl eax, 3
mov dword [esp + 0x18], eax
nop
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x84]
test ecx, ecx
je 0x44059f
push 2
push 0
push 0
push dword [esi + 0x18]
push eax
call ecx
add esp, 0x14
mov ecx, eax
test edx, edx
jl 0x440387
jg 0x440474
test ecx, ecx
jb 0x440387
mov eax, dword [ebx + 0x28]
mov esi, dword [esp + 0x18]
mov dword [esi + eax + 8], ecx
mov ecx, esi
mov dword [ecx + eax + 0xc], edx
mov edx, dword [ebx + 0x28]
mov eax, dword [ecx + edx + 8]
add eax, dword [ecx + edx]
mov esi, dword [ecx + edx + 0xc]
adc esi, dword [ecx + edx + 4]
mov edx, eax
sub edx, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], eax
sbb esi, 0
cmp esi, dword [esp + 0x10]
mov esi, dword [esp + 0x34]
jg 0x4404fd
jl 0x4404b7
cmp edx, ebp
ja 0x4404fd
lea eax, [edi + 1]
cmp eax, dword [ebx + 0x18]
jae 0x4404fd
mov edx, dword [ebx + 0x28]
add ecx, 0x18
mov edi, eax
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x2c]
push edi
mov dword [ecx + edx], eax
mov eax, dword [esp + 0x28]
push esi
mov dword [ecx + edx + 4], eax
call fcn.004413b0
cdq
add esp, 8
mov dword [esp + 0x2c], eax
or eax, edx
je 0x440440
mov eax, dword [esp + 0x2c]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret
mov ecx, dword [ebx + 0x28]
lea edi, [edi + edi*2]
mov eax, dword [esp + 0x10]
shl edi, 3
add ecx, edi
sub ebp, dword [ecx]
sbb eax, dword [ecx + 4]
js 0x44058f
jg 0x440519
test ebp, ebp
jb 0x44058f
cmp eax, dword [ecx + 0xc]
jg 0x44058f
jl 0x440525
cmp ebp, dword [ecx + 8]
ja 0x44058f
push 0
push eax
push ebp
push esi
call fcn.00441260
add esp, 0x10
mov ecx, eax
test edx, edx
jg 0x44054e
jl 0x440387
test ecx, ecx
jae 0x44054e
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret
mov edi, dword [esp + 0x34]
mov eax, dword [ebx + 0x28]
add ecx, dword [edi + eax]
adc edx, dword [edi + eax + 4]
js 0x440387
jg 0x440568
test ecx, ecx
jb 0x440387
mov eax, dword [esi + 0x2c]
pop edi
pop ebp
mov dword [esi + 0x34], eax
mov eax, ecx
pop ebx
mov dword [esi + 0x48], 0
mov dword [esi + 0x38], 0
mov dword [esi], ecx
mov dword [esi + 4], edx
mov byte [esi + 0x4c], 0
pop esi
add esp, 0x20
ret
pop edi
pop ebp
pop ebx
mov eax, 0xffffffe2
or edx, 0xffffffff
pop esi
add esp, 0x20
ret
push str.Current_client_reader_does_not_support_seeking_a_device
push 0xffffffffffffffff
push eax
call fcn.00442540
add esp, 0xc
mov ecx, 0xffffffe7
or edx, 0xffffffff
mov eax, ecx
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x20
ret
mov eax, 0xffffffe2
or edx, 0xffffffff
pop esi
add esp, 0x20
ret