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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4caaa3
mov eax, dword fs:[0]
push eax
sub esp, 0x130
mov eax, dword [0x509590]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
push esi
push edi
mov eax, dword [0x509590]
xor eax, esp
push eax
lea eax, [esp + 0x140]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, edx
xor ebx, ebx
push eax
lea edi, [esp + 0x120]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], ebx
call fcn.00452e14
pop ecx
mov dword [esp + 0x148], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x148], 1
cmp dword [esi + 0x18], 8
lea eax, [esi + 4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], eax
jb 0x453958
mov eax, dword [eax]
cmp dword [esp + 0x134], 8
mov ecx, dword [esp + 0x120]
jae 0x453970
lea ecx, [esp + 0x120]
lea edx, [esp + 0x18]
push edx
push ebx
push eax
push ecx
call sub.msi.dll_MsiGetPropertyW
mov edi, eax
cmp edi, 0xea
je 0x453a7b
cmp edi, ebx
je 0x453a7b
lea eax, [esp + 0x94]
push eax
call fcn.00405267
push 0x4e02bc
push ecx
push esi
push ecx
push 0x4e9cdc
push ecx
lea eax, [esp + 0x134]
push eax
push ecx
lea eax, [esp + 0xbc]
push str.MsiGetProductInfo__
push eax
mov byte [esp + 0x170], 2
call fcn.00405d69
add esp, 0xc
push eax
call fcn.00405eb8
add esp, 0xc
push eax
call fcn.00405d69
add esp, 0xc
push eax
call fcn.00405eb8
add esp, 0xc
push eax
call fcn.00405d69
pop ecx
pop ecx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x98]
call fcn.004052f9
mov byte [esp + 0x148], 3
cmp dword [eax + 0x18], 8
jb 0x453a1b
mov eax, dword [eax + 4]
jmp 0x453a1e
add eax, 4
push eax
lea eax, [esp + 0x60]
push eax
mov eax, edi
call fcn.00425a0e
push eax
lea eax, [esp + 0x84]
push eax
mov byte [esp + 0x158], 4
call fcn.004167e3
add esp, 0x10
mov byte [esp + 0x148], 5
cmp dword [eax + 0x18], 0x10
jb 0x453a57
mov eax, dword [eax + 4]
jmp 0x453a5a
add eax, 4
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
call fcn.0048ec72
push 0x4f7698
lea eax, [esp + 0x34]
push eax
call fcn.0048febc
mov eax, dword [esp + 0x18]
cmp eax, ebx
jbe 0x453c1c
inc eax
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00417cc9
cmp dword [esp + 0x24], ebx
jne 0x453a9f
mov dword [esp + 0x18], ebx
jmp 0x453aad
mov eax, dword [esp + 0x28]
sub eax, dword [esp + 0x24]
sar eax, 1
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x24]
lea edi, [esp + 0x20]
lea esi, [esp + 0x30]
call fcn.00418b5e
call fcn.00417dd0
mov edi, dword [esp + 0x3c]
cmp dword [edi + 0x18], 8
jb 0x453ad5
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
jmp 0x453ad9
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x134], 8
mov ecx, dword [esp + 0x120]
jae 0x453af1
lea ecx, [esp + 0x120]
lea esi, [esp + 0x18]
push esi
push eax
push edx
push ecx
call sub.msi.dll_MsiGetPropertyW
mov esi, eax
test esi, esi
je 0x453bec
lea eax, [esp + 0x94]
push eax
call fcn.00405267
push 0x4e02bc
push ecx
push edi
push ecx
push 0x4e9cdc
push ecx
lea eax, [esp + 0x134]
push eax
push ecx
lea eax, [esp + 0xbc]
push str.MsiGetProductInfo__
push eax
mov byte [esp + 0x170], 6
call fcn.00405d69
add esp, 0xc
push eax
call fcn.00405eb8
add esp, 0xc
push eax
call fcn.00405d69
add esp, 0xc
push eax
call fcn.00405eb8
add esp, 0xc
push eax
call fcn.00405d69
pop ecx
pop ecx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x98]
call fcn.004052f9
mov byte [esp + 0x148], 7
cmp dword [eax + 0x18], 8
jb 0x453b90
mov eax, dword [eax + 4]
jmp 0x453b93
add eax, 4
push eax
lea eax, [esp + 0x60]
push eax
mov eax, esi
call fcn.00425a0e
push eax
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0x158], 8
call fcn.004167e3
add esp, 0x10
mov byte [esp + 0x148], 9
cmp dword [eax + 0x18], 0x10
jb 0x453bc9
mov eax, dword [eax + 4]
jmp 0x453bcc
add eax, 4
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
call fcn.0048ec72
push 0x4f7698
lea eax, [esp + 0x34]
jmp 0x453a75
mov ebx, dword [esp + 0x24]
lea edi, [esp + 0x20]
lea esi, [esp + 0x30]
call fcn.00418b5e
call fcn.00417dd0
mov edx, dword [esp + 0x1c]
mov ecx, eax
mov eax, dword [esp + 0x18]
call fcn.00405b63
mov esi, edi
call fcn.00417da6
push 0
jmp 0x453c34
mov eax, dword [esp + 0x1c]
push 0x4df40c
call fcn.004078c5
lea esi, [esp + 0x20]
call fcn.00417da6
push ebx
push 1
lea esi, [esp + 0x124]
call fcn.004075b1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x140]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.0048e32a
mov esp, ebp
pop ebp
ret 4