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

Disassembly:
push 0xffffffffffffffff
push 0x4ba3c7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3d4
push ebx
push ebp
push esi
push edi
lea eax, [esp + 0x2c]
push eax
mov esi, ecx
xor ebx, ebx
call fcn.00405f10
lea ecx, [esp + 0x10]
push ecx
mov ecx, esi
mov dword [esp + 0x3f0], ebx
call fcn.00405ed0
mov esi, dword [esp + 0x3f4]
mov ebp, dword [esp + 0x3f8]
mov byte [esp + 0x3ec], 1
jmp 0x42bf80
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x2c]
call dword [eax + 4]
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x30]
je 0x42bfc0
push 0x1509
push str..._.._.._Common_MiscMultiFieldBlob.h
push str.m_pBlob__rhs.m_pBlob
push str.Same_m_pBlob
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x34]
je 0x42c8b7
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041cc40
mov edi, eax
lea eax, [edi - 1]
cmp eax, 0xc
ja case.default.0x42bff0
jmp dword [eax*4 + 0x42c988]
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 4
jne 0x42c722
mov edx, dword [esp + 0x10]
mov ecx, edi
mov eax, 1
shl eax, cl
lea ecx, [esp + 0x10]
or ebx, eax
call dword [edx + 4]
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
je case.default.0x42bff0
push ebp
push esi
lea edx, [esp + 0x28]
push edx
push 0x4c9460
jmp 0x42c70c
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041cd00
mov dword [esp + 0x20], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42c075
sub eax, edx
mov dword [esp + 0x28], eax
je 0x42c747
mov edx, 1
mov ecx, edi
shl edx, cl
or ebx, edx
test esi, esi
je case.default.0x42bff0
push ebp
push esi
lea eax, [esp + 0x28]
push eax
push str.Name
call fcn.0041efd0
add esp, 0x10
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
lea ecx, [esp + 0x10]
call fcn.0041cd00
mov dword [esp + 0x20], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42c0d8
sub eax, edx
mov dword [esp + 0x28], eax
je 0x42c775
mov eax, 1
mov ecx, edi
shl eax, cl
or ebx, eax
test esi, esi
je case.default.0x42bff0
push ebp
push esi
lea ecx, [esp + 0x28]
push ecx
push str.InstallDirName
call fcn.0041efd0
add esp, 0x10
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 4
jne 0x42c7a3
mov edx, dword [esp + 0x10]
mov ecx, edi
mov eax, 1
shl eax, cl
lea ecx, [esp + 0x10]
or ebx, eax
call dword [edx + 4]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
je case.default.0x42bff0
push ebp
push esi
lea edx, [esp + 0x28]
push edx
push str.MinCacheFileSizeMB
jmp 0x42c70c
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 4
jne 0x42c7d1
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, 1
shl edx, cl
lea ecx, [esp + 0x10]
or ebx, edx
call dword [eax + 4]
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov edx, dword [eax]
mov dword [esp + 0x20], edx
je case.default.0x42bff0
push ebp
push esi
lea eax, [esp + 0x28]
push eax
push str.MaxCacheFileSizeMB
jmp 0x42c70c
test esi, esi
je 0x42c1f4
push ebp
push esi
push str.AppLaunchOptionsRecord
call fcn.0041f0e0
add esp, 0xc
inc ebp
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
lea ecx, [esp + 0x10]
call fcn.00426a60
test eax, eax
je 0x42c27a
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
push 0
push 0x501a18
push 0x4ff40c
push 0
lea ecx, [esp + 0x20]
call fcn.00426a60
push eax
call fcn.0049f187
add esp, 0x14
test eax, eax
jne 0x42c25b
push 0x373
push str.p4clients_rel_betaProjectsGazelleProtoCommonSrcContentDescriptionDBKeyRecord.cpp
push str.dynamic_cast_CAppLaunchOptionsRecord____iterCurr__FindRegisteredChildBlob_______0
push str.CAppLaunchOptionsRecord_registered_to_CAppRecord
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
push ebp
push esi
lea ecx, [esp + 0x18]
call fcn.00426a60
mov ecx, eax
call fcn.0042b0d0
jmp 0x42c299
push ebp
push esi
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x1f0]
call fcn.0042be00
lea ecx, [esp + 0x1e4]
call fcn.0044cdc0
mov edx, 1
mov ecx, edi
shl edx, cl
or ebx, edx
test esi, esi
je case.default.0x42bff0
dec ebp
push ebp
push esi
push str.AppLaunchOptionsRecord
call fcn.0041f1b0
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
test esi, esi
je 0x42c2de
push ebp
push esi
push str.AppIconsRecord
call fcn.0041f0e0
add esp, 0xc
inc ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.00426a60
test eax, eax
je 0x42c364
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
push 0
push 0x5018c4
push 0x4ff40c
push 0
lea ecx, [esp + 0x20]
call fcn.00426a60
push eax
call fcn.0049f187
add esp, 0x14
test eax, eax
jne 0x42c345
push 0x383
push str.p4clients_rel_betaProjectsGazelleProtoCommonSrcContentDescriptionDBKeyRecord.cpp
push str.dynamic_cast_CAppIconsRecord____iterCurr__FindRegisteredChildBlob_______0
push str.CAppIconsRecord_registered_to_CAppRecord
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
push ebp
push esi
lea ecx, [esp + 0x18]
call fcn.00426a60
mov ecx, eax
call fcn.00429130
jmp 0x42c383
push ebp
push esi
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x2f0]
call fcn.00429a50
lea ecx, [esp + 0x2e4]
call fcn.0044cdc0
mov edx, 1
mov ecx, edi
shl edx, cl
or ebx, edx
test esi, esi
je case.default.0x42bff0
dec ebp
push ebp
push esi
push str.AppIconsRecord
call fcn.0041f1b0
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 4
jne 0x42c7ff
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, 1
shl edx, cl
lea ecx, [esp + 0x10]
or ebx, edx
call dword [eax + 4]
lea ecx, [esp + 0x68]
push ecx
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov edx, dword [eax]
mov dword [esp + 0x20], edx
je case.default.0x42bff0
push ebp
push esi
lea eax, [esp + 0x28]
push eax
push str.OnFirstLaunch
jmp 0x42c70c
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 1
jne 0x42c82d
mov edx, dword [esp + 0x10]
mov ecx, edi
shl eax, cl
lea ecx, [esp + 0x10]
or ebx, eax
call dword [edx + 4]
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov al, byte [eax]
je case.default.0x42bff0
push ebp
push esi
lea edx, [esp + 0x2f]
test al, al
push edx
setne cl
push str.IsBandwidthGreedy
mov byte [esp + 0x37], cl
call fcn.004276e0
add esp, 0x10
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
test esi, esi
je 0x42c499
push ebp
push esi
push str.AppVersionsRecord
call fcn.0041f0e0
add esp, 0xc
inc ebp
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.00426a60
test eax, eax
je 0x42c51f
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
push 0
push 0x501360
push 0x4ff40c
push 0
lea ecx, [esp + 0x20]
call fcn.00426a60
push eax
call fcn.0049f187
add esp, 0x14
test eax, eax
jne 0x42c500
push 0x3ad
push str.p4clients_rel_betaProjectsGazelleProtoCommonSrcContentDescriptionDBKeyRecord.cpp
push str.dynamic_cast_CAppVersionsRecord____iterCurr__FindRegisteredChildBlob_______0
push str.CAppVersionsRecord_registered_to_CAppRecord
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
push ebp
push esi
lea ecx, [esp + 0x18]
call fcn.00426a60
mov ecx, eax
call fcn.0042b2c0
jmp 0x42c53e
push ebp
push esi
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x270]
call fcn.0042be60
lea ecx, [esp + 0x264]
call fcn.0044cdc0
mov edx, 1
mov ecx, edi
shl edx, cl
or ebx, edx
test esi, esi
je case.default.0x42bff0
dec ebp
push ebp
push esi
push str.AppVersionsRecord
call fcn.0041f1b0
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 4
jne 0x42c85b
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, 1
shl edx, cl
lea ecx, [esp + 0x10]
or ebx, edx
call dword [eax + 4]
lea ecx, [esp + 0x74]
push ecx
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov edx, dword [eax]
mov dword [esp + 0x20], edx
je case.default.0x42bff0
push ebp
push esi
lea eax, [esp + 0x28]
push eax
push str.CurrentVersionId
jmp 0x42c70c
test esi, esi
je 0x42c5e3
push ebp
push esi
push str.FilesystemsRecord
call fcn.0041f0e0
add esp, 0xc
inc ebp
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
lea ecx, [esp + 0x10]
call fcn.00426a60
test eax, eax
je 0x42c669
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
push 0
push 0x501a44
push 0x4ff40c
push 0
lea ecx, [esp + 0x20]
call fcn.00426a60
push eax
call fcn.0049f187
add esp, 0x14
test eax, eax
jne 0x42c64a
push 0x3ca
push str.p4clients_rel_betaProjectsGazelleProtoCommonSrcContentDescriptionDBKeyRecord.cpp
push str.dynamic_cast_CAppFilesystemsRecord____iterCurr__FindRegisteredChildBlob_______0
push str.CAppFilesystemsRecord_registered_to_CAppRecord
call fcn.00421210
mov ecx, eax
call fcn.00421040
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [edx + 4]
push ebp
push esi
lea ecx, [esp + 0x18]
call fcn.00426a60
mov ecx, eax
call fcn.0042b4e0
jmp 0x42c688
push ebp
push esi
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x370]
call fcn.0042bec0
lea ecx, [esp + 0x364]
call fcn.0044cdc0
mov edx, 1
mov ecx, edi
shl edx, cl
or ebx, edx
test esi, esi
je case.default.0x42bff0
dec ebp
push ebp
push esi
push str.FilesystemsRecord
call fcn.0041f1b0
add esp, 0xc
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x10]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041c9f0
cmp eax, 4
jne 0x42c889
mov eax, dword [esp + 0x10]
mov ecx, edi
mov edx, 1
shl edx, cl
lea ecx, [esp + 0x10]
or ebx, edx
call dword [eax + 4]
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0x14]
call fcn.0041e8f0
test esi, esi
mov edx, dword [eax]
mov dword [esp + 0x20], edx
je case.default.0x42bff0
push ebp
push esi
lea eax, [esp + 0x28]
push eax
push str.TrickleVersionId
call fcn.0041f360
add esp, 0x10
lea ecx, [esp + 0x10]
call fcn.00403df0
jmp 0x42bf80
push str.Bad_AppId_in_CAppRecord
lea ecx, [esp + 0x40]
call fcn.0040a320
push 0x4f2984
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x44], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Empty_Description_in_CAppRecord
lea ecx, [esp + 0xb4]
call fcn.0040a320
push 0x4f2984
lea edx, [esp + 0xb4]
push edx
mov dword [esp + 0xb8], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Empty_InstallDirName_in_CAppRecord
lea ecx, [esp + 0x88]
call fcn.0040a320
push 0x4f2984
lea eax, [esp + 0x88]
push eax
mov dword [esp + 0x8c], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Bad_MinCacheFileSizeMB_field_in_CAppRecord
lea ecx, [esp + 0x164]
call fcn.0040a320
push 0x4f2984
lea ecx, [esp + 0x164]
push ecx
mov dword [esp + method.common::CMultiFieldBlob::CStringFieldNotTerminatedException.virtual_0], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Bad_MaxCacheFileSizeMB_field_in_CAppRecord
lea ecx, [esp + 0x138]
call fcn.0040a320
push 0x4f2984
lea edx, [esp + 0x138]
push edx
mov dword [esp + method.common::CMultiFieldBlob::CStringFieldNotTerminatedException.virtual_0], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Bad_OnFirstLaunch_field_in_CAppRecord
lea ecx, [esp + 0x1bc]
call fcn.0040a320
push 0x4f2984
lea eax, [esp + 0x1bc]
push eax
mov dword [esp + method.common::CMultiFieldBlob::CStringFieldNotTerminatedException.virtual_0], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Bad_IsBandwidthGreedy_field_in_CAppRecord
lea ecx, [esp + 0x190]
call fcn.0040a320
push 0x4f2984
lea ecx, [esp + 0x190]
push ecx
mov dword [esp + method.common::CMultiFieldBlob::CStringFieldNotTerminatedException.virtual_0], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Bad_CurrentVersionId_in_CAppRecord
lea ecx, [esp + 0xe0]
call fcn.0040a320
push 0x4f2984
lea edx, [esp + 0xe0]
push edx
mov dword [esp + 0xe4], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
push str.Bad_TrickleVersionId_in_CAppRecord
lea ecx, [esp + 0x10c]
call fcn.0040a320
push 0x4f2984
lea eax, [esp + 0x10c]
push eax
mov dword [esp + method.common::CMultiFieldBlob::CStringFieldNotTerminatedException.virtual_0], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
mov ecx, ebx
and ecx, 0x3ffe
cmp ecx, 0x3ffe
mov byte [esp + 0x3ec], 0
mov dword [esp + 0x10], vtable.common::CMultiFieldBlob::index_iterator_impl.0
je 0x42c96d
lea edx, [esp + 0x84]
push ebx
push edx
call fcn.0040deb0
push eax
lea eax, [esp + 0xbc]
push str.Missing_field_in_CAppRecord:
push eax
mov byte [esp + 0x400], 2
call fcn.00407fc0
add esp, 0x14
mov esi, eax
mov bl, 3
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3ec], bl
call fcn.0049e7ab
push 0xffffffffffffffff
xor edi, edi
push edi
push esi
lea ecx, [esp + 0x54]
mov byte [esp + 0x3f8], 4
mov dword [esp + 0x48], vtable.common::ICloneableException.0
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], edi
mov byte [esp + 0x58], 0
call fcn.00405f50
push 0x4f2984
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x6c], edi
mov byte [esp + 0x3f4], bl
mov dword [esp + 0x44], vtable.Grid::CAppRecord::CValidateFieldsException.0
call fcn.0049e394
mov ecx, dword [esp + 0x3e4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x3e0
ret 8