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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x534110
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
push ebx
push esi
push edi
mov eax, dword [0x566090]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x90], edi
call fcn.004e3940
test eax, eax
jne 0x4e3812
cmp dword [edi], eax
jne 0x4e2be6
push dword [ebp + 0x10]
mov ecx, edi
call fcn.004e2570
test eax, eax
jne 0x4e3812
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 0x4e2e44
lea ecx, [ebp - 0xcc]
mov byte [ebp - 0xd0], 0
call fcn.004b8a60
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.004b8a60
push 0x40
mov byte [ebp - 4], 5
call fcn.004fc7f3
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.004b8930
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.004b8930
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 0x4e2d7e
mov eax, 1
cmp ecx, 0x40
jl 0x4e2d65
mov eax, ecx
shr eax, 2
jmp 0x4e2d70
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebp - 0x38]
push eax
call fcn.004b9300
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.004fcc7d
push dword [ebp - 0xb0]
call fcn.004fcc7d
mov eax, dword [ebp - 0xc0]
add esp, 8
cmp eax, 0xffffffff
je 0x4e2dbf
cmp byte [ebp - 0xbc], 0
jne 0x4e2dbf
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [ebp - 0xd0], 0
mov esi, dword [ebp - 0xcc]
je 0x4e2de2
push 0
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
je 0x4e2de2
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push esi
call fcn.004fcc7d
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 0x4e2e11
push 0x100000
call fcn.004fced4
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 0x4e2c80
mov ebx, 1
cmp eax, ebx
jle 0x4e2f4a
push 0xc
call fcn.004fc7f3
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.004fc7f3
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 0x4e2ed3
mov eax, 1
cmp ecx, 0x40
jl 0x4e2eba
mov eax, ecx
shr eax, 2
jmp 0x4e2ec5
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebp - 0x5c]
push eax
call fcn.004b9300
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.004fc7f3
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 0x4e2f23
mov ecx, 1
cmp edx, 0x40
jl 0x4e2f09
mov ecx, edx
shr ecx, 2
jmp 0x4e2f14
cmp edx, 8
mov eax, 8
cmovge ecx, eax
lea eax, [ecx + edx]
push eax
lea ecx, [ebp - 0x70]
call fcn.004b9300
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 0x4e2e51
mov ebx, dword [ebp - 0x8c]
xor esi, esi
test ebx, ebx
jle 0x4e2f6a
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 0x4e2f56
cmp dword [edi + 0x88], 0
jne 0x4e2f7d
mov ebx, 0x80004005
jmp 0x4e371a
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.004e03a0
push 0x20
call fcn.004fc7f3
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.0045ec50
jne 0x4e2fea
mov dword [ecx + 8], 1
jmp 0x4e2fed
push ecx
call eax
push 0x18
mov byte [ebp - 4], 0xe
call fcn.004fc7f3
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, method.COutFileStream.virtual_4
jne 0x4e302f
mov dword [ecx + 4], 1
jmp 0x4e3032
push ecx
call eax
mov byte [ebp - 4], 0xf
mov esi, dword [ebp + 8]
test esi, esi
je 0x4e3043
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x4e3056
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 0x4e3065
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov esi, dword [ebp - 0x10]
mov dword [ebx], 0
push ebx
push 0x54b300
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 0x4e3097
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4e30aa
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.004b9300
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 0x4e3158
mov eax, 1
cmp ecx, 0x40
jl 0x4e313f
mov eax, ecx
shr eax, 2
jmp 0x4e314a
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebp - 0x24]
push eax
call fcn.004b9300
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 0x4e31c5
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 0x4e31af
mov eax, 1
cmp edx, 0x40
jl 0x4e3196
mov eax, edx
shr eax, 2
jmp 0x4e31a1
cmp edx, 8
mov ecx, 8
cmovge eax, ecx
add eax, edx
lea ecx, [ebp - 0x24]
push eax
call fcn.004b9300
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 0x4e3175
mov esi, dword [edi + 0x10]
xor ebx, ebx
mov dword [ebp - 0x44], ebx
test esi, esi
jle 0x4e3362
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 0x4e31fe
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp - 0x74]
push edx
push 0x54b370
push ecx
call dword [eax]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4e3219
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 0x4e3239
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp - 0x3c]
push edx
push 0x54b2d0
push ecx
call dword [eax]
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x4e3330
push 0x14
call fcn.004fc7f3
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, method.COutFileStream.virtual_4
jne 0x4e3297
inc dword [esi + 4]
jmp 0x4e329a
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 0x4e330e
test ebx, ebx
je 0x4e32ee
push ebx
call fcn.004fced4
mov edx, dword [ebp + 8]
add esp, 4
mov dword [ebp - 0x40], eax
cmp dword [edx + 0xc], 0
jbe 0x4e32f5
cmp dword [edx + 0xc], ebx
mov ecx, ebx
cmovb ecx, dword [edx + 0xc]
push ecx
push dword [edx + 0x10]
push eax
call fcn.004fe5a0
mov edx, dword [ebp + 8]
add esp, 0xc
jmp 0x4e32f5
mov dword [ebp - 0x40], 0
push dword [edx + 0x10]
call fcn.004fcc7d
mov ecx, dword [ebp + 8]
add esp, 4
mov eax, dword [ebp - 0x40]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0xc], ebx
jmp 0x4e3311
mov eax, dword [edx + 0x10]
push dword [esi + 0x10]
push dword [esi + 0xc]
push eax
call fcn.004fe5a0
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 0x4e333e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4e334f
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 0x4e31d5
mov edx, dword [ebp - 0x48]
mov dword [ebp + 8], edx
cmp esi, 1
jle 0x4e33b8
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 0x4e3388
test eax, eax
je 0x4e33a0
cmp edx, 0x3030103
jne 0x4e3394
test eax, eax
je 0x4e33a0
cmp edx, 0x303011b
jne 0x4e33a7
test eax, eax
jne 0x4e33a7
mov edx, ecx
mov dword [ebp + 8], edx
jmp 0x4e33aa
mov edx, dword [ebp + 8]
inc ecx
add ebx, 4
cmp ecx, esi
jl 0x4e3377
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 0x4e3677
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.004c84e0
mov edx, dword [ebp + 0x14]
lea ecx, [edi + 0xa8]
mov byte [ebp - 4], 0x11
call fcn.004e2300
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 0x4e3467
mov eax, 1
cmp ecx, 0x40
jl 0x4e344f
mov eax, ecx
shr eax, 2
jmp 0x4e345a
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
mov ecx, esi
push eax
call fcn.004b9300
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 0x4e350c
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.004e5930
mov ebx, eax
test ebx, ebx
jne 0x4e3677
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 0x4e34ed
mov eax, 1
cmp ecx, 0x40
jl 0x4e34d5
mov eax, ecx
shr eax, 2
jmp 0x4e34e0
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
mov ecx, esi
push eax
call fcn.004b9300
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 0x4e3490
mov eax, dword [edi + 0xf8]
xor esi, esi
mov dword [ebp + 8], esi
cmp dword [eax + 0x90], esi
jle 0x4e35c1
mov ebx, dword [ebp + 0x14]
mov edx, dword [edi + 0x74]
xor ecx, ecx
test edx, edx
jle 0x4e354a
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 0x4e3571
inc ecx
cmp ecx, edx
jl 0x4e3540
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 0x4e3598
mov eax, 1
cmp ecx, 0x40
jl 0x4e357f
mov eax, ecx
shr eax, 2
jmp 0x4e358a
test ecx, ecx
js 0x4e354a
mov eax, dword [edi]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + ecx*4]
jmp 0x4e354d
cmp ecx, 8
mov edx, 8
cmovge eax, edx
add eax, ecx
lea ecx, [ebx + 0x3c]
push eax
call fcn.004b9300
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 0x4e3526
mov ecx, dword [ebp - 0x8c]
add ecx, 0xffffffff
mov dword [ebp + 0x18], ecx
js 0x4e3675
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.004fcc7d
mov dword [esi + 0x10], 0
add esp, 4
mov dword [esi + 0xc], 0
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x4e365d
push ebx
call fcn.004fced4
mov edx, dword [esi + 0xc]
add esp, 4
mov dword [ebp + 0x20], eax
test edx, edx
je 0x4e363a
cmp edx, ebx
mov ecx, ebx
cmovb ecx, edx
push ecx
push dword [esi + 0x10]
push eax
call fcn.004fe5a0
add esp, 0xc
push dword [esi + 0x10]
call fcn.004fcc7d
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.004fe5a0
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 0x4e35e0
xor ebx, ebx
mov byte [ebp - 4], 0x1d
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 0x24], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4e3697
push esi
push 0
lea ecx, [ebp - 0x24]
call fcn.004b93a0
sub dword [ebp - 0x1c], esi
push dword [ebp - 0x18]
call fcn.004fcc7d
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 0x4e36dd
push esi
push 0
lea ecx, [ebp - 0x88]
call fcn.004b93a0
sub dword [ebp - 0x80], esi
push dword [ebp - 0x7c]
call fcn.004fcc7d
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.004c7e80
mov byte [ebp - 4], 0x22
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x5c], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4e3752
push esi
push 0
lea ecx, [ebp - 0x5c]
call fcn.004b93a0
sub dword [ebp - 0x54], esi
push dword [ebp - 0x50]
call fcn.004fcc7d
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.004e4710
mov byte [ebp - 4], 0x24
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x70], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4e37aa
push esi
push 0
lea ecx, [ebp - 0x70]
call fcn.004b93a0
sub dword [ebp - 0x68], esi
push dword [ebp - 0x64]
call fcn.004fcc7d
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.004e4840
mov byte [ebp - 4], 0x26
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x38], vtable.CBaseRecordVector.0
test esi, esi
jle 0x4e3805
push esi
push 0
lea ecx, [ebp - 0x38]
call fcn.004b93a0
sub dword [ebp - 0x30], esi
push dword [ebp - 0x2c]
call fcn.004fcc7d
add esp, 4
invalid