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

Disassembly:
push 0xffffffffffffffff
push 0x447b2e
mov eax, dword fs:[0]
push eax
sub esp, 0x94
push ebx
push ebp
push esi
push edi
mov eax, dword [0x457118]
xor eax, esp
push eax
lea eax, [esp + 0xa8]
mov dword fs:[0], eax
mov eax, dword [esp + 0xbc]
mov esi, dword [esp + 0xc0]
xor ebp, ebp
mov dword [eax], ebp
call fcn.00401bd0
mov esi, dword [esp + 0xc4]
call fcn.00401bd0
mov dword [esp + 0x14], ebp
lea edi, [esp + 0x14]
mov dword [esp + 0xb0], ebp
call fcn.00415890
cmp eax, ebp
mov eax, dword [esp + 0x14]
jl 0x414f94
cmp eax, ebp
je 0x414f94
mov ecx, dword [esp + 0xb8]
mov esi, dword [ecx]
push esi
mov word [esp + 0x98], 8
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp eax, ebp
mov dword [esp + 0x9c], eax
jne 0x41451b
cmp esi, ebp
je 0x41451b
push 0x8007000e
call fcn.00442b60
mov byte [esp + 0xb0], 1
cmp dword [esp + 0x14], ebp
jne 0x414533
push 0x80004003
call fcn.00442b60
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x94]
call fcn.0040d190
lea edx, [esp + 0x94]
push edx
movsx esi, ax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp esi, 0xffffffff
je 0x41456d
mov dword [esp + 0xb0], 0xffffffff
mov eax, dword [esp + 0x14]
jmp 0x414f9f
xor ebx, ebx
mov dword [esp + 0x6c], ebx
push ecx
mov byte [esp + 0xb4], 2
mov eax, esp
mov dword [esp + 0x58], esp
push eax
mov edi, str._SearchPlugin_DvmFlag
call fcn.0040cbc0
mov byte [esp + 0xb4], 3
cmp dword [esp + 0x18], ebp
jne 0x4145a5
push 0x80004003
call fcn.00442b60
mov edi, dword [esp + 0x18]
lea ecx, [esp + 0x40]
push ecx
mov byte [esp + 0xb8], 2
call fcn.0040cf70
mov eax, dword [eax]
cmp eax, ebp
je 0x4145cf
mov edx, dword [eax]
mov ebx, eax
push eax
mov eax, dword [edx + 4]
mov dword [esp + 0x70], ebx
call eax
mov eax, dword [esp + 0x3c]
cmp eax, ebp
je 0x4145df
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [0x458a2c]
mov edx, dword [eax + 0xc]
mov ecx, 0x458a2c
call edx
lea ebp, [eax + 0x10]
mov dword [esp + 0x44], ebp
test ebx, ebx
mov byte [esp + 0xb0], 4
je 0x414633
lea eax, [esp + 0x28]
mov edi, ebx
call fcn.0040ce90
lea esi, [esp + 0x28]
mov byte [esp + 0xb0], 5
call fcn.0040cd90
mov edx, dword [eax]
lea edi, [esp + 0x44]
call fcn.004018b0
mov edi, esi
call fcn.0040cce0
mov ebp, dword [esp + 0x44]
push 0x44ee90
push ebp
call fcn.0042ec21
mov ecx, dword [esp + 0xc4]
neg eax
sbb eax, eax
add eax, 1
xor esi, esi
mov dword [ecx], eax
mov dword [esp + 0x44], esi
add esp, 4
mov byte [esp + 0xb4], 6
mov edx, esp
mov dword [esp + 0x58], esp
push edx
mov edi, str.SearchPlugin
call fcn.0040cbc0
mov byte [esp + 0xb4], 7
cmp dword [esp + 0x18], esi
jne 0x414688
push 0x80004003
call fcn.00442b60
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x28]
push eax
mov byte [esp + 0xb8], 6
call fcn.0040cf70
mov eax, dword [eax]
test eax, eax
je 0x4146b2
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
mov esi, eax
push eax
mov dword [esp + 0x40], esi
call edx
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4146c2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test esi, esi
jne 0x414714
lea eax, [ebp - 0x10]
mov byte [esp + 0xb0], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4146ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test ebx, ebx
mov byte [esp + 0xb0], 0
je 0x4146fe
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
push ebx
call edx
mov dword [esp + 0xb0], 0xffffffff
mov eax, dword [esp + 0x14]
test eax, eax
jmp 0x414fa1
xor ebp, ebp
mov dword [esp + 0x34], ebp
lea edi, [esp + 0x24]
mov byte [esp + 0xb0], 8
call fcn.0040ce50
lea edi, [esp + 0x34]
call fcn.00415830
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x414744
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esp + 0x34], ebp
jne 0x41478b
mov byte [esp + 0xb0], 4
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
lea eax, [esp + 0x44]
call fcn.00415080
cmp ebx, ebp
mov byte [esp + 0xb0], 0
je 0x414777
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov dword [esp + 0xb0], 0xffffffff
mov eax, dword [esp + 0x14]
jmp 0x414f9f
mov dword [esp + 0x28], ebp
lea esi, [esp + 0x48]
call fcn.00401700
mov dword [esp + 0x20], ebp
mov byte [esp + 0xb0], 0xb
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x34]
lea edi, [esp + 0x74]
call fcn.0040d090
mov byte [esp + 0xb0], 0xc
mov eax, dword [eax]
cmp ebp, eax
je 0x4147e3
test eax, eax
mov esi, ebp
mov ebp, eax
mov dword [esp + 0x20], ebp
je 0x4147d7
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
test esi, esi
je 0x4147e3
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
test ebp, ebp
mov byte [esp + 0xb0], 0xb
mov eax, dword [esp + 0x74]
setne bl
test eax, eax
je 0x414800
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
test bl, bl
je 0x414f02
test ebp, ebp
jne 0x414816
push 0x80004003
call fcn.00442b60
lea eax, [esp + 0x84]
mov edi, ebp
call fcn.0040d040
mov ebx, eax
lea edi, [esp + 0x28]
call fcn.0040cd30
lea edi, [esp + 0x84]
call fcn.0040cce0
lea esi, [esp + 0x28]
call fcn.0040cd90
mov edx, dword [eax]
test edx, edx
jne 0x41484e
xor eax, eax
jmp 0x414862
mov eax, edx
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x414853
sub eax, esi
sar eax, 1
mov ebx, eax
push edx
lea eax, [esp + 0x4c]
call fcn.00401ae0
mov eax, dword [esp + 0x48]
mov ecx, str.ShortName
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41489d
test dx, dx
je 0x414899
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41489d
add eax, 4
add ecx, 4
test dx, dx
jne 0x414877
xor eax, eax
jmp 0x4148a2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4148f2
test ebp, ebp
jne 0x4148b4
push 0x80004003
call fcn.00442b60
lea eax, [esp + 0x68]
mov edi, ebp
call fcn.0040ce90
lea esi, [esp + 0x68]
mov byte [esp + 0xb0], 0xd
call fcn.0040cd90
mov edx, dword [eax]
mov edi, dword [esp + 0xc0]
call fcn.004018b0
mov edi, esi
mov byte [esp + 0xb0], 0xb
call fcn.0040cce0
jmp 0x4147a8
lea ecx, [esp + 0x48]
push ecx
mov ecx, 0x44ea44
call fcn.00407330
test eax, eax
jne 0x4147a4
mov edx, dword [esp + 0xc4]
mov eax, dword [edx]
cmp dword [eax - 0xc], 0
jne 0x4147a4
xor ebx, ebx
mov dword [esp + 0x18], ebx
cmp ebp, ebx
mov byte [esp + 0xb0], 0xe
jne 0x414938
push 0x80004003
call fcn.00442b60
mov edi, dword [ebp]
lea esi, [esp + 0x18]
add edi, 0x44
call fcn.00415870
mov ecx, dword [edi]
push eax
push ebp
call ecx
cmp eax, ebx
mov eax, dword [esp + 0x18]
jl 0x414ee5
cmp eax, ebx
je 0x414ee5
mov dword [esp + 0x60], ebx
push ecx
mov bl, 0xf
mov byte [esp + 0xb4], bl
mov edx, esp
mov dword [esp + 0x28], esp
push edx
mov edi, str.type
call fcn.0040cbc0
mov byte [esp + 0xb4], 0x10
cmp dword [esp + 0x1c], 0
jne 0x414999
push 0x80004003
call fcn.00442b60
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x8c]
push eax
mov byte [esp + 0xb8], bl
call fcn.0040d0d0
lea edi, [esp + 0x60]
call fcn.00415830
mov eax, dword [esp + 0x88]
test eax, eax
je 0x4149cd
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebp, dword [esp + 0x60]
test ebp, ebp
je 0x414b7d
lea eax, [esp + 0x2c]
mov edi, ebp
call fcn.0040ce90
lea esi, [esp + 0x2c]
mov byte [esp + 0xb0], 0x11
call fcn.0040cd90
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [eax]
call fcn.00401720
lea edx, [esp + 0x30]
push edx
mov ecx, str.text_html
mov byte [esp + 0xb4], 0x12
call fcn.00407330
test eax, eax
jne 0x414a90
mov dword [esp + 0x64], eax
push ecx
mov bl, 0x13
mov byte [esp + 0xb4], bl
mov ecx, esp
mov dword [esp + 0x28], esp
push ecx
mov edi, str.template
call fcn.0040cbc0
mov byte [esp + 0xb4], 0x14
cmp dword [esp + 0x1c], 0
jne 0x414a54
push 0x80004003
call fcn.00442b60
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x84]
push edx
mov byte [esp + 0xb8], bl
call fcn.0040d0d0
lea edi, [esp + 0x64]
call fcn.00415830
mov eax, dword [esp + 0x80]
test eax, eax
je 0x414a88
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [esp + 0x64]
test ebx, ebx
jne 0x414ad4
lea eax, [esp + 0x30]
call fcn.00415080
lea edi, [esp + 0x2c]
call fcn.0040cce0
mov byte [esp + 0xb0], 0xe
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
push ebp
call ecx
mov byte [esp + 0xb0], 0xb
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4147a4
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x4147a4
lea eax, [esp + 0x58]
mov edi, ebx
call fcn.0040ce90
lea esi, [esp + 0x58]
mov byte [esp + 0xb0], 0x15
call fcn.0040cd90
mov edx, dword [eax]
mov edi, dword [esp + 0xc4]
call fcn.004018b0
mov dword [esp + 0x5c], 0
mov byte [esp + 0xb0], 0x16
mov esi, dword [esp + 0x20]
lea edi, [esp + 0x8c]
call fcn.0040ce50
lea edi, [esp + 0x5c]
call fcn.00415830
mov eax, dword [esp + 0x8c]
test eax, eax
je 0x414b3a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp dword [esp + 0x5c], 0
jne 0x414b9e
lea edi, [esp + 0x58]
call fcn.0040cce0
mov byte [esp + 0xb0], 0x12
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
lea eax, [esp + 0x30]
call fcn.00415080
lea edi, [esp + 0x2c]
call fcn.0040cce0
mov byte [esp + 0xb0], 0xe
mov edx, dword [ebp]
mov eax, dword [edx + 8]
push ebp
call eax
mov byte [esp + 0xb0], 0xb
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4147a4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4147a4
mov dword [esp + 0x24], 1
mov dword [esp + 0x38], 0
mov byte [esp + 0xb0], 0x17
jmp 0x414bc0
mov esi, dword [esp + 0x5c]
lea edi, [esp + 0x78]
call fcn.0040d090
lea edi, [esp + 0x38]
call fcn.00415830
xor ebp, ebp
cmp dword [eax], ebp
mov byte [esp + 0xb0], 0x17
mov eax, dword [esp + 0x78]
setne bl
cmp eax, ebp
je 0x414bf5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
test bl, bl
je 0x414e67
mov dword [esp + 0x1c], ebp
mov byte [esp + 0xb0], 0x19
mov eax, dword [esp + 0x38]
cmp eax, ebp
jne 0x414c1f
push 0x80004003
call fcn.00442b60
mov eax, dword [esp + 0x38]
mov edi, dword [eax]
lea esi, [esp + 0x1c]
mov ebx, eax
add edi, 0x44
call fcn.00415870
push eax
mov eax, dword [edi]
push ebx
call eax
cmp eax, ebp
mov eax, dword [esp + 0x1c]
jl 0x414e4a
cmp eax, ebp
je 0x414e4a
mov dword [esp + 0x70], ebp
push ecx
mov bl, 0x1a
mov byte [esp + 0xb4], bl
mov ecx, esp
mov dword [esp + 0x50], esp
push ecx
mov edi, str.name
call fcn.0040cbc0
mov byte [esp + 0xb4], 0x1b
cmp dword [esp + 0x20], ebp
jne 0x414c80
push 0x80004003
call fcn.00442b60
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x80]
push edx
mov byte [esp + 0xb8], bl
call fcn.0040d0d0
lea edi, [esp + 0x70]
call fcn.00415830
mov eax, dword [esp + 0x7c]
cmp eax, ebp
je 0x414cb1
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [esp + 0x70]
cmp ebx, ebp
jne 0x414cca
mov byte [esp + 0xb0], 0x17
mov eax, dword [esp + 0x1c]
jmp 0x414e52
lea eax, [esp + 0x40]
mov edi, ebx
call fcn.0040ce90
mov dword [esp + 0x4c], ebp
push ecx
mov byte [esp + 0xb4], 0x1d
mov eax, esp
mov dword [esp + 0x94], esp
push eax
mov edi, str.value
call fcn.0040cbc0
mov byte [esp + 0xb4], 0x1e
cmp dword [esp + 0x20], ebp
jne 0x414d0e
push 0x80004003
call fcn.00442b60
mov edi, dword [esp + 0x20]
lea ecx, [esp + 0x58]
push ecx
mov byte [esp + 0xb8], 0x1d
call fcn.0040d0d0
lea edi, [esp + 0x4c]
call fcn.00415830
mov eax, dword [esp + 0x54]
cmp eax, ebp
je 0x414d3d
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov ebp, dword [esp + 0x4c]
test ebp, ebp
jne 0x414d63
lea edi, [esp + 0x40]
call fcn.0040cce0
mov byte [esp + 0xb0], 0x19
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
push ebx
call edx
jmp 0x414e29
lea eax, [esp + 0x50]
mov edi, ebp
call fcn.0040ce90
mov edi, dword [esp + 0xc4]
mov byte [esp + 0xb0], 0x1f
cmp dword [esp + 0x24], 0
je 0x414dc2
mov edx, 0x44eeec
call fcn.004150a0
lea esi, [esp + 0x40]
call fcn.0040cd90
mov edx, dword [eax]
call fcn.004150a0
mov edx, 0x44eef0
call fcn.004150a0
lea esi, [esp + 0x50]
call fcn.0040cd90
mov edx, dword [eax]
call fcn.004150a0
mov dword [esp + 0x24], 0
jmp 0x414df6
mov edx, 0x44eef4
call fcn.004150a0
lea esi, [esp + 0x40]
call fcn.0040cd90
mov edx, dword [eax]
call fcn.004150a0
mov edx, 0x44eef0
call fcn.004150a0
lea esi, [esp + 0x50]
call fcn.0040cd90
mov edx, dword [eax]
call fcn.004150a0
lea edi, [esp + 0x50]
call fcn.0040cce0
mov byte [esp + 0xb0], 0x1c
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
push ebp
call ecx
lea edi, [esp + 0x40]
call fcn.0040cce0
mov byte [esp + 0xb0], 0x19
mov edx, dword [ebx]
mov eax, dword [edx + 8]
push ebx
call eax
mov byte [esp + 0xb0], 0x17
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x414bc0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x414bc0
mov byte [esp + 0xb0], 0x17
cmp eax, ebp
je 0x414bc0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x414bc0
mov byte [esp + 0xb0], 0x16
mov eax, dword [esp + 0x38]
cmp eax, ebp
je 0x414e7f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xb0], 0x15
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
lea edi, [esp + 0x58]
call fcn.0040cce0
mov byte [esp + 0xb0], 0x12
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
lea eax, [esp + 0x30]
call fcn.00415080
lea edi, [esp + 0x2c]
call fcn.0040cce0
mov byte [esp + 0xb0], 0xe
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xb0], 0xb
mov eax, dword [esp + 0x18]
cmp eax, ebp
jmp 0x414b8b
cmp eax, ebx
mov byte [esp + 0xb0], 0xb
je 0x4147a4
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4147a8
test ebp, ebp
mov byte [esp + 0xb0], 0xa
je 0x414f17
mov eax, dword [ebp]
mov ecx, dword [eax + 8]
push ebp
call ecx
lea eax, [esp + 0x48]
call fcn.00415080
lea edi, [esp + 0x28]
call fcn.0040cce0
mov byte [esp + 0xb0], 6
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0xb0], 4
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x44]
call fcn.00415080
mov byte [esp + 0xb0], 0
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x414f72
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0xb0], 0xffffffff
mov eax, dword [esp + 0x14]
test eax, eax
je 0x414f8d
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, 1
jmp 0x414fad
mov dword [esp + 0xb0], 0xffffffff
cmp eax, ebp
je 0x414fab
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
xor eax, eax
mov ecx, dword [esp + 0xa8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret 0x10