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

Disassembly:
push 0xffffffffffffffff
push 0x581d4c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
mov eax, dword [0x5f3edc]
push ebx
xor ebx, ebx
push esi
mov esi, dword [ecx + 0x10]
cmp esi, ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], ebx
je 0x44eb29
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x6c]
cmp eax, ebx
je 0x44eb16
mov ecx, dword [esp + 0xc]
add ecx, eax
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], eax
mov esi, dword [esi + 8]
cmp esi, ebx
jne 0x44eaf8
cmp dword [esp + 0x1c], ebx
je 0x44eb29
cmp dword [esp + 0xc], ebx
jne 0x44eb30
xor eax, eax
jmp 0x44f2c8
xor ecx, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ecx
push ebp
mov dword [esp + 0x58], ecx
push 0x2c
mov dword [esp + 0x60], ecx
call sub.MFC71.DLL_operator_new_1
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebx
mov dword [esp + 0x6c], ebx
je 0x44eb75
push ebx
mov ecx, eax
call fcn.004245c0
mov ebp, eax
jmp 0x44eb77
xor ebp, ebp
or esi, 0xffffffff
cmp ebp, ebx
mov dword [esp + 0x6c], esi
jne 0x44ebc3
push 0xc
call sub.MFC71.DLL_operator_new_1
add esp, 4
mov dword [esp + 0x24], eax
cmp eax, ebx
mov dword [esp + 0x6c], 1
je 0x44ebaa
push 0x82
mov ecx, eax
call fcn.0049bd50
jmp 0x44ebac
xor eax, eax
push 0x5d1fa4
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x74], esi
mov dword [esp + 0x20], eax
call sub.MSVCR71.dll__CxxThrowException
mov eax, dword [esp + 0x10]
lea ecx, [eax + eax - 1]
lea edx, [eax + eax*2]
lea eax, [edx*4 + 8]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x20]
imul eax, eax, 0x30c
add eax, 8
lea esi, [eax + 0x7ff]
shr esi, 0xb
push edi
add esi, 2
mov edi, esi
shl edi, 0xb
push edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], eax
call dword [sym.imp.MSVCR71.dll_malloc]
add esp, 4
cmp eax, ebx
mov dword [ebp + 0x10], eax
jne 0x44ec56
push 0xc
call sub.MFC71.DLL_operator_new_1
add esp, 4
mov dword [esp + 0x28], eax
cmp eax, ebx
mov dword [esp + 0x70], 2
je 0x44ec39
push 0x82
mov ecx, eax
call fcn.0049bd50
jmp 0x44ec3b
xor eax, eax
push 0x5d1fa4
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x24], eax
call sub.MSVCR71.dll__CxxThrowException
mov edx, dword [esp + 0x20]
add edx, 0x14
push edx
lea ecx, [ebp + 0xc]
mov dword [ebp + 0x18], esi
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_4]
mov ecx, edi
mov edi, dword [ebp + 0x10]
mov edx, ecx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
push 0xc
rep stosb byte es:[edi], al
mov eax, dword [ebp + 0x10]
push str.DVDVIDEO_VMG
push eax
call dword [sym.imp.MSVCR71.dll_strncpy]
lea eax, [esi + esi - 1]
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
shr edx, 0x10
or ecx, edx
mov edx, eax
shr ecx, 8
and eax, 0xff00
shl edx, 0x10
or edx, eax
mov eax, dword [ebp + 0x10]
shl edx, 8
or ecx, edx
mov dword [eax + 0xc], ecx
lea eax, [esi - 1]
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
shr edx, 0x10
or ecx, edx
mov edx, eax
and eax, 0xff00
shr ecx, 8
shl edx, 0x10
or edx, eax
mov eax, dword [ebp + 0x10]
shl edx, 8
or ecx, edx
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp + 0x10]
mov word [ecx + 0x20], 0x1000
mov edx, dword [ebp + 0x10]
mov byte [edx + 0x23], 0xc0
mov eax, dword [ebp + 0x10]
mov edx, 0x100
mov word [eax + 0x26], dx
mov ecx, dword [ebp + 0x10]
mov word [ecx + 0x28], dx
mov eax, dword [ebp + 0x10]
mov cl, byte [eax + 0x2a]
and cl, 0xfd
or cl, 1
mov byte [eax + 0x2a], cl
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov ch, al
movzx si, ah
mov eax, dword [ebp + 0x10]
add esp, 0xc
or esi, ecx
mov word [eax + 0x3e], si
mov edi, dword [ebp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x34], esi
add edi, 0x40
mov ecx, 8
lea esi, [esp + 0x44]
lea eax, [eax*8 + 0x4f3]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov esi, eax
and ecx, 0xff0000
shr esi, 0x10
or ecx, esi
mov esi, eax
and eax, 0xff00
shl esi, 0x10
or esi, eax
mov eax, dword [ebp + 0x10]
shr ecx, 8
shl esi, 8
or ecx, esi
mov dword [eax + 0x80], ecx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0x84], 0x40000
mov eax, dword [ebp + 0x10]
mov dword [eax + 0xc0], ebx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0xc4], 0x1000000
mov eax, dword [ebp + 0x10]
mov dword [eax + 0xc8], ebx
mov ecx, dword [ebp + 0x10]
mov edi, dword [esp + 0x20]
mov dword [ecx + 0xcc], ebx
mov eax, dword [ebp + 0x10]
mov dword [eax + 0xd0], 0x2000000
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0xd4], ebx
mov eax, dword [ebp + 0x10]
mov dword [eax + 0xd8], ebx
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0xdc], ebx
mov eax, dword [ebp + 0x10]
add eax, edx
mov word [eax], bx
mov esi, dword [edi + 0x10]
cmp esi, ebx
je 0x44ee02
nop
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x6c]
test eax, eax
jne 0x44ee18
mov esi, dword [esi + 8]
cmp esi, ebx
jne 0x44edf0
xor eax, eax
dec eax
je 0x44ee21
dec eax
jne 0x44ee36
mov eax, dword [ebp + 0x10]
mov cl, byte [eax + 0x100]
and cl, 0xcf
jmp 0x44ee30
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x74]
jmp 0x44ee04
mov eax, dword [ebp + 0x10]
mov cl, byte [eax + 0x100]
and cl, 0xdf
or cl, 0x10
mov byte [eax + 0x100], cl
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0x84]
mov esi, eax
and esi, 0xff0000
mov edx, eax
shr edx, 0x10
or esi, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
shr esi, 8
shl edx, 8
or esi, edx
add esi, ecx
and byte [esi + 2], 0x80
mov byte [esi + 3], 0
mov edi, dword [edi + 0x10]
cmp edi, ebx
je 0x44ee85
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x6c]
test eax, eax
jne 0x44ee94
mov edi, dword [edi + 8]
cmp edi, ebx
jne 0x44ee73
xor eax, eax
dec eax
je 0x44ee9d
dec eax
jne 0x44eea7
mov al, byte [esi + 7]
or al, 0xc0
jmp 0x44eea4
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x74]
jmp 0x44ee87
mov al, byte [esi + 7]
and al, 0x3f
or al, 0x40
mov byte [esi + 7], al
mov eax, dword [esp + 0x18]
movzx cx, ah
mov ch, al
lea eax, [eax*8 + 7]
movzx dx, ah
mov dh, al
mov dword [esi + 8], ebx
mov word [esi + 0x9c], bx
mov word [esi + 0x9e], bx
mov word [esi + 0xa0], bx
mov byte [esi + 0xa2], 0
mov byte [esi + 0xa3], 0
mov word [esi + 0xe4], 0xec00
mov word [esi + 0xe6], bx
mov word [esi + 0xe8], bx
mov word [esi + 0xea], bx
mov word [esi + 0xf2], dx
mov edx, dword [esp + 0x14]
mov word [esi + 0xec], cx
lea ecx, [edx - 1]
xor eax, eax
cmp ecx, ebx
mov word [esi + 0xee], bx
mov word [esi + 0xf0], bx
mov dword [esp + 0x1c], ecx
jle 0x44ef69
inc dl
mov byte [esp + 0x13], dl
lea edi, [esi + 0xf5]
jmp 0x44ef40
lea ecx, [eax + 1]
movzx dx, ch
mov dh, cl
mov cl, al
mov byte [edi], 0xa1
add edi, 8
mov word [edi - 5], dx
add cl, byte [esp + 0x13]
mov byte [edi - 2], cl
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
jl 0x44ef40
mov edx, dword [esp + 0x14]
xor ecx, ecx
cmp edx, ebx
jle 0x44efb7
lea eax, [esi + eax*8 + 0xf5]
jmp 0x44ef80
mov ecx, dword [esp + 0x18]
lea esp, [esp]
mov dl, byte [eax - 1]
and dl, 0xf
or dl, 0x30
mov byte [eax - 1], dl
mov dl, byte [eax]
and dl, 0xf2
or dl, 2
mov byte [eax], dl
mov dl, cl
inc dl
xor dl, byte [eax + 4]
add eax, 8
and dl, 0x7f
xor byte [eax - 4], dl
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x18], ecx
jl 0x44ef78
mov edx, ecx
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc4]
mov eax, ecx
mov edi, ecx
and eax, 0xff0000
shr edi, 0x10
or eax, edi
mov edi, ecx
and ecx, 0xff00
shr eax, 8
shl edi, 0x10
or edi, ecx
movzx cx, dh
mov ch, dl
shl edi, 8
or eax, edi
shl eax, 0xb
add eax, esi
mov word [eax + 2], bx
mov dword [esp + 0x40], eax
mov word [eax], cx
mov ecx, dword [esp + 0x2c]
dec ecx
mov edx, ecx
and edx, 0xff0000
mov esi, ecx
shr esi, 0x10
or edx, esi
shr edx, 8
mov esi, ecx
shl esi, 0x10
and ecx, 0xff00
or esi, ecx
shl esi, 8
or edx, esi
mov dword [eax + 4], edx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 0xd0]
mov esi, eax
mov edx, eax
shr edx, 0x10
and esi, 0xff0000
or esi, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
mov ax, word [esp + 0x34]
shl edx, 8
shr esi, 8
or esi, edx
shl esi, 0xb
add esi, ecx
mov word [esi], ax
mov eax, dword [esp + 0x30]
dec eax
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
shr edx, 0x10
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
or edx, eax
shr ecx, 8
shl edx, 8
or ecx, edx
mov word [esi + 2], bx
mov dword [esi + 4], ecx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0xc]
mov ebx, eax
and ebx, 0xff0000
mov ecx, eax
shr ecx, 0x10
or ebx, ecx
mov edx, eax
shr ebx, 8
mov dword [esp + 0x28], esi
shl edx, 0x10
mov ecx, dword [esp + 0x20]
mov edi, dword [ecx + 0x10]
and eax, 0xff00
or edx, eax
shl edx, 8
or ebx, edx
xor eax, eax
inc ebx
cmp edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], edi
je 0x44f2c4
mov eax, dword [esp + 0x24]
lea edx, [esi + 8]
lea ecx, [eax*4 + 8]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
jmp 0x44f0f4
mov edi, dword [esp + 0x14]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x6c]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x44f2b5
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
dec eax
xor edx, edx
cmp ecx, eax
setge dl
inc ecx
mov dword [esp + 0x3c], ecx
mov eax, edx
mov edx, dword [edi]
push eax
mov eax, dword [esp + 0x34]
inc eax
push eax
push ecx
mov ecx, edi
call dword [edx + 0x68]
mov edi, eax
test edi, edi
mov dword [esp + 0x38], edi
je 0x44f2e2
push edi
mov ecx, ebp
call fcn.004246e0
mov ecx, dword [esp + 0x18]
mov eax, ecx
mov edx, ecx
shr edx, 0x10
and eax, 0xff0000
or eax, edx
mov edx, ecx
and ecx, 0xff00
shl edx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x2c]
shl edx, 8
shr eax, 8
or eax, edx
mov dword [ecx], eax
mov ecx, eax
and ecx, 0xff0000
mov edx, eax
shr edx, 0x10
or ecx, edx
mov edx, eax
shl edx, 0x10
and eax, 0xff00
shr ecx, 8
or edx, eax
shl edx, 8
or ecx, edx
add ecx, esi
mov dword [ecx], 0x7030000
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0x22]
mov dword [ecx + 4], edx
mov esi, dword [edi + 0x10]
lea edi, [ecx + 8]
add esi, 0x100
mov ecx, 0xc0
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1c]
test ecx, ecx
mov dword [esp + 0x20], 0
jle 0x44f261
mov al, byte [esp + 0x34]
mov esi, dword [esp + 0x40]
inc al
mov byte [esp + 0x13], al
mov edi, ebx
and edi, 0xff0000
mov eax, ebx
shr eax, 0x10
or edi, eax
mov edx, ebx
shl edx, 0x10
mov eax, ebx
and eax, 0xff00
or edx, eax
mov eax, dword [esp + 0x30]
shl edx, 8
shr edi, 8
or edi, edx
lea edx, [eax + eax*2]
add eax, ecx
lea esi, [esi + edx*4 + 8]
mov dword [esp + 0x30], eax
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov eax, dword [ecx]
push edx
call dword [eax + 0x70]
mov cl, byte [esi]
movzx dx, ah
and cl, 0x94
mov dh, al
mov al, byte [esp + 0x13]
or cl, 0x14
mov byte [esi + 6], al
mov eax, dword [esp + 0x20]
mov byte [esi], cl
mov cl, al
inc cl
mov byte [esi + 7], cl
mov ecx, dword [esp + 0x1c]
mov byte [esi + 1], 1
mov word [esi + 2], dx
mov word [esi + 4], 0
mov dword [esi + 8], edi
add esi, 0xc
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x44f210
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + 0xc]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x34], edx
add dword [esp + 0x18], 0x308
mov edx, eax
mov ecx, eax
shr ecx, 0x10
and edx, 0xff0000
or edx, ecx
mov ecx, eax
shl ecx, 0x10
and eax, 0xff00
or ecx, eax
add esi, 4
shr edx, 8
shl ecx, 8
or edx, ecx
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x28]
lea ebx, [ebx + edx + 1]
mov edi, dword [edi + 8]
test edi, edi
mov dword [esp + 0x14], edi
jne 0x44f0f0
pop edi
mov eax, ebp
pop ebp
mov ecx, dword [esp + 0x60]
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x58]
pop ebx
call fcn.00558076
add esp, 0x64
ret
push 0xc
call sub.MFC71.DLL_operator_new_1
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
mov dword [esp + 0x70], 3
je 0x44f30a
push 0x82
mov ecx, eax
call fcn.0049bd50
jmp 0x44f30c
xor eax, eax
push 0x5d1fa4
lea edx, [esp + 0x2c]
push edx
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x30], eax
call sub.MSVCR71.dll__CxxThrowException
int3