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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, esp
mov eax, dword [0x59d024]
xor eax, ebp
mov dword [esi + 0x88], eax
xor eax, eax
dec eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov eax, dword [ebp + 0xc]
cmp dword [ebp + 8], eax
je 0x45d303
mov edi, ecx
cmp byte [eax - 1], 0
js 0x45d1d2
add eax, 0xfffffff4
mov ecx, dword [eax + 8]
mov dword [esi + 0x4c], ecx
movq xmm0, qword [eax]
movq qword [esi + 0x44], xmm0
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x30], xmm0
mov ebx, dword [edi + 0xc]
test ebx, ebx
mov dword [esi], edi
je 0x45cd0b
xor eax, eax
inc eax
lock xadd dword [ebx], eax
test eax, eax
jle 0x45d332
mov edi, dword [edi + 0xc]
mov ecx, dword [edi + 4]
call dword [section..00cfg]
lea eax, [esi + 0x30]
push edi
push eax
call ecx
add esp, 8
lock dec dword [ebx]
jne 0x45cd22
push ebx
call fcn.0046eba0
add esp, 4
jmp 0x45cd22
mov ecx, dword [4]
call dword [section..00cfg]
lea eax, [esi + 0x30]
push 0
push eax
call ecx
add esp, 8
lea edx, [ebp + 8]
lea ecx, [ebp + 0x20]
mov dword [esi + 0x2c], 0xffffffff
cmp byte [edx + 0x23], 0
mov eax, ecx
jns 0x45cd39
mov eax, dword [ecx]
lea edi, [ebp + 0x14]
cmp byte [edx + 0x17], 0
mov ecx, edi
jns 0x45cd46
mov ecx, dword [edi]
cmp byte [esi + 0x4f], 0
jns 0x45cd51
mov edx, dword [esi + 0x44]
jmp 0x45cd54
lea edx, [esi + 0x44]
lea ebx, [ebp + 0x2c]
sub esp, 0x20
movdqa xmm0, xmmword [esi + 0x30]
movdqu xmmword [esp + 0x10], xmm0
mov dword [esp + 0xc], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
lea edi, [esi + 0x2c]
mov dword [esp], edi
call fcn.0045c110
cmp dword [edi], 0
je 0x45cdc8
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x10], xmm0
mov ecx, dword [esi]
mov ebx, dword [ecx + 0xc]
test ebx, ebx
je 0x45cdf4
xor eax, eax
inc eax
lock xadd dword [ebx], eax
test eax, eax
jle 0x45d335
mov edi, dword [ecx + 0xc]
mov ecx, dword [edi + 4]
call dword [section..00cfg]
lea eax, [esi + 0x10]
push edi
push eax
call ecx
add esp, 8
lock dec dword [ebx]
jne 0x45ce0b
push ebx
call fcn.0046eba0
add esp, 4
jmp 0x45ce0b
mov eax, ebx
mov ebx, dword [ebx]
lea edi, [esi + 0x60]
mov dword [edi], ebx
mov dword [eax], 0
mov ecx, dword [ebx + 4]
call dword [section..00cfg]
push 5
push ebx
call ecx
add esp, 8
mov ecx, edi
call fcn.004b3f90
jmp 0x45d14c
mov ecx, dword [4]
call dword [section..00cfg]
lea eax, [esi + 0x10]
push 0
push eax
call ecx
add esp, 8
lea edi, [esi + 0x50]
xor ebx, ebx
dec ebx
mov dword [edi], ebx
mov dword [edi + 4], ebx
lea eax, [esi + 0x10]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x45d002
add dword [esi + 0x50], 0xf4240
adc dword [esi + 0x54], 0
pcmpeqd xmm0, xmm0
lea eax, [esi + 0x60]
movdqa xmmword [eax], xmm0
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
lea eax, [ebp + 0x2c]
je 0x45d005
movaps xmm0, xmmword [esi + 0x60]
movaps xmmword [esi + 0x10], xmm0
mov eax, dword [esi + 0x18]
mov dword [esi + 0x68], eax
movsd xmm0, qword [esi + 0x10]
movsd qword [esi + 0x60], xmm0
movq xmm0, qword [esi + 0x30]
movq qword [esi + 0x50], xmm0
mov eax, dword [esi + 0x38]
mov dword [esi + 0x58], eax
xor eax, eax
mov dword [esi + 0x5c], eax
mov dword [esi + 0x6c], eax
lea eax, [esi + 0x80]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [esi + 0x78], ebx
mov dword [esi + 0x7c], ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x45d02f
lea eax, [esi + 0x78]
push eax
lea eax, [esi + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
je 0x45d02f
mov eax, dword [esi + 0x80]
cmp eax, dword [esi + 0x78]
mov edi, dword [esi]
jne 0x45d031
mov eax, dword [esi + 0x7c]
cmp dword [esi + 0x84], eax
jne 0x45d031
lea ebx, [ebp + 8]
mov edi, dword [ebx + 4]
cmp dword [ebx], edi
je 0x45d321
add edi, 0xfffffff4
mov ecx, edi
call fcn.00459600
mov dword [ebx + 4], edi
mov eax, dword [esi + 0x2c]
cmp byte [ebx + 0x23], 0
lea edx, [ebp + 0x20]
mov ecx, edx
jns 0x45cf04
mov ecx, dword [edx]
lea edi, [esi + 0x44]
push eax
push ecx
push edi
call fcn.0045d400
test al, al
lea eax, [ebp + 0x2c]
je 0x45d005
lea eax, [ebp + 8]
cmp byte [eax + 0x23], 0
lea eax, [ebp + 0x20]
mov ecx, eax
jns 0x45cf2a
mov ecx, dword [eax]
mov dword [esi + 8], ecx
mov dword [esi + 0x60], 0xffffffff
mov eax, dword [esi]
mov ecx, dword [eax + 4]
lea eax, [esi + 0x60]
push eax
call fcn.004599c0
mov ebx, dword [esi + 0x60]
test ebx, ebx
je 0x45d1e5
mov dword [esi + 0x50], 0xffffffff
mov ecx, edi
call fcn.00459620
mov dword [esi + 4], eax
cmp byte [esi + 0x4f], 0
jns 0x45cf67
mov edi, dword [esi + 0x44]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x10]
call dword [section..00cfg]
lea eax, [esi + 0x50]
push eax
push dword [esi + 8]
push 2
push dword [esi + 4]
push edi
push ebx
call ecx
test eax, eax
setns al
cmp dword [esi + 0x50], 0
setne bl
and bl, al
mov edi, dword [esi + 0x60]
test edi, edi
je 0x45cfac
mov dword [esi + 0x60], 0
mov eax, dword [edi]
mov ecx, dword [eax + 8]
call dword [section..00cfg]
push edi
call ecx
test bl, bl
je 0x45d1e5
lea ecx, [ebp + 8]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
lea edi, [ebp + 0x2c]
je 0x45d205
call fcn.004be770
mov dword [esi + 8], esp
mov eax, dword [eax]
mov dword [esi + 4], eax
sub esp, 8
mov dword [esi + 0xc], esp
mov edi, dword [esi]
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x5a5e98]
bt ecx, eax
jae 0x45d240
push edi
call fcn.004b5630
add esp, 4
jmp 0x45d24c
lea eax, [ebp + 0x2c]
mov ebx, dword [eax]
lea edi, [esi + 0x60]
mov dword [edi], ebx
mov dword [eax], 0
mov ecx, dword [ebx + 4]
call dword [section..00cfg]
push 5
push ebx
call ecx
add esp, 8
mov ecx, edi
call fcn.004b3f90
jmp 0x45d13c
mov edi, dword [esi]
call fcn.004be770
mov dword [esi], esp
mov eax, dword [eax]
mov dword [esi + 8], eax
sub esp, 0x10
mov eax, esp
mov dword [eax + 0xc], 0
mov dword [esi + 4], eax
mov dword [eax + 8], 0x30d40
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x5a5e98]
bt ecx, eax
jae 0x45d074
push edi
call fcn.004b5630
add esp, 4
jmp 0x45d080
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x5ade98], 1
mov ebx, edi
push 0x40
call fcn.004eca5e
add esp, 4
mov edi, eax
mov ecx, eax
push 0x45d8e0
push 0x45d7c0
call fcn.004b3e80
mov dword [edi + 0x10], fcn.0045cc70
mov dword [edi + 0x14], ebx
lea ebx, [ebp + 8]
mov eax, dword [ebx]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x20], eax
xor eax, eax
mov dword [ebx + 8], eax
mov dword [ebx + 4], eax
mov dword [ebx], eax
lea edx, [ebp + 0x14]
mov ecx, dword [edx + 8]
mov dword [edi + 0x2c], ecx
movsd xmm0, qword [edx]
movsd qword [edi + 0x24], xmm0
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea edx, [ebp + 0x20]
mov ecx, dword [edx + 8]
mov dword [edi + 0x38], ecx
movq xmm0, qword [edx]
movq qword [edi + 0x30], xmm0
mov dword [edx + 8], eax
mov dword [edx + 4], eax
mov dword [edx], eax
mov ecx, dword [ebx + 0x24]
mov dword [edi + 0x3c], ecx
mov dword [ebx + 0x24], eax
mov ebx, dword [esi + 4]
mov dword [ebx + 4], edi
push 0x1cc
push str.....operadesktopwindowsinstallercommonuser_choice_utils_impl.cc
push str.SetRemainingAssociations
lea edi, [esi + 0x60]
push edi
call fcn.004b4450
add esp, 0x10
mov dword [ebx], edi
mov ebx, dword [esi + 8]
mov eax, dword [ebx]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
mov esp, dword [esi]
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x45d14c
push eax
call fcn.004ecacc
add esp, 4
lea ecx, [esi + 0x44]
call fcn.00459600
lea ecx, [ebp + 8]
mov ebx, dword [ecx]
test ebx, ebx
je 0x45d188
mov edi, dword [ecx + 4]
mov eax, ebx
cmp edi, ebx
je 0x45d179
add edi, 0xfffffff4
mov ecx, edi
call fcn.00459600
cmp edi, ebx
jne 0x45d166
lea ecx, [ebp + 8]
mov eax, dword [ecx]
mov dword [ecx + 4], ebx
push eax
call fcn.004eca8e
lea ecx, [ebp + 8]
add esp, 4
cmp byte [ecx + 0x17], 0
jns 0x45d19e
lea eax, [ebp + 0x14]
push dword [eax]
call fcn.004eca8e
lea ecx, [ebp + 8]
add esp, 4
cmp byte [ecx + 0x23], 0
lea edi, [ebp + 0x2c]
jns 0x45d1b4
lea eax, [ebp + 0x20]
push dword [eax]
call fcn.004eca8e
add esp, 4
mov ecx, edi
call fcn.004b3f90
mov ecx, dword [esi + 0x88]
xor ecx, ebp
call fcn.004ed092
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x28
lea ecx, [esi + 0x44]
push dword [eax - 8]
push dword [eax - 0xc]
call fcn.00468b90
jmp 0x45ccc4
lea eax, [ebp + 0x2c]
mov ebx, dword [eax]
lea edi, [esi + 0x60]
mov dword [edi], ebx
mov dword [eax], 0
mov ecx, dword [ebx + 4]
call dword [section..00cfg]
push 1
jmp 0x45d01d
sub esp, 0x10
movdqa xmm0, xmmword [0x586da0]
movdqu xmmword [esp], xmm0
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov eax, edi
mov ebx, dword [edi]
lea ecx, [esi + 0x60]
mov dword [ecx], ebx
xor edi, edi
mov dword [eax], edi
mov ecx, dword [ebx + 4]
call dword [section..00cfg]
push edi
push ebx
call ecx
add esp, 8
lea ecx, [esi + 0x60]
jmp 0x45d025
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x5ade98], 1
mov ebx, edi
push 0x40
call fcn.004eca5e
add esp, 4
mov edi, eax
mov ecx, eax
push 0x45d8e0
push 0x45d7c0
call fcn.004b3e80
mov dword [edi + 0x10], fcn.0045cc70
mov dword [edi + 0x14], ebx
lea ebx, [ebp + 8]
mov eax, dword [ebx]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 4]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 8]
mov dword [edi + 0x20], eax
xor eax, eax
mov dword [ebx + 8], eax
mov dword [ebx + 4], eax
mov dword [ebx], eax
lea edx, [ebp + 0x14]
mov ecx, dword [edx + 8]
mov dword [edi + 0x2c], ecx
movsd xmm0, qword [edx]
movsd qword [edi + 0x24], xmm0
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea edx, [ebp + 0x20]
mov ecx, dword [edx + 8]
mov dword [edi + 0x38], ecx
movq xmm0, qword [edx]
movq qword [edi + 0x30], xmm0
mov dword [edx + 8], eax
mov dword [edx + 4], eax
mov dword [edx], eax
mov ecx, dword [ebx + 0x24]
mov dword [edi + 0x3c], ecx
mov dword [ebx + 0x24], eax
mov ebx, dword [esi + 0xc]
mov dword [ebx + 4], edi
push 0x1e0
push str.....operadesktopwindowsinstallercommonuser_choice_utils_impl.cc
push str.SetRemainingAssociations
lea edi, [esi + 0x60]
push edi
call fcn.004b4450
add esp, 0x10
mov dword [ebx], edi
mov ecx, dword [esi + 4]
call fcn.004be160
mov esp, dword [esi + 8]
jmp 0x45d13c
push str.back___called_on_an_empty_vector
push str._empty__
push 0x22a
push str....._buildtools_third_partylibc_trunkinclude_vector
push str._s:_d:_assertion__s_failed:__s
call fcn.0051d7e0
push str.vector::pop_back_called_on_an_empty_vector
push str._empty__
push 0x623
jmp 0x45d312
int3
int3