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

Disassembly:
push 0xffffffffffffffff
push 0x45ca2d
mov eax, dword fs:[0]
push eax
sub esp, 0x16c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x77a1d4]
xor eax, esp
push eax
lea eax, [esp + 0x180]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x90]
push eax
push ecx
mov dword [esp + 0x190], ebx
call dword [sym.imp.USER32.dll_GetClientRect]
add dword [esp + 0x94], 0x1e
push 1
push esi
lea edx, [esp + 0x98]
push edx
lea ebp, [esi + 0x5c]
push 0x50800001
mov ecx, ebp
call fcn.0042e265
mov eax, dword [esi + 0x7c]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0xf097b1
push ebx
push 0x1001
push eax
call edi
mov ecx, dword [esi + 0x7c]
push ebx
push ebx
push 0x1024
push ecx
call edi
mov edx, dword [esi + 0x7c]
push 0xf097b1
push ebx
push 0x1026
push edx
call edi
mov eax, dword [esi + 0x7c]
push 0x31
push ebx
push 0x1036
push eax
call edi
push 0xffffffffffffffff
push 0x64
push ebx
push 0x460a58
push ebx
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x460a4c
push 1
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x460a38
push 2
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x46235c
push 3
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x460a2c
push 4
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4623d0
push 5
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4623c4
push 6
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4623b8
push 7
mov ecx, ebp
call fcn.0042e3c2
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4623ac
push 8
mov ecx, ebp
call fcn.0042e3c2
lea ecx, [esp + 0x1c]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea edx, [esp + 0x190]
push edx
push 0x77b630
mov ecx, 0x77b588
mov byte [esp + 0x190], 1
call fcn.0040ade0
mov eax, dword [0x77b630]
cmp eax, ebx
jne 0x40d3fa
push 0x80004003
call fcn.0045a7b0
mov ecx, dword [eax]
lea edx, [esp + 0x30]
push edx
mov esi, eax
push eax
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x38], ebx
call eax
cmp eax, ebx
jge 0x40d41d
push 0x460748
push esi
push eax
call fcn.0045a7d0
cmp dword [esp + 0x30], ebx
jne 0x40d42e
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x40dfa1
call fcn.0041b555
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x40d448
push 0x80004005
call fcn.00401010
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x18], edi
mov eax, dword [0x77b630]
mov byte [esp + 0x188], 2
cmp eax, ebx
jne 0x40d473
push 0x80004003
call fcn.0045a7b0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x98]
push eax
mov esi, eax
call edx
cmp eax, ebx
jge 0x40d490
push 0x460748
push esi
push eax
call fcn.0045a7d0
cmp dword [esp + 0x30], ebx
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x2c], ebx
jle 0x40df7d
mov eax, 8
push str.yeid
mov word [esp + 0xe4], ax
call fcn.0045a850
mov dword [esp + 0xe8], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 3
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0xe0]
push edx
lea eax, [esp + 0xf4]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 4
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40e05c
lea edx, [esp + 0xf0]
push edx
call esi
lea eax, [esp + 0xe0]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40dac2
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
jmp 0x40d540
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d540
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 1
mov dword [esp + 0x188], 2
je 0x40d5b1
mov eax, dword [esp + 0x4c]
and dword [esp + 0x14], 0xfffffffe
cmp eax, ebx
je 0x40d5b1
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40d5ad
cmp esi, ebx
je 0x40d5ad
mov eax, dword [esi]
cmp eax, ebx
je 0x40d594
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40d5a4
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x2c]
push ebx
push ebx
push ebx
push ebx
push eax
push edi
push 1
mov ecx, ebp
call fcn.0042e40e
mov ecx, 8
push str.yename
mov word [esp + 0xb4], cx
call fcn.0045a850
mov dword [esp + 0xb8], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 6
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0xb0]
push edx
lea eax, [esp + 0x144]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 7
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40e05c
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x140]
push edx
call esi
lea eax, [esp + 0xb0]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40db09
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d665
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 2
mov dword [esp + 0x188], 2
je 0x40d6d6
mov eax, dword [esp + 0x34]
and dword [esp + 0x14], 0xfffffffd
cmp eax, ebx
je 0x40d6d6
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40d6d2
cmp esi, ebx
je 0x40d6d2
mov eax, dword [esi]
cmp eax, ebx
je 0x40d6b9
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40d6c9
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x34], ebx
mov eax, dword [esp + 0x18]
push eax
push 1
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.yespec
mov word [esp + 0x54], cx
call fcn.0045a850
mov dword [esp + 0x58], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 9
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x124]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0xa
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40e05c
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x120]
push edx
call esi
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40db50
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d776
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 4
mov dword [esp + 0x188], 2
je 0x40d7e7
mov eax, dword [esp + 0x48]
and dword [esp + 0x14], 0xfffffffb
cmp eax, ebx
je 0x40d7e7
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40d7e3
cmp esi, ebx
je 0x40d7e3
mov eax, dword [esi]
cmp eax, ebx
je 0x40d7ca
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40d7da
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x48], ebx
mov eax, dword [esp + 0x18]
push eax
push 2
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.yekind
mov word [esp + 0xd4], cx
call fcn.0045a850
mov dword [esp + 0xd8], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 0xc
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0xd0]
push edx
lea eax, [esp + 0x164]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0xd
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40e05c
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x160]
push edx
call esi
lea eax, [esp + 0xd0]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40db97
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d893
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 8
mov dword [esp + 0x188], 2
je 0x40d904
mov eax, dword [esp + 0x40]
and dword [esp + 0x14], 0xfffffff7
cmp eax, ebx
je 0x40d904
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40d900
cmp esi, ebx
je 0x40d900
mov eax, dword [esi]
cmp eax, ebx
je 0x40d8e7
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40d8f7
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x18]
push eax
push 3
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.yeunit
mov word [esp + 0x74], cx
call fcn.0045a850
mov dword [esp + 0x78], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 0xf
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0x70]
push edx
lea eax, [esp + 0x104]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0x10
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40e05c
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x100]
push edx
call esi
lea eax, [esp + 0x70]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40dbde
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40d9a4
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 0x10
mov dword [esp + 0x188], 2
je 0x40da15
mov eax, dword [esp + 0x38]
and dword [esp + 0x14], 0xffffffef
cmp eax, ebx
je 0x40da15
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40da11
cmp esi, ebx
je 0x40da11
mov eax, dword [esi]
cmp eax, ebx
je 0x40d9f8
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40da08
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x18]
push eax
push 4
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.yeaccount
mov word [esp + 0x84], cx
call fcn.0045a850
mov dword [esp + 0x88], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 0x12
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x114]
push eax
call fcn.00402c50
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0x13
call esi
cmp eax, ebx
jl 0x40e05c
lea edx, [esp + 0x110]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x80]
push eax
mov byte [esp + 0x18c], 2
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp word [esp + 0x1c], 1
jne 0x40dc25
fldz
jmp 0x40dc29
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x50]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 1
mov byte [esp + 0x188], 5
cmp esi, ebx
je 0x40daf8
cmp dword [esi + 4], ebx
jne 0x40daf3
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40dafa
xor edx, edx
cmp edx, ebx
jne 0x40d536
xor eax, eax
jmp 0x40d549
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x38]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 2
mov byte [esp + 0x188], 8
cmp esi, ebx
je 0x40db3f
cmp dword [esi + 4], ebx
jne 0x40db3a
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40db41
xor edx, edx
cmp edx, ebx
jne 0x40d660
xor eax, eax
jmp 0x40d66e
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x4c]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 4
mov byte [esp + 0x188], 0xb
cmp esi, ebx
je 0x40db86
cmp dword [esi + 4], ebx
jne 0x40db81
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40db88
xor edx, edx
cmp edx, ebx
jne 0x40d771
xor eax, eax
jmp 0x40d77f
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 8
mov byte [esp + 0x188], 0xe
cmp esi, ebx
je 0x40dbcd
cmp dword [esi + 4], ebx
jne 0x40dbc8
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40dbcf
xor edx, edx
cmp edx, ebx
jne 0x40d88e
xor eax, eax
jmp 0x40d89c
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 0x10
mov byte [esp + 0x188], 0x11
cmp esi, ebx
je 0x40dc14
cmp dword [esi + 4], ebx
jne 0x40dc0f
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40dc16
xor edx, edx
cmp edx, ebx
jne 0x40d99f
xor eax, eax
jmp 0x40d9ad
fld qword [esp + 0x24]
sub esp, 8
fstp qword [esp]
lea ecx, [esp + 0x20]
push str._.2f
push ecx
call fcn.004031c0
mov edx, dword [esp + 0x28]
add esp, 0x10
push edx
push 5
push edi
mov ecx, ebp
call fcn.0042e2c9
mov eax, 8
push str.yevalue
mov word [esp + 0xa4], ax
call fcn.0045a850
mov dword [esp + 0xa8], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 0x14
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0xa0]
push edx
lea eax, [esp + 0x134]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0x15
call esi
cmp eax, ebx
jl 0x40e05c
lea edx, [esp + 0x130]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0xa0]
push eax
mov byte [esp + 0x18c], 2
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp word [esp + 0x1c], 1
jne 0x40dce1
fldz
jmp 0x40dce5
fld qword [esp + 0x24]
sub esp, 8
fstp qword [esp]
lea ecx, [esp + 0x20]
push str._.2f
push ecx
call fcn.004031c0
mov edx, dword [esp + 0x28]
add esp, 0x10
push edx
push 6
push edi
mov ecx, ebp
call fcn.0042e2c9
mov eax, 8
push str.yebase
mov word [esp + 0xc4], ax
call fcn.0045a850
mov dword [esp + 0xc8], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 0x16
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0xc0]
push edx
lea eax, [esp + 0x154]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0x17
call esi
cmp eax, ebx
jl 0x40e05c
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x150]
push edx
call esi
lea eax, [esp + 0xc0]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40dfce
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40dda5
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 0x20
mov dword [esp + 0x188], 2
je 0x40de16
mov eax, dword [esp + 0x3c]
and dword [esp + 0x14], 0xffffffdf
cmp eax, ebx
je 0x40de16
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40de12
cmp esi, ebx
je 0x40de12
mov eax, dword [esi]
cmp eax, ebx
je 0x40ddf9
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40de09
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x18]
push eax
push 7
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.yememo
mov word [esp + 0x64], cx
call fcn.0045a850
mov dword [esp + 0x68], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x188], 0x19
cmp ecx, ebx
je 0x40d3f0
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x174]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0x190], 0x1a
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40e05c
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x170]
push edx
call esi
lea eax, [esp + 0x60]
push eax
mov byte [esp + 0x18c], 2
call esi
cmp word [esp + 0x1c], 1
jne 0x40e015
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40deb6
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 0x40
mov dword [esp + 0x188], 2
je 0x40df27
mov eax, dword [esp + 0x44]
and dword [esp + 0x14], 0xffffffbf
cmp eax, ebx
je 0x40df27
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40df23
cmp esi, ebx
je 0x40df23
mov eax, dword [esi]
cmp eax, ebx
je 0x40df0a
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40df1a
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x44], ebx
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
push edi
push 8
push eax
mov ecx, ebp
call fcn.0042e2c9
mov eax, dword [0x77b630]
cmp eax, ebx
je 0x40d3f0
mov ecx, dword [eax]
mov edx, dword [ecx + 0x90]
push eax
mov esi, eax
call edx
cmp eax, ebx
jge 0x40df64
push 0x460748
push esi
push eax
call fcn.0045a7d0
mov eax, dword [esp + 0x2c]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc eax
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x2c], eax
jl 0x40d4a4
lea eax, [edi - 0x10]
mov byte [esp + 0x188], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40dfa1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x1c]
push ecx
call esi
lea edx, [esp + 0x190]
push edx
call esi
mov ecx, dword [esp + 0x180]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x178
ret 0x10
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x40]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 0x20
mov byte [esp + 0x188], 0x18
cmp esi, ebx
je 0x40e004
cmp dword [esi + 4], ebx
jne 0x40dfff
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40e006
xor edx, edx
cmp edx, ebx
jne 0x40dda0
xor eax, eax
jmp 0x40ddae
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x48]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 0x40
mov byte [esp + 0x188], 0x1b
cmp esi, ebx
je 0x40e04b
cmp dword [esi + 4], ebx
jne 0x40e046
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40e04d
xor edx, edx
cmp edx, ebx
jne 0x40deb1
xor eax, eax
jmp 0x40debf
push eax
call fcn.0045a7b0
int3