Function at 0x4a10c0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x61471c
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
mov eax, dword [0x69301c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, dword [ebp + 8]
call fcn.004a14c0
push 0
push 0x8000000
push 3
push 0
push 1
xorps xmm0, xmm0
push SysReAllocStringLen
push ebx
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x38], xmm0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x1c], eax
cmp eax, 0xffffffff
jne 0x4a112a
xor esi, esi
jmp 0x4a1201
push 0x58
call fcn.004a5e80
mov esi, eax
add esp, 4
mov dword [ebp - 0x24], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x4a11f8
push ebx
push dword [ebp - 0x1c]
mov ecx, esi
call fcn.004631f0
mov byte [ebp - 4], 1
push 0x800
mov dword [esi], vtable.XCacheFile.1.0
mov dword [esi + 4], vtable.XCacheFile.0
mov dword [esi + 0x50], 0x800
mov dword [esi + 0x54], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
call fcn.004a5ebd
add esp, 4
mov dword [esi + 0x38], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
push eax
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
jmp 0x4a11fa
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi + 8]
cmp ecx, esi
je 0x4a1229
mov edx, ecx
test esi, esi
je 0x4a1217
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov edx, dword [edi + 8]
mov dword [edi + 8], esi
mov ecx, esi
test edx, edx
je 0x4a1229
mov eax, dword [edx]
push edx
call dword [eax + 8]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x4a149a
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push 8
push edx
push ecx
call dword [eax + 0x10]
cmp eax, 8
jne 0x4a149a
movzx ecx, byte [ebp - 0x11]
movzx eax, byte [ebp - 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp - 0x14]
shl ecx, 8
or ecx, eax
cmp ecx, 0x65657266
ja 0x4a12fb
je 0x4a1333
cmp ecx, 0x352e314d
ja 0x4a12de
je 0x4a12cf
cmp ecx, 0x302e314d
je 0x4a12c1
cmp ecx, 0x322e314d
je 0x4a12af
cmp ecx, 0x332e314d
jne 0x4a149a
mov ecx, 0xd2
xor edx, edx
mov dword [ebp - 0x1c], edx
lea ebx, [ecx - 0x5a]
jmp 0x4a1342
mov ecx, 0xb2
xor edx, edx
mov dword [ebp - 0x1c], edx
lea ebx, [ecx - 0x5a]
jmp 0x4a1342
mov ecx, 0x40
xor edx, edx
mov ebx, ecx
mov dword [ebp - 0x1c], edx
jmp 0x4a1342
mov ecx, 0xbc
xor edx, edx
mov dword [ebp - 0x1c], edx
lea ebx, [ecx - 0x44]
jmp 0x4a1342
cmp ecx, 0x362e314d
je 0x4a129d
cmp ecx, 0x61746475
je 0x4a1333
cmp ecx, 0x65646977
je 0x4a1333
jmp 0x4a149a
cmp ecx, 0x7461646d
ja 0x4a1322
je 0x4a1333
cmp ecx, 0x666f6f6d
je 0x4a1333
cmp ecx, 0x70696b73
je 0x4a1333
cmp ecx, 0x70797466
je 0x4a1333
jmp 0x4a149a
sub ecx, 0x766f6f66
je 0x4a1333
sub ecx, 7
jne 0x4a149a
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
mov esi, dword [edi + 8]
push edx
push ecx
push esi
mov eax, dword [esi]
call dword [eax + 0x18]
mov eax, dword [edi + 8]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0x746f6f72
mov dword [edi + 0x1c], 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
mov dword [edi + 0x34], edx
mov ecx, esi
lea edx, [edi + 0x10]
mov dword [edi + 0x30], eax
mov dword [edi + 0x38], 0
mov dword [edi + 0x44], 0
mov dword [edi + 0x48], 0
mov dword [edi + 0x4c], 0
mov dword [edi + 0x50], 0
call fcn.004a5440
test eax, eax
je 0x4a149a
push str._ftyp
lea esi, [edi + 0x10]
push esi
call fcn.004a5950
push str._moov
push esi
call fcn.004a5970
add esp, 0x10
test eax, eax
jg 0x4a13ea
push str._foov
push esi
call fcn.004a5950
add esp, 8
test eax, eax
je 0x4a1493
mov dword [eax + 8], 0x766f6f6d
push str._moov_mvhd
push esi
call fcn.004a5950
add esp, 8
test eax, eax
je 0x4a1493
mov ecx, dword [eax + 0x28]
push str._moov_trak
push esi
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [edi + 0x60], edx
mov dword [edi + 0x64], ecx
mov eax, dword [eax + 0x28]
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [edi + 0x68], ecx
mov dword [edi + 0x6c], eax
call fcn.004a5970
add esp, 8
mov dword [ebp - 0x24], eax
test eax, eax
je 0x4a1493
xor esi, esi
test eax, eax
jle 0x4a148c
nop dword [eax]
push esi
lea eax, [edi + 0x10]
push str._moov_trak__d_
push eax
call fcn.004a5950
add esp, 0xc
push dword [ebp - 0x1c]
push ebx
push eax
call fcn.004a59c0
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x4a1486
cmp dword [eax + 4], 0
je 0x4a1486
mov edx, dword [edi + 0x74]
lea ecx, [edi + 0x70]
cmp edx, dword [ecx + 8]
je 0x4a147c
mov dword [edx], eax
add dword [ecx + 4], 4
jmp 0x4a1486
lea eax, [ebp - 0x2c]
push eax
push edx
call fcn.004a5bf0
inc esi
cmp esi, dword [ebp - 0x24]
jl 0x4a1440
mov eax, 1
jmp 0x4a149c
mov ecx, edi
call fcn.004a14c0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005eb48e
mov esp, ebp
pop ebp
ret 4