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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x2674
call fcn.004b5610
mov ecx, dword [ebp + 0x1c]
mov eax, 0xfe
push ebx
push esi
push edi
mov ecx, dword [ecx + 8]
cmp ecx, 0xff
cmovae ecx, eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x60], ecx
test al, 0xc
je 0x45c569
mov ebx, 1
jmp 0x45c570
mov ebx, eax
and ebx, 1
add ebx, ebx
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x5c], ebx
test edi, edi
jle 0x45c596
cmp edi, dword [0x4e98ac]
jg 0x45cf5c
mov eax, dword [0x4e98a4]
mov eax, dword [eax + edi*4 - 4]
mov dword [esp + 0x3c], eax
jmp 0x45c5cc
jne 0x45c5a2
mov dword [esp + 0x3c], 0
jmp 0x45c5cc
cmp edi, 0xfffffffc
jne 0x45cf5c
test al, 3
je 0x45cf5c
or ebx, 0x200
mov dword [esp + 0x3c], 0x4d0710
mov dword [esp + 0x5c], ebx
mov dword [ebp + 0x18], 0xfffd
mov dword [esp + 0x6c], 1
mov edx, 0x4000
cmp ecx, 1
jb 0x45c719
mov ebx, dword [ebp + 0x1c]
lea edi, [esp + 0x6c0]
shl ecx, 4
sub ecx, 0x10
mov dword [esp + 0x68], 0x4008
mov dword [esp + 0x50], ecx
nop
mov esi, dword [ebx]
add esi, ecx
test word [esi], dx
je 0x45c6d7
push 0x24
call fcn.0049ee1d
mov ecx, eax
add esp, 4
mov dword [esp + 0x64], ecx
test ecx, ecx
je 0x45c65a
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0x4e8d6c
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
mov word [ecx + 0x1d], 0x402
mov byte [ecx + 0x1f], 1
mov dword [ecx + 0x20], 0x4cdea8
mov byte [ecx + 0x1c], 2
mov dword [ecx], vtable.VarRef.0
jmp 0x45c65c
xor ecx, ecx
mov dword [edi], ecx
add ecx, 8
mov dword [edi + 8], 5
mov dword [edi + 0x14], 0
movzx eax, word [esi]
mov edx, eax
mov dword [esp + 0x64], ecx
cmp ax, word [esp + 0x68]
jne 0x45c69d
mov eax, dword [esi + 8]
push dword [eax]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov ecx, dword [esi + 8]
push 1
push eax
push dword [ecx]
mov ecx, dword [esp + 0x70]
call fcn.00484d60
jmp 0x45c6e5
mov eax, 0x400c
cmp dx, ax
jne 0x45c6b3
mov edx, dword [esi + 8]
push 1
call fcn.0045a760
jmp 0x45c6e2
xor eax, eax
mov word [esp + 0x40], ax
lea eax, [esp + 0x40]
push esi
push eax
call dword [sym.imp.OLEAUT32.dll_VariantChangeType]
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x40]
push 0
call fcn.0045a760
jmp 0x45c6e2
push 1
mov edx, edi
mov ecx, esi
call fcn.0045a280
add esp, 4
mov eax, dword [esp + 0x6c]
mov edx, 0x4000
mov ecx, dword [esp + 0x50]
sub ecx, 0x10
mov dword [esp + 0x50], ecx
mov dword [esp + eax*4 + 0x2a0], edi
inc eax
add edi, 0x20
mov dword [esp + 0x6c], eax
cmp eax, dword [esp + 0x60]
jbe 0x45c600
mov ebx, dword [esp + 0x5c]
mov edi, dword [ebp + 0xc]
mov ecx, dword [0x4e37f8]
lea eax, [esp + 0xa0]
mov esi, dword [ebp + 8]
push dword [esp + 0x60]
mov dword [esp + 0x94], eax
mov dword [esp + 0x7c], 5
mov dword [esp + 0x74], esi
mov dword [esp + 0x8c], 0
mov dword [esp + 0x84], 0x4cdea8
mov dword [esp + 0x88], 0xffffffff
mov dword [esp + 0x98], 0
mov dword [esp + 0xa0], 1
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x6c], eax
or eax, 2
mov dword [ecx + 0x34], eax
lea ecx, [esp + 0x2a8]
mov eax, dword [esi]
push ecx
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x48]
lea ecx, [esp + 0x90]
push ebx
push ecx
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
je 0x45c7ed
nop dword [eax]
cmp eax, 4
jne 0x45c830
and bl, 3
cmp bl, 2
jne 0x45c823
test byte [ebp + 0x18], bl
je 0x45c823
push dword [esp + 0x60]
mov eax, dword [esi]
lea ecx, [esp + 0x2a8]
push ecx
lea ecx, [esp + 0x78]
xor ebx, ebx
push ecx
push dword [esp + 0x48]
lea ecx, [esp + 0x90]
push ebx
push ecx
mov ecx, esi
call dword [eax + 0x1c]
test eax, eax
jne 0x45c7b0
mov eax, dword [0x4e37f8]
mov dword [esp + 0x3c], 0x80004005
mov eax, dword [eax + 0x30]
test eax, eax
je 0x45cdc6
mov ebx, dword [ebp + 0x24]
test ebx, ebx
je 0x45cd7d
mov ecx, dword [eax + 8]
cmp ecx, 5
jne 0x45c8b5
mov eax, dword [eax]
jmp 0x45c8d6
mov dword [esp + 0x3c], 0x80020003
jmp 0x45cdc6
mov esi, dword [ebp + 0x20]
mov dword [esp + 0x3c], 0
test esi, esi
je 0x45cdc6
cmp edi, 0xfffffffc
jne 0x45c89d
cmp dword [esp + 0x88], 5
jne 0x45c89d
mov eax, 0xd
push 0x14
mov word [esi], ax
call fcn.0049b416
mov dword [esp + 0x54], eax
add esp, 4
mov ecx, dword [esp + 0x80]
mov dword [eax], vtable.EnumComCompat.1.0
mov dword [eax + 4], vtable.EnumComCompat.0
mov dword [eax + 8], ecx
mov dword [eax + 0xc], 1
mov byte [eax + 0x10], 0
mov dword [esi + 8], eax
mov dword [esp + 0x88], 1
jmp 0x45cdc6
push 0
mov edx, esi
lea ecx, [esp + 0x84]
call fcn.0045a850
add esp, 4
jmp 0x45cdc6
cmp ecx, 4
jne 0x45c8d4
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x45c8ca
mov ecx, dword [eax + 0xc]
call fcn.004051b0
test byte [eax + 0x15], 0x40
je 0x45c8d4
mov eax, dword [eax]
jmp 0x45c8d6
xor eax, eax
push 0
push 0x4e6ce4
push 0x4e6ccc
push 0
push eax
call fcn.004b5e18
add esp, 0x14
mov dword [esp + 0x5c], eax
test eax, eax
je 0x45cd7d
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0x80020009
lea ecx, [esp + 0x50]
push ecx
movups xmmword [ebx], xmm0
push 0x4d1a14
movups xmmword [ebx + 0x10], xmm0
mov ecx, eax
mov dword [ebx + 0x1c], 0x80020009
call fcn.00478fc0
test eax, eax
je 0x45c94e
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45c984
cmp ecx, 6
je 0x45c937
mov esi, dword [eax]
jmp 0x45c989
mov dword [esp + 0x44], 0
mov esi, 0x4cdea8
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x50]
push eax
push 0x4d8bfc
call fcn.00478fc0
test eax, eax
je 0x45ca85
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45cabb
cmp ecx, 6
je 0x45ca6e
mov esi, dword [eax]
jmp 0x45cac0
mov eax, dword [eax]
lea esi, [eax + 8]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], esi
cmp ecx, 4
ja case.0x45c9a0.3
jmp dword [ecx*4 + 0x45cf6c]
cmp byte [esi + 0x17], 0
jne 0x45c9bb
mov ecx, dword [esi + 0xc]
push 1
call fcn.00406f7b
mov esi, eax
jmp case.0x45c9a0.0
test byte [esi + 0x15], 1
je 0x45c9c8
mov ecx, esi
call fcn.00406e07
cmp byte [esi + 0x17], 3
jne 0x45c9df
cmp byte [esi + 0x15], 0
jl 0x45c9df
mov ecx, esi
call fcn.00484590
and byte [esi + 0x15], 0x7f
mov esi, dword [esi + 8]
jmp case.0x45c9a0.0
test edi, edi
je case.0x45c9a0.3
push 0xa
push edi
push eax
push esi
call fcn.004a382b
add esp, 0x10
mov esi, eax
jmp case.0x45c9a0.0
test edi, edi
je case.0x45c9a0.3
movsd xmm0, qword [esp + 0x40]
sub esp, 8
movsd qword [esp], xmm0
push 0x4db49c
push 0x100
push edi
call fcn.004816a0
add esp, 0x14
mov esi, eax
push 0x4db4a8
push edi
call fcn.004aa334
add esp, 8
cmp eax, esi
jne 0x45ca67
lea ecx, [esi + 3]
cmp ecx, 0x100
jg 0x45ca67
movzx eax, word [edi + esi*2 - 2]
add eax, 0xffffffd0
cmp ax, 9
ja 0x45ca67
xor eax, eax
mov dword [edi + esi*2], 0x30002e
mov word [edi + esi*2 + 4], ax
mov esi, edi
jmp case.0x45c9a0.0
mov dword [esp + 0x44], 0
mov esi, 0x4cdea8
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x50]
push eax
push 0x4d1a3c
call fcn.00478fc0
test eax, eax
je 0x45cbbc
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x45cbf2
cmp ecx, 6
je 0x45cba5
mov esi, dword [eax]
jmp 0x45cbf7
mov eax, dword [eax]
lea esi, [eax + 8]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], esi
cmp ecx, 4
ja case.0x45cad7.3
jmp dword [ecx*4 + 0x45cf80]
cmp byte [esi + 0x17], 0
jne 0x45caf2
mov ecx, dword [esi + 0xc]
push 1
call fcn.00406f7b
mov esi, eax
jmp case.0x45cad7.0
test byte [esi + 0x15], 1
je 0x45caff
mov ecx, esi
call fcn.00406e07
cmp byte [esi + 0x17], 3
jne 0x45cb16
cmp byte [esi + 0x15], 0
jl 0x45cb16
mov ecx, esi
call fcn.00484590
and byte [esi + 0x15], 0x7f
mov esi, dword [esi + 8]
jmp case.0x45cad7.0
test edi, edi
je case.0x45cad7.3
push 0xa
push edi
push eax
push esi
call fcn.004a382b
add esp, 0x10
mov esi, eax
jmp case.0x45cad7.0
test edi, edi
je case.0x45cad7.3
movsd xmm0, qword [esp + 0x40]
sub esp, 8
movsd qword [esp], xmm0
push 0x4db49c
push 0x100
push edi
call fcn.004816a0
add esp, 0x14
mov esi, eax
push 0x4db4a8
push edi
call fcn.004aa334
add esp, 8
cmp eax, esi
jne 0x45cb9e
lea ecx, [esi + 3]
cmp ecx, 0x100
jg 0x45cb9e
movzx eax, word [edi + esi*2 - 2]
add eax, 0xffffffd0
cmp ax, 9
ja 0x45cb9e
xor eax, eax
mov dword [edi + esi*2], 0x30002e
mov word [edi + esi*2 + 4], ax
mov esi, edi
jmp case.0x45cad7.0
mov dword [esp + 0x44], 0
mov esi, 0x4cdea8
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebx + 0xc], eax
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x50]
push eax
push 0x4d1a30
call fcn.00478fc0
test eax, eax
je 0x45cd8b
mov edx, dword [eax + 8]
test edx, edx
je 0x45ccf0
cmp edx, 6
je 0x45ccdc
mov ecx, dword [eax]
jmp 0x45ccf5
mov eax, dword [eax]
lea esi, [eax + 8]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], esi
cmp ecx, 4
ja case.0x45cc0e.3
jmp dword [ecx*4 + 0x45cf94]
cmp byte [esi + 0x17], 0
jne 0x45cc29
mov ecx, dword [esi + 0xc]
push 1
call fcn.00406f7b
mov esi, eax
jmp case.0x45cc0e.0
test byte [esi + 0x15], 1
je 0x45cc36
mov ecx, esi
call fcn.00406e07
cmp byte [esi + 0x17], 3
jne 0x45cc4d
cmp byte [esi + 0x15], 0
jl 0x45cc4d
mov ecx, esi
call fcn.00484590
and byte [esi + 0x15], 0x7f
mov esi, dword [esi + 8]
jmp case.0x45cc0e.0
test edi, edi
je case.0x45cc0e.3
push 0xa
push edi
push eax
push esi
call fcn.004a382b
add esp, 0x10
mov esi, eax
jmp case.0x45cc0e.0
test edi, edi
je case.0x45cc0e.3
movsd xmm0, qword [esp + 0x40]
sub esp, 8
movsd qword [esp], xmm0
push 0x4db49c
push 0x100
push edi
call fcn.004816a0
add esp, 0x14
mov esi, eax
push 0x4db4a8
push edi
call fcn.004aa334
add esp, 8
cmp eax, esi
jne 0x45ccd5
lea ecx, [esi + 3]
cmp ecx, 0x100
jg 0x45ccd5
movzx eax, word [edi + esi*2 - 2]
add eax, 0xffffffd0
cmp ax, 9
ja 0x45ccd5
xor eax, eax
mov dword [edi + esi*2], 0x30002e
mov word [edi + esi*2 + 4], ax
mov esi, edi
jmp case.0x45cc0e.0
mov ecx, 0x4cdea8
call fcn.00481e30
mov ecx, eax
mov dword [ebx + 0x10], ecx
jmp 0x45cd8b
mov eax, dword [eax]
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
cmp edx, 4
ja case.0x45cd05.3
jmp dword [edx*4 + 0x45cfa8]
movsd xmm0, qword [esp + 0x40]
call fcn.004b58b0
mov ecx, eax
mov dword [ebx + 0x10], ecx
jmp 0x45cd8b
cmp byte [ecx + 0x17], 0
jne 0x45cd2e
mov ecx, dword [ecx + 0xc]
call fcn.004051b0
jmp 0x45cd30
mov eax, ecx
mov cl, byte [eax + 0x15]
test cl, 0x10
je 0x45cd3f
mov ecx, dword [eax]
mov dword [ebx + 0x10], ecx
jmp 0x45cd8b
test cl, 0x20
je 0x45cd54
movsd xmm0, qword [eax]
call fcn.004b58b0
mov ecx, eax
mov dword [ebx + 0x10], ecx
jmp 0x45cd8b
push 1
mov ecx, eax
call fcn.00406f7b
mov ecx, eax
call fcn.00481e30
mov ecx, eax
mov dword [ebx + 0x10], ecx
jmp 0x45cd8b
xorps xmm0, xmm0
movlpd qword [esp + 0x50], xmm0
mov ecx, dword [esp + 0x50]
mov dword [ebx + 0x10], ecx
jmp 0x45cd8b
push 0
push 0
mov ecx, 0x4e8f30
call fcn.0040e170
mov esi, dword [0x4e37f8]
mov edi, dword [esi + 0x30]
cmp dword [edi + 8], 5
jne 0x45cda2
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [edi + 0x14]
test eax, eax
je 0x45cdb2
push eax
call fcn.0049ee02
add esp, 4
push 0x20
push dword [esi + 0x30]
call fcn.0049b408
add esp, 8
mov dword [esi + 0x30], 0
mov eax, dword [0x4e37f8]
mov ecx, dword [esp + 0x68]
mov dword [eax + 0x34], ecx
cmp dword [esp + 0x88], 5
jne 0x45cde9
mov eax, dword [esp + 0x80]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [esp + 0x94]
test eax, eax
je 0x45cdfd
push eax
call fcn.0049ee02
add esp, 4
mov eax, dword [esp + 0x60]
cmp eax, 1
jb 0x45cf4f
mov esi, eax
lea edi, [esp + 0x6c0]
shl esi, 4
sub esi, 0x10
mov dword [esp + 0x50], esi
nop dword [eax]
mov eax, dword [ebp + 0x1c]
mov ebx, dword [eax]
mov eax, 0x4000
add ebx, esi
test word [ebx], ax
je 0x45cf1c
mov esi, dword [edi]
add esi, 8
cmp byte [esi + 0x17], 0
jne 0x45ce4a
mov ecx, dword [esi + 0xc]
call fcn.004051b0
mov esi, eax
mov cl, byte [esi + 0x15]
movzx eax, cl
and eax, 0x70
cmp eax, 0x10
je 0x45cee7
cmp eax, 0x20
je 0x45ced3
cmp eax, 0x40
je 0x45cec9
test cl, 2
je 0x45ce78
mov dword [esp + 0x48], 3
jmp 0x45cefc
cmp byte [esi + 0x17], 0
jne 0x45ce8a
mov ecx, dword [esi + 0xc]
push 1
call fcn.00406f7b
jmp 0x45ceb0
test cl, 1
je 0x45ce96
mov ecx, esi
call fcn.00406e07
cmp byte [esi + 0x17], 3
jne 0x45cead
cmp byte [esi + 0x15], 0
jl 0x45cead
mov ecx, esi
call fcn.00484590
and byte [esi + 0x15], 0x7f
mov eax, dword [esi + 8]
mov ecx, esi
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], eax
call fcn.00406f68
mov dword [esp + 0x44], eax
jmp 0x45cefc
mov dword [esp + 0x48], 5
jmp 0x45cef6
movsd xmm0, qword [esi]
mov dword [esp + 0x48], 2
movsd qword [esp + 0x40], xmm0
jmp 0x45cefc
mov ecx, dword [esi + 4]
mov dword [esp + 0x48], 1
mov dword [esp + 0x44], ecx
mov eax, dword [esi]
mov dword [esp + 0x40], eax
movzx edx, word [ebx]
lea ecx, [esp + 0x40]
push 0
push dword [ebx + 8]
mov eax, 0xbfff
and dx, ax
call fcn.0045ab50
mov esi, dword [esp + 0x58]
add esp, 8
cmp dword [edi + 8], 5
jne 0x45cf2a
mov eax, dword [edi]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [edi + 0x14]
test eax, eax
je 0x45cf3a
push eax
call fcn.0049ee02
add esp, 4
sub esi, 0x10
add edi, 0x20
sub dword [esp + 0x60], 1
mov dword [esp + 0x50], esi
jne 0x45ce20
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
pop edi
pop esi
mov eax, 0x80020003
pop ebx
mov esp, ebp
pop ebp
ret 0x24