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

Disassembly:
push 0xc8
mov eax, 0x4c7ce9
call fcn.0040193b
mov edi, ecx
call fcn.004034d5
test eax, eax
jne 0x4032e8
xor ebx, ebx
cmp dword [edi], ebx
jne 0x402c24
push dword [ebp + 0x10]
mov ecx, edi
call fcn.00402828
test eax, eax
jne 0x4032e8
mov ecx, dword [edi]
add ecx, 4
mov eax, dword [ecx]
call dword [eax + 4]
push 4
pop eax
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x48], vtable.micro::utils::QObArray_class_CInOutTempBuffer_.0
mov dword [ebp - 4], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x7c], vtable.micro::utils::QObArray_class_CSequentialOutTempBufferImp__.0
mov dword [ebp - 0x8c], ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x90], vtable.micro::utils::QObArray_class_micro::com::QComPtr_struct_ISequentialOutStream__.0
xor esi, esi
mov byte [ebp - 4], 2
mov eax, dword [edi + 0x5c]
inc esi
mov dword [ebp - 0x14], eax
cmp dword [edi + 0x98], esi
jle 0x402d52
or dword [ebp - 0xa0], 0xffffffff
mov byte [ebp - 0xd4], bl
mov dword [ebp - 0xd0], vtable.micro::utils::QString.0
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], vtable.micro::files::QFile.0
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xa4], vtable.micro::qsec::QCRC32.0
push 0x38
mov byte [ebp - 4], 3
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
pop ecx
test eax, eax
je 0x402cf0
lea ecx, [ebp - 0xd4]
push ecx
mov ecx, eax
call fcn.00404378
jmp 0x402cf2
mov eax, ebx
push eax
lea ecx, [ebp - 0x48]
call fcn.00403b28
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 2
call fcn.004071df
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
mov ebx, dword [eax + ecx*4 - 4]
cmp dword [ebx + 0x18], 0
jne 0x402d2f
push 0x100000
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
pop ecx
mov dword [ebx + 0x18], eax
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
mov eax, dword [eax + ecx*4 - 4]
xor ebx, ebx
or dword [eax + 0x34], 0xffffffff
inc esi
mov dword [eax + 0x1c], ebx
mov byte [eax + 0x20], bl
mov dword [eax + 0x28], ebx
mov dword [eax + 0x2c], ebx
cmp esi, dword [edi + 0x98]
jl 0x402c92
xor ebx, ebx
inc ebx
cmp dword [edi + 0x98], ebx
jle 0x402dd3
push 0xc
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
mov esi, eax
pop ecx
test esi, esi
je 0x402d78
and dword [esi + 4], 0
mov dword [esi], vtable.CSequentialOutTempBufferImp.0
jmp 0x402d7a
xor esi, esi
mov dword [ebp + 0x10], esi
test esi, esi
je 0x402d87
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x90]
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + ebx*4 - 4]
mov dword [esi + 8], eax
lea eax, [ebp + 0x10]
push eax
call fcn.00403c97
push 4
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
pop ecx
test eax, eax
je 0x402db5
mov dword [eax], esi
jmp 0x402db7
xor eax, eax
push eax
lea ecx, [ebp - 0x7c]
call fcn.00403b28
mov byte [ebp - 4], 2
mov eax, dword [esi]
push esi
call dword [eax + 8]
inc ebx
cmp ebx, dword [edi + 0x98]
jl 0x402d5d
mov ebx, dword [ebp - 0x14]
xor esi, esi
test ebx, ebx
jle 0x402df0
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 0x402ddc
cmp dword [edi + 0x84], 0
jne 0x402e03
mov esi, 0x80004005
jmp 0x40328b
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp - 0x68]
push eax
mov eax, dword [edi + 0x8c]
lea ecx, [edi + 0x54]
push dword [eax]
call fcn.00402363
mov esi, dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
push 0x20
call esi
mov ebx, eax
mov dword [ebp - 0x20], eax
pop ecx
test ebx, ebx
je 0x402e50
mov dword [ebx + 4], vtable.ICompressGetSubStreamSize.0
xor eax, eax
mov dword [ebx + 8], eax
mov dword [ebx], vtable.CSequentialInStreamSizeCount2.1.0
mov dword [ebx + 4], vtable.CSequentialInStreamSizeCount2.0
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
jmp 0x402e55
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x94], ebx
test ebx, ebx
je 0x402e65
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
push 0x18
mov byte [ebp - 4], 8
call esi
mov esi, eax
mov dword [ebp - 0x1c], eax
pop ecx
test esi, esi
je 0x402e87
and dword [esi + 4], 0
mov dword [esi], vtable.CSequentialOutStreamSizeCount.0
and dword [esi + 8], 0
jmp 0x402e8c
xor esi, esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x98], esi
test esi, esi
je 0x402e9c
mov eax, dword [esi]
push esi
call dword [eax + 4]
push dword [ebp + 8]
lea ecx, [ebx + 0xc]
mov byte [ebp - 4], 9
call fcn.00403a26
lea edx, [ebx + 0x10]
mov ecx, dword [edx]
test ecx, ecx
je 0x402ebd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea edx, [ebx + 0x10]
and dword [edx], 0
mov eax, dword [ebx + 0xc]
push edx
push 0x4d4200
push eax
mov ecx, dword [eax]
call dword [ecx]
push dword [ebp + 0x18]
and dword [ebx + 0x18], 0
lea ecx, [esi + 8]
and dword [ebx + 0x1c], 0
call fcn.00403a26
xor eax, eax
mov dword [ebp - 0x60], 0x4d4004
push 4
pop ecx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x34], 0x4d3ff8
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xb
call fcn.004044cb
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x50]
mov dword [ecx + eax*4], ebx
inc eax
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x58], eax
call fcn.004044cb
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov dword [ecx + eax*4], esi
inc eax
mov dword [ebp - 0x2c], eax
xor eax, eax
inc eax
cmp dword [edi + 0x98], eax
jle 0x402f77
mov ebx, eax
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0x34]
mov eax, dword [eax + ebx*4 - 4]
mov esi, dword [eax]
call fcn.004044cb
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov dword [ecx + eax*4], esi
inc eax
inc ebx
mov dword [ebp - 0x2c], eax
cmp ebx, dword [edi + 0x98]
jl 0x402f4d
mov ebx, dword [ebp - 0x20]
xor esi, esi
mov dword [ebp - 0x4c], esi
cmp dword [edi + 0x10], esi
jle 0x4030b8
mov eax, dword [edi + 0x18]
mov eax, dword [eax + esi*4]
and dword [ebp - 0x18], 0
mov dword [ebp - 0x64], eax
mov byte [ebp - 4], 0xc
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x402fab
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x4d4210
push ecx
call dword [eax]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x402fc6
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
and dword [ebp + 0x10], 0
mov byte [ebp - 4], 0xd
mov eax, dword [edi]
mov eax, dword [eax + 0x84]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x402fe3
mov ecx, dword [eax + 0x18]
mov eax, dword [ecx]
lea edx, [ebp + 0x10]
push edx
push 0x4d4220
push ecx
call dword [eax]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x403084
push 0x14
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new_unsigned_int_]
mov esi, eax
mov dword [ebp + 8], eax
pop ecx
test esi, esi
je 0x403024
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], vtable.CDynBufSeqOutStream.0
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
jmp 0x403029
xor esi, esi
mov dword [ebp + 8], esi
mov dword [ebp - 0x9c], esi
test esi, esi
je 0x403039
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov byte [ebp - 4], 0xe
and dword [esi + 0x10], 0
mov eax, dword [ebp + 0x10]
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x64]
push dword [ecx + 0x10]
lea ecx, [esi + 8]
call fcn.00403a61
mov eax, dword [ebp + 8]
push dword [eax + 0x10]
push dword [eax + 0xc]
push dword [esi + 0x10]
call dword [sym.imp.msvcrt.dll_memcpy]
mov ecx, dword [ebp + 8]
add esp, 0xc
mov byte [ebp - 4], 0xd
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp - 0x4c]
mov byte [ebp - 4], 0xc
test eax, eax
je 0x403096
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp + 0x10], 0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4030ab
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
and dword [ebp - 0x18], 0
inc esi
mov dword [ebp - 0x4c], esi
cmp esi, dword [edi + 0x10]
jl 0x402f85
cmp dword [edi + 0x10], 1
mov edx, dword [ebp - 0x68]
mov dword [ebp + 8], edx
jle 0x403105
mov esi, dword [edi + 0x18]
xor ecx, ecx
inc ecx
mov eax, dword [esi]
mov edx, dword [eax]
mov eax, dword [eax + 4]
cmp edx, 3
jne 0x4030da
test eax, eax
je 0x4030f2
cmp edx, 0x3030103
jne 0x4030e6
test eax, eax
je 0x4030f2
cmp edx, 0x303011b
jne 0x4030f9
test eax, eax
jne 0x4030f9
mov edx, ecx
mov dword [ebp + 8], edx
jmp 0x4030fc
mov edx, dword [ebp + 8]
add esi, 4
inc ecx
cmp ecx, dword [edi + 0x10]
jl 0x4030ca
push dword [ebp + 0x20]
mov eax, dword [edi]
push dword [ebp - 0x2c]
push 0
push dword [ebp - 0x24]
mov dword [eax + 0x70], edx
mov eax, dword [edi + 4]
push 1
push 0
push dword [ebp - 0x50]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x40325c
sub esp, 0x14
lea eax, [edi + 0xf8]
mov ecx, esp
push eax
call fcn.00403b4d
mov edx, dword [ebp + 0x14]
lea ecx, [edi + 0xa4]
call fcn.004026a5
mov eax, dword [ebp - 0x1c]
add esp, 0x14
mov ecx, dword [ebp + 0x1c]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.00403afc
xor ecx, ecx
inc ecx
mov dword [ebp + 8], ecx
cmp dword [edi + 0x98], ecx
jle 0x4031ae
mov eax, dword [ebp - 0x38]
push dword [ebp + 0x18]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, eax
mov dword [ebp + 0x20], eax
call fcn.004072fc
mov esi, eax
test esi, esi
jne 0x40325c
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
push dword [eax + 0x2c]
push dword [eax + 0x28]
call fcn.00403afc
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, dword [edi + 0x98]
jl 0x403170
mov eax, dword [edi + 0xf4]
xor esi, esi
cmp dword [eax + 0x90], esi
jle 0x40321d
mov ecx, dword [ebp + 0x14]
add ecx, 0x3c
mov dword [ebp + 0x18], ecx
xor ecx, ecx
cmp dword [edi + 0x70], ecx
jle 0x4031e7
mov eax, dword [eax + 0xa4]
mov edx, dword [eax + esi*4]
mov eax, dword [edi + 0x78]
cmp dword [eax], edx
je 0x4031ea
inc ecx
add eax, 8
cmp ecx, dword [edi + 0x70]
jl 0x4031da
or ecx, 0xffffffff
test ecx, ecx
jns 0x4031f6
mov ecx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x1c]
jmp 0x403204
mov eax, dword [edi]
mov eax, dword [eax + 0x6c]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
push eax
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00403afc
mov eax, dword [edi + 0xf4]
inc esi
cmp esi, dword [eax + 0x90]
jl 0x4031c7
mov edx, dword [ebp - 0x14]
lea esi, [edx - 1]
test esi, esi
js 0x40325a
mov ebx, dword [ebp + 0x14]
sub edx, esi
shl edx, 2
mov dword [ebp - 0x14], edx
mov eax, dword [edi + 0x18]
mov ecx, dword [eax + esi*4]
mov eax, dword [ebx + 0x10]
mov edx, dword [edx + eax - 4]
lea eax, [ecx + 8]
push eax
lea ecx, [edx + 8]
call fcn.00403ab6
mov edx, dword [ebp - 0x14]
add edx, 4
dec esi
mov dword [ebp - 0x14], edx
jns 0x403232
mov ebx, dword [ebp - 0x20]
xor esi, esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xa
call fcn.004044fd
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 9
call fcn.004044fd
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 8
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 1
call fcn.00403c60
mov dword [ebp - 0x7c], vtable.micro::utils::QObArray_class_CSequentialOutTempBufferImp__.0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x7c]
push dword [ebp - 0x74]
xor ebx, ebx
push ebx
call dword [0x4d4014]
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], bl
call fcn.004044fd
mov dword [ebp - 0x48], vtable.micro::utils::QObArray_class_CInOutTempBuffer_.0
mov dword [ebp - 4], 0x14
lea ecx, [ebp - 0x48]
push dword [ebp - 0x40]
push ebx
call dword [0x4d4020]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.004044fd
mov eax, esi
call fcn.00401a13
ret 0x1c