Function at 0x4b1a00
Capabilities:
Delete file
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x501880
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
push ebx
push esi
push edi
mov eax, dword [0x534090]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x90], edi
call fcn.004b27b0
test eax, eax
jne 0x4b2682
cmp dword [edi], eax
jne 0x4b1a56
push dword [ebp + 0x10]
mov ecx, edi
call fcn.004b13e0
test eax, eax
jne 0x4b2682
mov ecx, dword [edi]
add ecx, 4
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 4
mov dword [ebp - 0x38], vtable.CObjectVector_class_CInOutTempBuffer_.0
mov dword [ebp - 4], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 4
mov dword [ebp - 0x70], vtable.CObjectVector_class_CSequentialOutTempBufferImp__.0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 4
mov dword [ebp - 0x5c], vtable.CObjectVector_class_CMyComPtr_struct_ISequentialOutStream__.0
mov byte [ebp - 4], 2
mov ebx, 1
mov eax, dword [edi + 0x9c]
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x8c], ecx
cmp eax, ebx
jle 0x4b1cb4
lea ecx, [ebp - 0xcc]
mov byte [ebp - 0xd0], 0
call fcn.004878b0
mov dword [ebp - 0xc0], 0xffffffff
mov byte [ebp - 0xbc], 0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xb8], 0
call fcn.004878b0
push 0x40
mov byte [ebp - 4], 5
call fcn.004cb682
mov esi, eax
add esp, 4
mov dword [ebp + 0x10], esi
mov byte [ebp - 4], 6
lea ecx, [esi + 4]
mov al, byte [ebp - 0xd0]
mov byte [esi], al
lea eax, [ebp - 0xcc]
push eax
call fcn.00487780
mov eax, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0xc0]
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], eax
mov byte [ebp - 4], 8
lea ecx, [esi + 0x20]
mov eax, dword [ebp - 0xb8]
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0xb4]
mov dword [esi + 0x1c], eax
lea eax, [ebp - 0xb0]
push eax
call fcn.00487780
movzx eax, byte [ebp - 0xa4]
mov ecx, dword [ebp - 0x9c]
mov byte [esi + 0x2c], al
mov eax, dword [ebp - 0xa0]
mov dword [esi + 0x30], eax
mov eax, dword [ebp - 0x98]
mov dword [esi + 0x34], ecx
mov dword [esi + 0x38], eax
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
cmp edx, ecx
jne 0x4b1bee
mov eax, 1
cmp ecx, 0x40
jl 0x4b1bd5
mov eax, ecx
shr eax, 2
jmp 0x4b1be0
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebp - 0x38]
push eax
call fcn.00488150
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov dword [eax + edx*4], esi
inc dword [ebp - 0x30]
mov byte [ebp - 4], 2
push dword [ebp - 0xb8]
call fcn.004cbb15
push dword [ebp - 0xb0]
call fcn.004cbb15
mov eax, dword [ebp - 0xc0]
add esp, 8
cmp eax, 0xffffffff
je 0x4b1c2f
cmp byte [ebp - 0xbc], 0
jne 0x4b1c2f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0xd0], 0
mov esi, dword [ebp - 0xcc]
je 0x4b1c52
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x4b1c52
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
call fcn.004cbb15
mov eax, dword [ebp - 0x2c]
add esp, 4
mov ecx, dword [ebp - 0x30]
mov esi, dword [eax + ecx*4 - 4]
cmp dword [esi + 0x18], 0
jne 0x4b1c81
push 0x100000
call fcn.004cbd6c
mov dword [esi + 0x18], eax
add esp, 4
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [eax + ecx*4 - 4]
inc ebx
mov dword [eax + 0x1c], 0
mov byte [eax + 0x2c], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x38], 0xffffffff
mov eax, dword [edi + 0x9c]
cmp ebx, eax
jl 0x4b1af0
mov ebx, 1
cmp eax, ebx
jle 0x4b1dba
push 0xc
call fcn.004cb682
mov esi, eax
mov dword [ebp + 0x10], esi
mov dword [ebp - 0x48], esi
mov dword [esi + 4], 0
mov dword [esi], vtable.CSequentialOutTempBufferImp.0
mov dword [esi + 4], 1
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x2c]
push 4
mov eax, dword [eax + ebx*4 - 4]
mov dword [esi + 8], eax
call fcn.004cb682
add esp, 8
mov dword [ebp + 0x10], eax
mov byte [ebp - 4], 0xa
mov dword [eax], esi
mov ecx, dword [esi]
push esi
call dword [ecx + 4]
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jne 0x4b1d43
mov eax, 1
cmp ecx, 0x40
jl 0x4b1d2a
mov eax, ecx
shr eax, 2
jmp 0x4b1d35
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebp - 0x5c]
push eax
call fcn.00488150
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + 0x10]
push 4
mov dword [eax + edx*4], ecx
inc dword [ebp - 0x54]
call fcn.004cb682
add esp, 4
mov dword [ebp - 0x44], eax
mov dword [eax], esi
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
cmp ecx, edx
jne 0x4b1d93
mov ecx, 1
cmp edx, 0x40
jl 0x4b1d79
mov ecx, edx
shr ecx, 2
jmp 0x4b1d84
cmp edx, 8
mov eax, 8
cmovge ecx, eax
lea eax, [ecx + edx]
push eax
lea ecx, [ebp - 0x70]
call fcn.00488150
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x44]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0x68]
mov byte [ebp - 4], 0xb
mov eax, dword [esi]
push esi
call dword [eax + 8]
inc ebx
mov byte [ebp - 4], 2
cmp ebx, dword [edi + 0x9c]
jl 0x4b1cc1
mov ebx, dword [ebp - 0x8c]
xor esi, esi
test ebx, ebx
jle 0x4b1dda
mov ecx, dword [edi]
add ecx, 4
push 0
push 0
push esi
mov eax, dword [ecx]
call dword [eax + 8]
inc esi
cmp esi, ebx
jl 0x4b1dc6
cmp dword [edi + 0x88], 0
jne 0x4b1ded
mov ebx, 0x80004005
jmp 0x4b258a
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x48]
push eax
mov eax, dword [edi + 0x8c]
lea ecx, [edi + 0x58]
push dword [eax]
call fcn.004af1f0
push 0x20
call fcn.004cb682
mov ecx, eax
add esp, 4
lea ebx, [ecx + 0x10]
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ecx + 4], vtable.ICompressGetSubStreamSize.0
mov dword [ecx + 8], 0
mov dword [ecx], vtable.CSequentialInStreamSizeCount2.1.0
mov dword [ecx + 4], vtable.CSequentialInStreamSizeCount2.0
mov dword [ecx + 0xc], 0
mov dword [ebx], 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
cmp eax, fcn.00451980
jne 0x4b1e5a
mov dword [ecx + 8], 1
jmp 0x4b1e5d
push ecx
call eax
push 0x18
mov byte [ebp - 4], 0xe
call fcn.004cb682
mov ecx, eax
add esp, 4
mov dword [ebp + 0x10], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ecx + 4], 0
mov dword [ecx], vtable.CSequentialOutStreamSizeCount.0
mov dword [ecx + 8], 0
mov eax, dword [ecx]
mov eax, dword [eax + 4]
cmp eax, fcn.00451a30
jne 0x4b1e9f
mov dword [ecx + 4], 1
jmp 0x4b1ea2
push ecx
call eax
mov byte [ebp - 4], 0xf
mov esi, dword [ebp + 8]
test esi, esi
je 0x4b1eb3
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4b1ec6
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov dword [eax + 0xc], esi
mov ecx, dword [ebx]
test ecx, ecx
je 0x4b1ed5
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov esi, dword [ebp - 0x10]
mov dword [ebx], 0
push ebx
push 0x51a128
mov ecx, dword [esi + 0xc]
push ecx
mov eax, dword [ecx]
call dword [eax]
mov ebx, dword [ebp + 0x18]
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
test ebx, ebx
je 0x4b1f07
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4b1f1a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp + 0x10]
mov dword [eax + 8], ebx
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 4
mov dword [ebp - 0x88], vtable.CRecordVector_struct_ISequentialInStream__.0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 4
mov dword [ebp - 0x24], vtable.CRecordVector_struct_ISequentialOutStream__.0
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0x11
call fcn.00488150
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], esi
inc dword [ebp - 0x80]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
cmp edx, ecx
jne 0x4b1fc8
mov eax, 1
cmp ecx, 0x40
jl 0x4b1faf
mov eax, ecx
shr eax, 2
jmp 0x4b1fba
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebp - 0x24]
push eax
call fcn.00488150
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov esi, 1
mov ecx, dword [ebp + 0x10]
mov dword [eax + edx*4], ecx
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp dword [edi + 0x9c], esi
jle 0x4b2035
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x20]
mov eax, dword [eax + esi*4 - 4]
mov ebx, dword [eax]
cmp ecx, edx
jne 0x4b201f
mov eax, 1
cmp edx, 0x40
jl 0x4b2006
mov eax, edx
shr eax, 2
jmp 0x4b2011
cmp edx, 8
mov ecx, 8
cmovge eax, ecx
add eax, edx
lea ecx, [ebp - 0x24]
push eax
call fcn.00488150
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
inc esi
mov dword [eax + ecx*4], ebx
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp esi, dword [edi + 0x9c]
jl 0x4b1fe5
mov esi, dword [edi + 0x10]
xor ebx, ebx
mov dword [ebp - 0x44], ebx
test esi, esi
jle 0x4b21d2
mov eax, dword [edi + 0x14]
mov eax, dword [eax + ebx*4]
mov dword [ebp + 8], eax
mov dword [ebp - 0x74], 0
mov byte [ebp - 4], 0x12
mov eax, dword [edi]
mov eax, dword [eax + 0x80]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x4b206e
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp - 0x74]
push edx
push 0x51a198
push ecx
call dword [eax]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4b2089
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x3c], 0
mov byte [ebp - 4], 0x13
mov eax, dword [edi]
mov eax, dword [eax + 0x80]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x4b20a9
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp - 0x3c]
push edx
push 0x51a0f8
push ecx
call dword [eax]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4b21a0
push 0x14
call fcn.004cb682
mov esi, eax
add esp, 4
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x40], esi
mov dword [esi + 4], 0
mov dword [esi], vtable.CDynBufSeqOutStream.0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp eax, fcn.00451a30
jne 0x4b2107
inc dword [esi + 4]
jmp 0x4b210a
push esi
call eax
mov byte [ebp - 4], 0x14
mov dword [esi + 0x10], 0
mov eax, dword [ebp - 0x3c]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [ebp + 8]
mov ebx, dword [esi + 0x10]
cmp ebx, dword [edx + 0xc]
je 0x4b217e
test ebx, ebx
je 0x4b215e
push ebx
call fcn.004cbd6c
mov edx, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x40], eax
cmp dword [edx + 0xc], 0
jbe 0x4b2165
cmp dword [edx + 0xc], ebx
mov ecx, ebx
cmovb ecx, dword [edx + 0xc]
push ecx
push dword [edx + 0x10]
push eax
call fcn.004cd290
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x4b2165
mov dword [ebp - 0x40], 0
push dword [edx + 0x10]
call fcn.004cbb15
mov ecx, dword [ebp + 8]
add esp, 4
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
jmp 0x4b2181
mov eax, dword [edx + 0x10]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call fcn.004cd290
add esp, 0xc
mov byte [ebp - 4], 0x15
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x44]
mov byte [ebp - 4], 0x16
test eax, eax
je 0x4b21ae
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4b21bf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc ebx
mov byte [ebp - 4], 0x11
mov esi, dword [edi + 0x10]
mov dword [ebp - 0x44], ebx
cmp ebx, esi
jl 0x4b2045
mov edx, dword [ebp - 0x48]
mov dword [ebp + 8], edx
cmp esi, 1
jle 0x4b2228
mov edi, dword [edi + 0x14]
mov ecx, 1
xor ebx, ebx
mov eax, dword [ebx + edi]
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp edx, 3
jne 0x4b21f8
test eax, eax
je 0x4b2210
cmp edx, 0x3030103
jne 0x4b2204
test eax, eax
je 0x4b2210
cmp edx, 0x303011b
jne 0x4b2217
test eax, eax
jne 0x4b2217
mov edx, ecx
mov dword [ebp + 8], edx
jmp 0x4b221a
mov edx, dword [ebp + 8]
inc ecx
add ebx, 4
cmp ecx, esi
jl 0x4b21e7
mov edi, dword [ebp - 0x90]
push dword [ebp + 0x20]
mov eax, dword [edi]
mov dword [eax + 0x70], edx
push dword [ebp - 0x1c]
mov ecx, dword [edi + 4]
push 0
push dword [ebp - 0x18]
mov eax, dword [ecx]
push 1
push 0
push dword [ebp - 0x7c]
push ecx
call dword [eax + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x4b24e7
sub esp, 0x14
mov ecx, esp
mov dword [ebp + 8], ecx
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], 8
lea eax, [edi + 0xfc]
mov byte [ebp - 4], 0x1a
push eax
mov dword [ecx], vtable.CRecordVector_unsigned_long_long_unsigned___int64__.0
call fcn.00497310
mov edx, dword [ebp + 0x14]
lea ecx, [edi + 0xa8]
mov byte [ebp - 4], 0x11
call fcn.004b1170
mov eax, dword [ebp + 0x10]
add esp, 0x14
mov esi, dword [ebp + 0x1c]
mov ebx, dword [eax + 0x10]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x14]
mov dword [ebp + 8], eax
cmp edx, ecx
jne 0x4b22d7
mov eax, 1
cmp ecx, 0x40
jl 0x4b22bf
mov eax, ecx
shr eax, 2
jmp 0x4b22ca
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
mov ecx, esi
push eax
call fcn.00488150
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 8]
mov dword [eax + edx*8], ebx
mov dword [eax + edx*8 + 4], ecx
mov ecx, 1
inc dword [esi + 8]
mov dword [ebp + 8], ecx
cmp dword [edi + 0x9c], ecx
jle 0x4b237c
nop dword [eax + eax]
mov eax, dword [ebp - 0x2c]
push dword [ebp + 0x18]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, eax
mov dword [ebp + 0x20], eax
call fcn.004b47a0
mov ebx, eax
test ebx, ebx
jne 0x4b24e7
mov eax, dword [ebp + 0x20]
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
mov ebx, dword [eax + 0x30]
mov eax, dword [eax + 0x34]
mov dword [ebp + 0x20], eax
cmp edx, ecx
jne 0x4b235d
mov eax, 1
cmp ecx, 0x40
jl 0x4b2345
mov eax, ecx
shr eax, 2
jmp 0x4b2350
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
mov ecx, esi
push eax
call fcn.00488150
mov edx, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov ecx, dword [ebp + 0x20]
mov dword [eax + edx*8], ebx
mov dword [eax + edx*8 + 4], ecx
mov ecx, dword [ebp + 8]
inc dword [esi + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, dword [edi + 0x9c]
jl 0x4b2300
mov eax, dword [edi + 0xf8]
xor esi, esi
mov dword [ebp + 8], esi
cmp dword [eax + 0x90], esi
jle 0x4b2431
mov ebx, dword [ebp + 0x14]
mov edx, dword [edi + 0x74]
xor ecx, ecx
test edx, edx
jle 0x4b23ba
mov eax, dword [eax + 0xa0]
mov eax, dword [eax + esi*4]
mov esi, dword [edi + 0x78]
nop dword [eax + eax]
cmp dword [esi + ecx*8], eax
je 0x4b23e1
inc ecx
cmp ecx, edx
jl 0x4b23b0
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 0x18]
mov edx, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x40]
mov eax, dword [eax + 0x1c]
mov dword [ebp + 0x18], eax
cmp edx, ecx
jne 0x4b2408
mov eax, 1
cmp ecx, 0x40
jl 0x4b23ef
mov eax, ecx
shr eax, 2
jmp 0x4b23fa
test ecx, ecx
js 0x4b23ba
mov eax, dword [edi]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + ecx*4]
jmp 0x4b23bd
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebx + 0x3c]
push eax
call fcn.00488150
mov edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebp + 0x18]
mov dword [eax + edx*8], esi
mov esi, dword [ebp + 8]
mov dword [eax + edx*8 + 4], ecx
inc esi
inc dword [ebx + 0x44]
mov eax, dword [edi + 0xf8]
mov dword [ebp + 8], esi
cmp esi, dword [eax + 0x90]
jl 0x4b2396
mov ecx, dword [ebp - 0x8c]
add ecx, 0xffffffff
mov dword [ebp + 0x18], ecx
js 0x4b24e5
mov edx, 4
mov dword [ebp + 8], edx
nop dword [eax + eax]
mov eax, dword [edi + 0x14]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x14]
mov dword [ebp + 0x1c], ebx
mov eax, dword [eax + 0xc]
mov esi, dword [eax + edx - 4]
push dword [esi + 0x10]
call fcn.004cbb15
mov dword [esi + 0x10], 0
add esp, 4
mov dword [esi + 0xc], 0
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x4b24cd
push ebx
call fcn.004cbd6c
mov edx, dword [esi + 0xc]
add esp, 4
mov dword [ebp + 0x20], eax
test edx, edx
je 0x4b24aa
cmp edx, ebx
mov ecx, ebx
cmovb ecx, edx
push ecx
push dword [esi + 0x10]
push eax
call fcn.004cd290
add esp, 0xc
push dword [esi + 0x10]
call fcn.004cbb15
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x20]
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], ebx
push dword [ecx + 0xc]
push dword [ecx + 0x10]
push eax
call fcn.004cd290
add esp, 0x10
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 8]
dec ecx
add edx, 4
mov dword [ebp + 0x18], ecx
mov dword [ebp + 8], edx
test ecx, ecx
jns 0x4b2450
xor ebx, ebx
mov byte [ebp - 4], 0x1d
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x24], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4b2507
push esi
push 0
lea ecx, [ebp - 0x24]
call fcn.004881f0
sub dword [ebp - 0x1c], esi
push dword [ebp - 0x18]
call fcn.004cbb15
add esp, 4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x1e
mov esi, dword [ebp - 0x80]
mov dword [ebp - 0x88], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4b254d
push esi
push 0
lea ecx, [ebp - 0x88]
call fcn.004881f0
sub dword [ebp - 0x80], esi
push dword [ebp - 0x7c]
call fcn.004cbb15
add esp, 4
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x7c], 0
mov byte [ebp - 4], 0x1f
mov ecx, dword [ebp + 0x10]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x10]
mov byte [ebp - 4], 0x20
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x5c]
push dword [ebp - 0x54]
mov dword [ebp - 0x5c], vtable.CObjectVector_class_CMyComPtr_struct_ISequentialOutStream__.0
push 0
call fcn.00496cb0
mov byte [ebp - 4], 0x22
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x5c], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4b25c2
push esi
push 0
lea ecx, [ebp - 0x5c]
call fcn.004881f0
sub dword [ebp - 0x54], esi
push dword [ebp - 0x50]
call fcn.004cbb15
add esp, 4
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov byte [ebp - 4], 0x23
lea ecx, [ebp - 0x70]
push dword [ebp - 0x68]
mov dword [ebp - 0x70], vtable.CObjectVector_class_CSequentialOutTempBufferImp__.0
push 0
call fcn.004b3580
mov byte [ebp - 4], 0x24
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x70], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4b261a
push esi
push 0
lea ecx, [ebp - 0x70]
call fcn.004881f0
sub dword [ebp - 0x68], esi
push dword [ebp - 0x64]
call fcn.004cbb15
add esp, 4
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 4], 0x25
lea ecx, [ebp - 0x38]
push dword [ebp - 0x30]
mov dword [ebp - 0x38], vtable.CObjectVector_class_CInOutTempBuffer_.0
push 0
call fcn.004b36b0
mov byte [ebp - 4], 0x26
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x38], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4b2675
push esi
push 0
lea ecx, [ebp - 0x38]
call fcn.004881f0
sub dword [ebp - 0x30], esi
push dword [ebp - 0x2c]
call fcn.004cbb15
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c