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

Disassembly:
mov eax, 0x54bc21
call fcn.0054565c
sub esp, 0xcc
push ebx
push esi
push edi
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, 0x64
ja 0x541803
movsb byte es:[edi], byte [esi]
stosd dword es:[edi], eax
mov bl, 0xb9
std
push ds
and ecx, dword [edx - 0x23]
stc
push esi
sahf
pop esi
inc edi
inc edx
mov al, byte [0x7021f748]
int 0xca
invalid
mov ecx, esi
call fcn.00540962
test eax, eax
jne 0x541de8
xor ebx, ebx
cmp dword [esi], ebx
jne 0x54182a
push dword [ebp + 0x10]
mov ecx, esi
call fcn.00540fba
test eax, eax
jne 0x541de8
mov ecx, dword [esi]
add ecx, 4
mov eax, dword [ecx]
call dword [eax + 4]
push 4
pop eax
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x38], vtable.CObjectVector_class_CInOutTempBuffer_.0
mov dword [ebp - 4], ebx
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x88], vtable.CObjectVector_class_CSequentialOutTempBufferImp__.0
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x74], vtable.CObjectVector_class_CMyComPtr_struct_ISequentialOutStream__.0
xor edi, edi
mov byte [ebp - 4], 2
mov eax, dword [esi + 0x60]
inc edi
mov dword [ebp + 0x10], eax
cmp dword [esi + 0x9c], edi
jle 0x5418dc
lea ecx, [ebp - 0xd8]
call fcn.00544f5a
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 3
call fcn.00417b70
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 2
call fcn.00544d1d
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ecx + eax*4 - 4]
call fcn.00544af6
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ecx + eax*4 - 4]
call fcn.005448d1
inc edi
cmp edi, dword [esi + 0x9c]
jl 0x54188e
xor ebx, ebx
inc ebx
cmp dword [esi + 0x9c], ebx
jle 0x54195b
push 0xc
call fcn.0041beb3
mov edi, eax
pop ecx
test edi, edi
je 0x541901
and dword [edi + 4], 0
mov dword [edi], vtable.CSequentialOutTempBufferImp.0
jmp 0x541903
xor edi, edi
mov dword [ebp - 0x14], edi
test edi, edi
je 0x541910
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x74]
mov eax, dword [eax + ebx*4 - 4]
mov dword [edi + 8], eax
lea eax, [ebp - 0x14]
push eax
call fcn.004165c1
push 4
call fcn.0041beb3
pop ecx
test eax, eax
je 0x54193a
mov dword [eax], edi
jmp 0x54193c
xor eax, eax
push eax
lea ecx, [ebp - 0x88]
call fcn.0040f33a
mov byte [ebp - 4], 2
mov eax, dword [edi]
push edi
call dword [eax + 8]
inc ebx
cmp ebx, dword [esi + 0x9c]
jl 0x5418e7
mov ebx, dword [ebp + 0x10]
xor edi, edi
test ebx, ebx
jle 0x541978
mov ecx, dword [esi]
push 0
add ecx, 4
push 0
mov eax, dword [ecx]
push edi
call dword [eax + 8]
inc edi
cmp edi, ebx
jl 0x541964
xor ebx, ebx
cmp dword [esi + 0x88], ebx
jne 0x54198c
mov ebx, 0x80004005
jmp 0x541dbf
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [esi + 0x8c]
lea ecx, [esi + 0x58]
push dword [eax]
call fcn.00417669
push 0x20
call fcn.0041beb3
mov edi, eax
pop ecx
mov dword [ebp - 0x14], edi
test edi, edi
je 0x5419d4
mov dword [edi + 4], vtable.ICompressGetSubStreamSize.0
mov dword [edi + 8], ebx
mov dword [edi], vtable.CSequentialInStreamSizeCount2.1.0
mov dword [edi + 4], vtable.CSequentialInStreamSizeCount2.0
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
jmp 0x5419d9
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x90], edi
test edi, edi
je 0x5419e9
mov eax, dword [edi]
push edi
call dword [eax + 4]
push 0x18
mov byte [ebp - 4], 6
call fcn.0041beb3
mov ebx, eax
pop ecx
mov dword [ebp - 0x20], eax
test ebx, ebx
je 0x541a0e
and dword [ebx + 4], 0
mov dword [ebx], vtable.CSequentialOutStreamSizeCount.0
and dword [ebx + 8], 0
jmp 0x541a13
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x8c], ebx
test ebx, ebx
je 0x541a23
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov byte [ebp - 4], 7
push dword [ebp + 8]
lea ecx, [edi + 0xc]
call fcn.0040ddf6
lea edx, [edi + 0x10]
mov ecx, dword [edx]
test ecx, ecx
je 0x541a44
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea edx, [edi + 0x10]
and dword [edx], 0
mov eax, dword [edi + 0xc]
push edx
mov ecx, dword [eax]
push 0x55992c
push eax
call dword [ecx]
push dword [ebp + 0x18]
and dword [edi + 0x18], 0
and dword [edi + 0x1c], 0
lea ecx, [ebx + 8]
call fcn.0040ddf6
xor eax, eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
push 4
pop ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x60], vtable.CRecordVector_struct_ISequentialInStream__.0
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x4c], vtable.CRecordVector_struct_ISequentialOutStream__.0
push edi
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 9
call fcn.0040f33a
push ebx
lea ecx, [ebp - 0x4c]
call fcn.0040f33a
xor ebx, ebx
inc ebx
cmp dword [esi + 0x9c], ebx
jle 0x541ad4
mov eax, dword [ebp - 0x68]
lea ecx, [ebp - 0x4c]
mov eax, dword [eax + ebx*4 - 4]
push dword [eax]
call fcn.0040f33a
inc ebx
cmp ebx, dword [esi + 0x9c]
jl 0x541aba
xor ebx, ebx
mov dword [ebp - 0x10], ebx
cmp dword [esi + 0x10], ebx
jle 0x541be7
mov eax, dword [esi + 0x14]
mov eax, dword [eax + ebx*4]
and dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0xa
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x541b08
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp - 0x1c]
push edx
push 0x55995c
push ecx
call dword [eax]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x541b23
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
and dword [ebp + 8], 0
mov byte [ebp - 4], 0xb
mov eax, dword [esi]
mov eax, dword [eax + 0x80]
mov eax, dword [eax + ebx*4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x541b40
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp + 8]
push edx
push 0x559abc
push ecx
call dword [eax]
mov eax, dword [ebp + 8]
test eax, eax
je 0x541bbb
push 0x14
call fcn.0041beb3
mov ebx, eax
pop ecx
test ebx, ebx
je 0x541b79
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx], vtable.CDynBufSeqOutStream.0
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
jmp 0x541b7b
xor ebx, ebx
mov dword [ebp - 0x94], ebx
test ebx, ebx
je 0x541b8b
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov byte [ebp - 4], 0xc
and dword [ebx + 0x10], 0
mov eax, dword [ebp + 8]
push ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov eax, dword [ebp - 0x24]
add eax, 8
push eax
mov ecx, ebx
call fcn.0052e6aa
mov byte [ebp - 4], 0xb
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 4], 0xa
test eax, eax
je 0x541bc9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x541bda
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc ebx
mov dword [ebp - 0x10], ebx
cmp ebx, dword [esi + 0x10]
jl 0x541ae2
cmp dword [esi + 0x10], 1
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x10], edx
jle 0x541c34
mov ebx, dword [esi + 0x14]
xor ecx, ecx
inc ecx
mov eax, dword [ebx]
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp edx, 3
jne 0x541c09
test eax, eax
je 0x541c21
cmp edx, 0x3030103
jne 0x541c15
test eax, eax
je 0x541c21
cmp edx, 0x303011b
jne 0x541c28
test eax, eax
jne 0x541c28
mov edx, ecx
mov dword [ebp - 0x10], edx
jmp 0x541c2b
mov edx, dword [ebp - 0x10]
add ebx, 4
inc ecx
cmp ecx, dword [esi + 0x10]
jl 0x541bf9
push dword [ebp + 0x20]
mov eax, dword [esi]
mov dword [eax + 0x70], edx
push dword [ebp - 0x44]
mov eax, dword [esi + 4]
push 0
push dword [ebp - 0x40]
mov ecx, dword [eax]
push 1
push 0
push dword [ebp - 0x54]
push eax
call dword [ecx + 0xc]
mov ebx, eax
test ebx, ebx
jne 0x541d85
sub esp, 0x14
lea eax, [esi + 0xfc]
mov ecx, esp
push eax
call fcn.00412f09
mov edx, dword [ebp + 0x14]
lea ecx, [esi + 0xa8]
call fcn.005412cf
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp + 0x1c]
add esp, 0x14
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00410cfc
xor ecx, ecx
inc ecx
mov dword [ebp + 0x20], ecx
cmp dword [esi + 0x9c], ecx
jle 0x541cdd
mov eax, dword [ebp - 0x2c]
push dword [ebp + 0x18]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, eax
mov dword [ebp - 0x18], eax
call fcn.00544564
mov ebx, eax
test ebx, ebx
jne 0x541d85
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x1c]
push dword [eax + 0x34]
push dword [eax + 0x30]
call fcn.00410cfc
mov ecx, dword [ebp + 0x20]
inc ecx
mov dword [ebp + 0x20], ecx
cmp ecx, dword [esi + 0x9c]
jl 0x541c9f
mov eax, dword [esi + 0xf8]
xor ebx, ebx
cmp dword [eax + 0x90], ebx
jle 0x541d46
xor ecx, ecx
cmp dword [esi + 0x74], ecx
jle 0x541d0d
mov eax, dword [eax + 0xa0]
mov edx, dword [eax + ebx*4]
mov eax, dword [esi + 0x78]
cmp dword [eax], edx
je 0x541d10
inc ecx
add eax, 8
cmp ecx, dword [esi + 0x74]
jl 0x541d00
or ecx, 0xffffffff
test ecx, ecx
jns 0x541d1c
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x1c]
jmp 0x541d2a
mov eax, dword [esi]
mov eax, dword [eax + 0x68]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
push eax
push ecx
mov ecx, dword [ebp + 0x14]
lea ecx, [ecx + 0x3c]
call fcn.00410cfc
mov eax, dword [esi + 0xf8]
inc ebx
cmp ebx, dword [eax + 0x90]
jl 0x541ced
mov edx, dword [ebp + 0x10]
lea ebx, [edx - 1]
test ebx, ebx
js 0x541d83
mov edi, dword [ebp + 0x14]
sub edx, ebx
shl edx, 2
mov dword [ebp + 0x10], edx
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + ebx*4]
mov eax, dword [edi + 0xc]
mov edx, dword [edx + eax - 4]
lea eax, [ecx + 8]
push eax
lea ecx, [edx + 8]
call fcn.004106fb
mov edx, dword [ebp + 0x10]
add edx, 4
dec ebx
mov dword [ebp + 0x10], edx
jns 0x541d5b
mov edi, dword [ebp - 0x14]
xor ebx, ebx
mov byte [ebp - 4], 8
mov esi, vtable.CBaseRecordVector.0
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], esi
call fcn.004e5c24
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], esi
call fcn.004e5c24
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 6
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov byte [ebp - 4], 2
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
call fcn.00416616
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0
call fcn.00417c6f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.00417b2c
mov eax, ebx
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x1c