Function at 0x4213a0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43b4e0
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x44f008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x58], ebx
test eax, eax
jne 0x4213f2
push 0x4e
push str.C:DriveProjectsdiskspd2_0_21aXmlProfileParserXmlProfileParser.cpp
push str.pszPath___nullptr
call fcn.0042c860
add esp, 0xc
test ebx, ebx
jne 0x42140a
push 0x4f
push str.C:DriveProjectsdiskspd2_0_21aXmlProfileParserXmlProfileParser.cpp
push str.pProfile___nullptr
call fcn.0042c860
add esp, 0xc
push 0x17
push str.DISKSPD.XSD
push 0
call dword [sym.imp.KERNEL32.DLL_FindResourceW]
mov esi, eax
test esi, esi
jne 0x421433
push 0x53
push str.C:DriveProjectsdiskspd2_0_21aXmlProfileParserXmlProfileParser.cpp
push str.hSchemaXmlResource___NULL
call fcn.0042c860
add esp, 0xc
push esi
push 0
call dword [sym.imp.KERNEL32.DLL_LoadResource]
mov esi, eax
test esi, esi
jne 0x421456
push 0x55
push str.C:DriveProjectsdiskspd2_0_21aXmlProfileParserXmlProfileParser.cpp
push str.hSchemaXml___NULL
call fcn.0042c860
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.DLL_LockResource]
mov ebx, eax
mov dword [ebp - 0x38], ebx
test ebx, ebx
jne 0x42147a
push 0x57
push str.C:DriveProjectsdiskspd2_0_21aXmlProfileParserXmlProfileParser.cpp
push str.pSchemaXml___NULL
call fcn.0042c860
add esp, 0xc
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
mov ebx, eax
xor edi, edi
xor eax, eax
mov dword [ebp - 0x3c], ebx
xor esi, esi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], esi
test ebx, ebx
je 0x421518
cmp ebx, 0x7fffffff
ja 0x421c20
add ebx, ebx
cmp ebx, 0x1000
jb 0x4214e5
lea eax, [ebx + 0x23]
cmp eax, ebx
ja 0x4214c9
or eax, 0xffffffff
push eax
call fcn.00423f21
add esp, 4
test eax, eax
je 0x421c43
lea edi, [eax + 0x23]
and edi, 0xffffffe0
mov dword [edi - 4], eax
jmp 0x4214f8
test ebx, ebx
je 0x4214f6
push ebx
call fcn.00423f21
add esp, 4
mov edi, eax
jmp 0x4214f8
xor edi, edi
push ebx
push 0
lea esi, [ebx + edi]
mov dword [ebp - 0x54], edi
push edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x40], esi
call fcn.00425140
mov ebx, dword [ebp - 0x3c]
add esp, 0xc
mov dword [ebp - 0x44], esi
mov esi, edi
push ebx
push edi
push 0xffffffffffffffff
mov dword [ebp - 4], 0
push dword [ebp - 0x38]
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
cmp eax, ebx
je 0x42154b
push 0x5e
push str.C:DriveProjectsdiskspd2_0_21aXmlProfileParserXmlProfileParser.cpp
push str.dwcchWritten__cchSchemaXml
call fcn.0042c860
add esp, 0xc
test esi, esi
jne 0x42164c
mov dword [ebp - 0x50], esi
push 0
push 0
mov byte [ebp - 4], 1
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov ebx, eax
test ebx, ebx
js 0x4219af
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
lea eax, [ebp - 0x34]
mov byte [ebp - 4], 5
push eax
push 0x44aaa4
push 1
push 0
push 0x44aac4
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test ebx, ebx
js 0x421965
mov eax, dword [ebp - 0x34]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov ebx, eax
test ebx, ebx
js 0x421965
mov eax, 2
mov word [ebp - 0x28], ax
xor eax, eax
mov word [ebp - 0x20], ax
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x28]
push 0
push 0
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x24]
push 0xffffffffffffffff
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x20]
push str.ProhibitDTD
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x1c]
push 0
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x34]
push 3
mov dword [ebp - 0x64], eax
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
mov dword [ebp - 0x14], eax
lea ecx, [eax - 1]
push ecx
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov ebx, eax
mov dword [ebp - 0x5c], ebx
test ebx, ebx
je 0x421665
push dword [ebp - 0x14]
push ebx
push 0xffffffffffffffff
push str.ProhibitDTD
push 0
push 3
call dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
cmp eax, dword [ebp - 0x14]
je 0x421665
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x421c2f
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0x50], esi
test esi, esi
je 0x421c25
jmp 0x421556
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x421c2f
mov edx, dword [ebp - 0x64]
sub esp, 0x10
mov byte [ebp - 4], 7
mov eax, esp
mov edi, dword [ebp - 0x68]
mov ecx, dword [edx]
mov dword [eax], edi
mov edi, dword [ebp - 0x6c]
mov dword [eax + 4], edi
mov edi, dword [ebp - 0x70]
mov dword [eax + 8], edi
mov edi, dword [ebp - 0x4c]
push ebx
push edx
mov dword [eax + 0xc], edi
call dword [ecx + 0x140]
push dword [ebp - 0x5c]
mov ebx, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov edi, dword [ebp - 0x54]
test ebx, ebx
js 0x421965
lea eax, [ebp - 0x3c]
push eax
push 0x44aad4
push 1
push 0
push 0x44aab4
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test ebx, ebx
js 0x421965
mov eax, dword [ebp - 0x3c]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov ebx, eax
test ebx, ebx
js 0x421965
lea eax, [ebp - 0x18]
push eax
push 0x44aaa4
push 1
push 0
push 0x44aac4
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test ebx, ebx
js 0x421965
mov eax, dword [ebp - 0x18]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0xfc]
mov ebx, eax
test ebx, ebx
js 0x421965
mov eax, dword [ebp - 0x18]
push 0xffffffffffffffff
push eax
mov ecx, dword [eax]
call dword [ecx + pe_nt_image_headers32]
mov ebx, eax
test ebx, ebx
js 0x421965
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x14]
push edx
push esi
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
test eax, eax
js 0x421bcb
cmp word [ebp - 0x14], 0xffff
jne 0x421bcb
mov eax, 9
mov word [ebp - 0x28], ax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x421787
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
push 0
push 0
push 0xffffffffffffffff
push 0x441ff8
push 0
mov byte [ebp - 4], 8
mov edi, dword [sym.imp.KERNEL32.DLL_MultiByteToWideChar]
push 3
call edi
mov dword [ebp - 0x14], eax
lea ecx, [eax - 1]
push ecx
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov ebx, eax
mov dword [ebp - 0x5c], ebx
test ebx, ebx
je 0x4217dc
push dword [ebp - 0x14]
push ebx
push 0xffffffffffffffff
push 0x441ff8
push 0
push 3
call edi
cmp eax, dword [ebp - 0x14]
je 0x4217dc
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x421c39
mov dword [ebp - 0x4c], ebx
test ebx, ebx
je 0x421c39
mov byte [ebp - 4], 9
sub esp, 0x10
mov eax, dword [ebp - 0x3c]
mov edx, esp
mov ecx, dword [ebp - 0x28]
push ebx
mov edi, dword [eax]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x24]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x20]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x1c]
push eax
mov dword [edx + 0xc], ecx
call dword [edi + 0x1c]
push dword [ebp - 0x5c]
mov ebx, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test ebx, ebx
js 0x421962
mov ebx, dword [ebp - 0x3c]
mov eax, 9
mov word [ebp - 0x28], ax
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x42184e
mov eax, dword [ebx]
push ebx
call dword [eax + 4]
mov ebx, dword [ebp - 0x20]
mov byte [ebp - 4], 0xa
sub esp, 0x10
mov eax, dword [ebp - 0x18]
mov edx, esp
mov ecx, dword [ebp - 0x28]
push eax
mov edi, dword [eax]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x24]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ecx
call dword [edi + 0x138]
mov ebx, eax
mov byte [ebp - 4], 5
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test ebx, ebx
js 0x421962
push dword [ebp - 0x74]
xor eax, eax
lea ecx, [ebp - 0x28]
mov word [ebp - 0x28], ax
call fcn.00421120
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x14]
mov eax, dword [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x28]
sub esp, 0x10
mov edx, esp
mov edi, dword [eax]
push eax
mov dword [edx], ecx
mov ecx, dword [ebp - 0x24]
mov dword [edx + 4], ecx
mov ecx, dword [ebp - 0x20]
mov dword [edx + 8], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [edx + 0xc], ecx
call dword [edi + 0xe8]
mov ebx, eax
test ebx, ebx
js 0x4218dd
cmp word [ebp - 0x14], 0xffff
je 0x421903
mov eax, dword [ebp - 0x18]
lea edx, [ebp - 0x38]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf0]
test eax, eax
js 0x4218fe
mov edx, dword [ebp - 0x38]
mov ecx, str.profile
call fcn.004212b0
mov ebx, 0x80004005
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test ebx, ebx
js 0x421962
lea eax, [ebp - 0x11]
push eax
push str.__Profile_Verbose
push dword [ebp - 0x18]
call fcn.004238d0
mov ebx, eax
test ebx, ebx
js 0x421962
mov edi, dword [ebp - 0x58]
cmp ebx, 1
je 0x42193a
mov al, byte [ebp - 0x11]
mov byte [edi + 0xc], al
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0
push eax
push str.__Profile_Progress
push dword [ebp - 0x18]
call fcn.004233c0
mov ebx, eax
mov eax, dword [ebp - 0x14]
test ebx, ebx
jns 0x4219f3
mov eax, dword [ebp - 0x60]
mov edi, dword [ebp - 0x54]
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x421976
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x421987
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x421998
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4219a9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
shr ebx, 0x1f
push esi
xor bl, 1
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test edi, edi
je 0x421c00
mov ecx, dword [ebp - 0x40]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffffe
cmp ecx, 0x1000
jb 0x421bf6
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x421c43
jmp 0x421bf6
cmp ebx, 1
je 0x4219fb
mov dword [edi + 0x10], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xc
push eax
push str.__Profile_ResultFormat
push dword [ebp - 0x18]
call fcn.00423610
mov edi, dword [ebp - 0x30]
mov ebx, eax
test ebx, ebx
js 0x421a5b
cmp ebx, 1
je 0x421a5b
cmp dword [ebp - 0x1c], 0x10
lea ecx, [ebp - 0x30]
jb 0x421a3b
mov ecx, edi
mov edx, dword [ebp - 0x20]
push 3
push 0x44a5e4
call fcn.00414f50
add esp, 8
test al, al
je 0x421a5b
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x2c], 1
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1c]
cmp eax, 0x10
jb 0x421a92
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x421a88
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x421c48
push ecx
push edi
call fcn.00423c9a
add esp, 8
test ebx, ebx
js 0x421962
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xd
push eax
push str.__Profile_PrecreateFiles
push dword [ebp - 0x18]
call fcn.00423610
mov edi, dword [ebp - 0x30]
mov ebx, eax
test ebx, ebx
js 0x421b63
cmp ebx, 1
je 0x421b63
cmp dword [ebp - 0x1c], 0x10
lea ecx, [ebp - 0x30]
jb 0x421ae2
mov ecx, edi
mov edx, dword [ebp - 0x20]
push 0xa
push str.UseMaxSize
call fcn.00414f50
add esp, 8
test al, al
je 0x421b04
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], 1
jmp 0x421b63
cmp dword [ebp - 0x1c], 0x10
lea ecx, [ebp - 0x30]
jb 0x421b0f
mov ecx, edi
mov edx, dword [ebp - 0x20]
push 0x20
push str.CreateOnlyFilesWithConstantSizes
call fcn.00414f50
add esp, 8
test al, al
je 0x421b31
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], 2
jmp 0x421b63
cmp dword [ebp - 0x1c], 0x10
lea ecx, [ebp - 0x30]
jb 0x421b3c
mov ecx, edi
mov edx, dword [ebp - 0x20]
push 0x26
push str.CreateOnlyFilesWithConstantOrZeroSizes
call fcn.00414f50
add esp, 8
test al, al
je 0x421b5e
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x30], 3
jmp 0x421b63
mov ebx, 0x80070057
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1c]
cmp eax, 0x10
jb 0x421b9a
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x421b90
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x421c48
push ecx
push edi
call fcn.00423c9a
add esp, 8
test ebx, ebx
js 0x421962
mov edi, dword [ebp - 0x58]
push edi
push dword [ebp - 0x18]
call fcn.00421c90
mov ebx, eax
test ebx, ebx
js 0x421962
mov ecx, dword [ebp - 0x60]
push edi
push dword [ebp - 0x18]
call fcn.00421ea0
mov ebx, eax
jmp 0x421962
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x38]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xf0]
test eax, eax
js 0x421bec
mov edx, dword [ebp - 0x38]
mov ecx, str.schema
call fcn.004212b0
mov ebx, 0x80004005
jmp 0x421965
push ecx
push edi
call fcn.00423c9a
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00423c89
mov esp, ebp
pop ebp
ret 0xc
call fcn.0040df00
push 0x8007000e
call fcn.004210b0
push 0x8007000e
call fcn.004210b0
push 0x8007000e
call fcn.004210b0
call fcn.0042aea7
call fcn.0042aea7
int3