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

Disassembly:
sub esp, 0x20
push esi
mov esi, dword [esp + 0x28]
cmp byte [esi + 0x4d], 0
jne 0x49d8f1
cmp byte [esi + 0x4e], 0
jne 0x49d8f1
cmp dword [esi + 0x28], 0
jne 0x49d43f
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 0x49d6d4
dec eax
je 0x49d6c1
dec eax
jne 0x49d8bf
mov ebp, dword [ebx + 0x28]
xor edi, edi
mov dword [esp + 0x18], ebp
cmp dword [ebp + 4], edi
jl 0x49d4c6
jg 0x49d47c
cmp dword [ebp], edi
jb 0x49d4c6
mov eax, ebp
mov edi, edi
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
test edx, edx
jl 0x49d4c6
jg 0x49d490
test ecx, ecx
jb 0x49d4c6
lea ebp, [edi + 1]
cmp ebp, dword [ebx + 0x18]
jae 0x49d4c6
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 0x49d480
jl 0x49d4c6
cmp dword [eax], 0
jae 0x49d480
push edi
push esi
call fcn.0049e6e0
cdq
add esp, 8
mov ecx, eax
or ecx, edx
jne 0x49d6b9
lea ebp, [edi + edi*2]
shl ebp, 3
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x84]
test ecx, ecx
je 0x49d8cf
push 2
push 0
push 0
push dword [esi + 0x18]
push eax
call ecx
add esp, 0x14
mov ecx, eax
test edx, edx
jl 0x49d6b7
jg 0x49d515
test ecx, ecx
jb 0x49d6b7
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 0x49d573
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.0049e6e0
cdq
add esp, 8
mov dword [esp + 0x28], eax
or eax, edx
je 0x49d4e1
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 0x49d663
jl 0x49d5d1
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 0x49d663
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 0x49d65f
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 0x49d5e8
jg 0x49d65f
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 0x49d5e8
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.0049e6e0
mov ebx, dword [esp + 0x34]
add esp, 8
cdq
mov ecx, eax
or ecx, edx
jne 0x49d6b9
push 0
push dword [esp + 0x14]
push ebp
push esi
call fcn.0049e590
add esp, 0x10
mov ecx, eax
test edx, edx
jg 0x49d87a
jl 0x49d6b7
test ecx, ecx
jae 0x49d87a
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 0x49d6e0
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 0x49d750
jg 0x49d6f0
cmp dword [eax], edi
jb 0x49d750
mov esi, eax
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
test edx, edx
jl 0x49d74c
jg 0x49d702
test ecx, ecx
jb 0x49d74c
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 0x49d74c
jl 0x49d723
cmp dword [esp + 0x2c], ebp
ja 0x49d74c
lea eax, [edi + 1]
cmp eax, dword [ebx + 0x18]
jae 0x49d74c
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 0x49d6f2
jl 0x49d74c
cmp dword [eax], 0
jae 0x49d6f2
mov esi, dword [esp + 0x34]
push edi
push esi
call fcn.0049e6e0
cdq
add esp, 8
mov ecx, eax
or ecx, edx
jne 0x49d6b9
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 0x49d8cf
push 2
push 0
push 0
push dword [esi + 0x18]
push eax
call ecx
add esp, 0x14
mov ecx, eax
test edx, edx
jl 0x49d6b7
jg 0x49d7a4
test ecx, ecx
jb 0x49d6b7
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 0x49d82d
jl 0x49d7e7
cmp edx, ebp
ja 0x49d82d
lea eax, [edi + 1]
cmp eax, dword [ebx + 0x18]
jae 0x49d82d
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.0049e6e0
cdq
add esp, 8
mov dword [esp + 0x2c], eax
or eax, edx
je 0x49d770
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 0x49d8bf
jg 0x49d849
test ebp, ebp
jb 0x49d8bf
cmp eax, dword [ecx + 0xc]
jg 0x49d8bf
jl 0x49d855
cmp ebp, dword [ecx + 8]
ja 0x49d8bf
push 0
push eax
push ebp
push esi
call fcn.0049e590
add esp, 0x10
mov ecx, eax
test edx, edx
jg 0x49d87e
jl 0x49d6b7
test ecx, ecx
jae 0x49d87e
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 0x49d6b7
jg 0x49d898
test ecx, ecx
jb 0x49d6b7
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.0049f870
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