Function at 0x4e1830
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x700364
mov eax, dword fs:[0]
push eax
sub esp, 0x98
push ebx
push esi
push edi
mov eax, dword [0x7e6410]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x20], esi
lea ecx, [esp + 0x24]
call fcn.004df430
mov eax, dword [ebp + 8]
mov dword [esp + 0xb0], 0
mov ecx, dword [esi + 8]
mov eax, dword [eax + 4]
sub eax, 8
mov ecx, dword [ecx]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.004c8d10
mov byte [esp + 0xb0], 1
xor ebx, ebx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ebx
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x4e1da6
lea esi, [ebx + 4]
cmp esi, eax
jbe 0x4e18d0
sub eax, ebx
lea ecx, [esp + 0x18]
push 1
push eax
mov edx, ebx
call fcn.004c45d0
add esp, 8
mov edi, eax
jmp 0x4e1907
test eax, eax
je 0x4e18de
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
add ecx, dword [eax]
jmp 0x4e18e0
xor ecx, ecx
mov ecx, dword [ecx + ebx]
mov edi, ecx
mov eax, ecx
and edi, 0xff0000
shr eax, 0x10
or edi, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr edi, 8
shl eax, 8
or edi, eax
cmp edi, 0xc
jl 0x4e1d5f
push 4
push esi
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x24]
call fcn.004c3000
mov byte [esp + 0xb0], 2
lea edx, [ebx + 8]
mov esi, dword [esp + 0x1c]
lea eax, [edx + 4]
mov ecx, dword [esi + 0xc]
cmp eax, ecx
jbe 0x4e194f
sub ecx, edx
push 1
push ecx
lea ecx, [esp + 0x20]
call fcn.004c45d0
add esp, 8
mov esi, eax
jmp 0x4e1986
test ecx, ecx
je 0x4e195d
mov eax, dword [esi + 4]
mov ecx, dword [esi + 8]
add ecx, dword [eax]
jmp 0x4e195f
xor ecx, ecx
mov ecx, dword [ecx + edx]
mov esi, ecx
mov eax, ecx
and esi, 0xff0000
shr eax, 0x10
or esi, eax
mov eax, ecx
shl eax, 0x10
and ecx, 0xff00
or eax, ecx
shr esi, 8
shl eax, 8
or esi, eax
push str.data
lea ecx, [esp + 0x38]
call fcn.004c3610
test al, al
je 0x4e1c69
cmp esi, 0xd
je 0x4e1a59
cmp esi, 0xe
je 0x4e1a59
cmp esi, 0x1b
je 0x4e1a59
cmp esi, 0xc
je 0x4e1a59
test esi, esi
je 0x4e1a59
mov edx, esi
lea ecx, [esp + 0x64]
call fcn.004c6550
push eax
mov edx, str.MP4:_Unknown_covr_format
mov byte [esp + 0xb4], 8
lea ecx, [esp + 0x80]
call fcn.004c6850
mov edx, dword [esp + 0x84]
add esp, 4
mov dword [esp + 0x7c], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1a1d
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x4e1a1d
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [esp + 0xb0], 2
mov edx, dword [esp + 0x68]
mov dword [esp + 0x64], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1bbe
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x4e1bbe
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x4e1bbe
lea eax, [edi - 0x10]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x24]
call fcn.004c3000
push eax
push esi
lea ecx, [esp + 0x44]
mov byte [esp + 0xb8], 5
call fcn.004dec90
mov dword [esp + 0x40], eax
mov byte [esp + 0xb0], 6
mov ecx, dword [esp + 0x28]
cmp dword [ecx], 1
jle 0x4e1aed
mov ebx, dword [esp + 0x28]
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
push 0x10
call fcn.006b6815
mov esi, eax
add esp, 4
test esi, esi
je 0x4e1c4b
mov dword [esp + 0xa0], esi
lea ecx, [ebx + 8]
mov byte [esp + 0xb0], 7
push ecx
lea ecx, [esi + 8]
mov dword [esi], 1
mov byte [esi + 4], 0
call fcn.004ea070
mov eax, dword [esp + 0x40]
mov byte [esp + 0xb0], 6
mov dword [esp + 0x28], esi
jmp 0x4e1af1
mov esi, dword [esp + 0x28]
mov ebx, dword [esi + 8]
lea ecx, [esi + 8]
push eax
push dword [ebx + 4]
push ebx
call fcn.004ea700
mov edx, eax
mov ecx, 0x15555554
mov eax, dword [esi + 0xc]
sub ecx, eax
cmp ecx, 1
jb 0x4e1c5f
lea ecx, [eax + 1]
mov dword [esi + 0xc], ecx
mov dword [ebx + 4], edx
mov eax, dword [edx + 4]
mov byte [esp + 0xb0], 5
mov dword [eax], edx
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1b4b
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x4e1b4b
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [esp + 0xb0], 2
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x5c], vtable.TagLib::ByteVector.0
test ebx, ebx
je 0x4e1bba
mov edx, dword [ebx]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1bb1
mov ecx, dword [ebx]
test ecx, ecx
je 0x4e1b7e
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [ebx + 4]
test esi, esi
je 0x4e1bb1
mov eax, dword [esi]
test eax, eax
je 0x4e1ba8
push eax
call fcn.006b31f8
add esp, 4
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
push esi
call fcn.006b31f8
add esp, 4
push ebx
call fcn.006b31f8
add esp, 4
mov ebx, dword [esp + 0x30]
mov byte [esp + 0xb0], 1
add ebx, edi
mov edx, dword [esp + 0x38]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], vtable.TagLib::ByteVector.0
test edx, edx
je 0x4e1c37
mov edx, dword [edx]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov edi, dword [esp + 0x38]
mov dword [eax], ecx
jne 0x4e1c2e
mov ecx, dword [edi]
test ecx, ecx
je 0x4e1bfb
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [edi + 4]
test esi, esi
je 0x4e1c2e
mov eax, dword [esi]
test eax, eax
je 0x4e1c25
push eax
call fcn.006b31f8
add esp, 4
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
push esi
call fcn.006b31f8
add esp, 4
push edi
call fcn.006b31f8
add esp, 4
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
cmp ebx, eax
jb 0x4e18b2
jmp 0x4e1da2
push 0x7da8d8
lea eax, [esp + 0x1b]
mov byte [esp + 0x1b], 0
push eax
call fcn.006b4394
push str.list_T__too_long
call fcn.006b1a39
push 0
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x58]
call fcn.004c5710
lea eax, [esp + 0x50]
mov byte [esp + 0xb0], 3
push eax
mov edx, str.MP4:_Unexpected_atom__
lea ecx, [esp + 0x8c]
call fcn.004c6850
add esp, 4
push str.___expecting__data_
mov edx, eax
mov byte [esp + 0xb4], 4
lea ecx, [esp + 0x74]
call fcn.004c68e0
mov edx, dword [esp + 0x78]
add esp, 4
mov dword [esp + 0x70], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1cdc
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x4e1cdc
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [esp + 0xb0], 3
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x88], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1d14
mov ecx, dword [esp + 0x8c]
test ecx, ecx
je 0x4e1d14
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [esp + 0xb0], 2
mov edx, dword [esp + 0x54]
mov dword [esp + 0x50], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1d3f
mov ecx, dword [esp + 0x54]
push 1
mov eax, dword [ecx]
call dword [eax]
mov byte [esp + 0xb0], 1
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x34], vtable.TagLib::ByteVector.0
test ecx, ecx
je 0x4e1d9e
push ecx
call fcn.004c2ee0
jmp 0x4e1d9e
push 0
push str.MP4:_Too_short_atom
lea ecx, [esp + 0x9c]
call fcn.004c5540
mov edx, dword [esp + 0x98]
mov dword [esp + 0x94], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1d9e
mov ecx, dword [esp + 0x98]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
cmp dword [edi + 0xc], 0
je 0x4e1e4f
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x30]
call fcn.004df2e0
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x44]
push 0
add eax, 8
mov byte [esp + 0xb4], 9
push eax
call fcn.004c5710
lea eax, [esp + 0x2c]
mov byte [esp + 0xb0], 0xa
push eax
lea eax, [esp + 0x48]
mov ecx, esi
push eax
call fcn.004e8b30
mov byte [esp + 0xb0], 9
mov edx, dword [esp + 0x48]
mov dword [esp + 0x44], vtable.TagLib::String.0
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1e24
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x4e1e24
mov eax, dword [ecx]
push 1
call dword [eax]
mov byte [esp + 0xb0], 1
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
dec ecx
mov dword [eax], ecx
jne 0x4e1e47
mov ecx, dword [esp + 0x2c]
push 1
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov byte [esp + 0xb0], 0
mov dword [esp + 0x18], vtable.TagLib::ByteVector.0
test ecx, ecx
je 0x4e1e69
push ecx
call fcn.004c2ee0
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x4e1e90
lea ecx, [edi + 8]
call fcn.004df570
push dword [edi + 8]
call fcn.006b31f8
add esp, 4
push edi
call fcn.006b31f8
add esp, 4
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4