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

Disassembly:
push 0xffffffffffffffff
push 0x45c841
mov eax, dword fs:[0]
push eax
sub esp, 0xe4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x77a1d4]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov esi, ecx
xor ebx, ebx
mov dword [esp + 0x14], ebx
push 8
lea edi, [esi + 0x58]
push 0x4622e4
mov ecx, edi
mov dword [esp + 0x108], ebx
call fcn.00401720
mov edi, dword [edi]
push edi
lea ecx, [esi + 0xb0]
call fcn.0041bb02
mov ecx, dword [esi + 0x20]
lea eax, [esp + 0x48]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetClientRect]
add dword [esp + 0x4c], 0x1e
push 1
push esi
lea edx, [esp + 0x50]
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
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea edx, [esp + 0x108]
push edx
push 0x77b630
mov ecx, 0x77b588
mov byte [esp + 0x108], 1
call fcn.0040ade0
mov eax, dword [0x77b630]
cmp eax, ebx
jne 0x40ca34
push 0x80004003
call fcn.0045a7b0
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
mov esi, eax
push eax
mov eax, dword [ecx + 0x68]
mov dword [esp + 0x28], ebx
call eax
cmp eax, ebx
jge 0x40ca57
push 0x460748
push esi
push eax
call fcn.0045a7d0
cmp dword [esp + 0x20], ebx
jne 0x40ca68
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x40d0c1
call fcn.0041b555
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x40ca82
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 + 0x100], 2
cmp eax, ebx
jne 0x40caad
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 0x40caca
push 0x460748
push esi
push eax
call fcn.0045a7d0
cmp dword [esp + 0x20], ebx
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x1c], ebx
jle 0x40d09d
mov edi, edi
mov eax, 8
push str.wzid
mov word [esp + 0x9c], ax
call fcn.0045a850
mov dword [esp + 0xa0], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x100], 3
cmp ecx, ebx
je 0x40ca2a
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0xac]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x108], 4
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40d251
lea edx, [esp + 0xa8]
push edx
call esi
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x104], 2
call esi
cmp word [esp + 0x24], 1
jne 0x40d0ee
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40cb77
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 1
mov dword [esp + 0x100], 2
je 0x40cbe8
mov eax, dword [esp + 0x34]
and dword [esp + 0x14], 0xfffffffe
cmp eax, ebx
je 0x40cbe8
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40cbe4
cmp esi, ebx
je 0x40cbe4
mov eax, dword [esi]
cmp eax, ebx
je 0x40cbcb
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40cbdb
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]
mov edi, dword [esp + 0x1c]
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.wzname
mov word [esp + 0x8c], cx
call fcn.0045a850
mov dword [esp + 0x90], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x100], 6
cmp ecx, ebx
je 0x40ca2a
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0xdc]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x108], 7
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40d251
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0xd8]
push edx
call esi
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x104], 2
call esi
cmp word [esp + 0x24], 1
jne 0x40d135
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40cca0
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 2
mov dword [esp + 0x100], 2
je 0x40cd11
mov eax, dword [esp + 0x44]
and dword [esp + 0x14], 0xfffffffd
cmp eax, ebx
je 0x40cd11
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40cd0d
cmp esi, ebx
je 0x40cd0d
mov eax, dword [esi]
cmp eax, ebx
je 0x40ccf4
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40cd04
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x18]
push eax
push 1
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.wzspec
mov word [esp + 0x6c], cx
call fcn.0045a850
mov dword [esp + 0x70], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x100], 9
cmp ecx, ebx
je 0x40ca2a
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0xbc]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x108], 0xa
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40d251
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0xb8]
push edx
call esi
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x104], 2
call esi
cmp word [esp + 0x24], 1
jne 0x40d17c
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40cdb1
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 4
mov dword [esp + 0x100], 2
je 0x40ce22
mov eax, dword [esp + 0x40]
and dword [esp + 0x14], 0xfffffffb
cmp eax, ebx
je 0x40ce22
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40ce1e
cmp esi, ebx
je 0x40ce1e
mov eax, dword [esi]
cmp eax, ebx
je 0x40ce05
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40ce15
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 2
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.wzkind
mov word [esp + 0x7c], cx
call fcn.0045a850
mov dword [esp + 0x80], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x100], 0xc
cmp ecx, ebx
je 0x40ca2a
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0xcc]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x108], 0xd
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40d251
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0xc8]
push edx
call esi
lea eax, [esp + 0x78]
push eax
mov byte [esp + 0x104], 2
call esi
cmp word [esp + 0x24], 1
jne 0x40d1c3
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40cec5
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 8
mov dword [esp + 0x100], 2
je 0x40cf36
mov eax, dword [esp + 0x38]
and dword [esp + 0x14], 0xfffffff7
cmp eax, ebx
je 0x40cf36
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40cf32
cmp esi, ebx
je 0x40cf32
mov eax, dword [esi]
cmp eax, ebx
je 0x40cf19
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40cf29
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 3
push edi
mov ecx, ebp
call fcn.0042e2c9
mov ecx, 8
push str.wzunit
mov word [esp + 0x5c], cx
call fcn.0045a850
mov dword [esp + 0x60], eax
mov ecx, dword [0x77b630]
mov byte [esp + 0x100], 0xf
cmp ecx, ebx
je 0x40ca2a
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0xec]
push eax
call fcn.00402c50
push eax
lea ecx, [esp + 0x28]
push ecx
mov byte [esp + 0x108], 0x10
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jl 0x40d251
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0xe8]
push edx
call esi
lea eax, [esp + 0x58]
push eax
mov byte [esp + 0x104], 2
call esi
cmp word [esp + 0x24], 1
jne 0x40d20a
mov edx, 0x467455
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x40cfd6
sub eax, esi
push eax
push edx
lea ecx, [esp + 0x20]
call fcn.00401720
test byte [esp + 0x14], 0x10
mov dword [esp + 0x100], 2
je 0x40d047
mov eax, dword [esp + 0x3c]
and dword [esp + 0x14], 0xffffffef
cmp eax, ebx
je 0x40d047
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebx
jne 0x40d043
cmp esi, ebx
je 0x40d043
mov eax, dword [esi]
cmp eax, ebx
je 0x40d02a
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40d03a
push eax
call fcn.004199cf
add esp, 4
push esi
call fcn.004199cf
add esp, 4
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
push edi
push 4
push eax
mov ecx, ebp
call fcn.0042e2c9
mov eax, dword [0x77b630]
cmp eax, ebx
je 0x40ca2a
mov ecx, dword [eax]
mov edx, dword [ecx + 0x90]
push eax
mov esi, eax
call edx
cmp eax, ebx
jge 0x40d084
push 0x460748
push esi
push eax
call fcn.0045a7d0
mov eax, dword [esp + 0x1c]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jl 0x40cae0
lea eax, [edi - 0x10]
mov byte [esp + 0x100], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d0c1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x24]
push ecx
call esi
lea edx, [esp + 0x108]
push edx
call esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret 0x10
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x38]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 1
mov byte [esp + 0x100], 5
cmp esi, ebx
je 0x40d124
cmp dword [esi + 4], ebx
jne 0x40d11f
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40d126
xor edx, edx
cmp edx, ebx
jne 0x40cb72
xor eax, eax
jmp 0x40cb80
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x48]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 2
mov byte [esp + 0x100], 8
cmp esi, ebx
je 0x40d16b
cmp dword [esi + 4], ebx
jne 0x40d166
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40d16d
xor edx, edx
cmp edx, ebx
jne 0x40cc97
xor eax, eax
jmp 0x40cca9
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x44]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 4
mov byte [esp + 0x100], 0xb
cmp esi, ebx
je 0x40d1b2
cmp dword [esi + 4], ebx
jne 0x40d1ad
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40d1b4
xor edx, edx
cmp edx, ebx
jne 0x40cdac
xor eax, eax
jmp 0x40cdba
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x3c]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 8
mov byte [esp + 0x100], 0xe
cmp esi, ebx
je 0x40d1f9
cmp dword [esi + 4], ebx
jne 0x40d1f4
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40d1fb
xor edx, edx
cmp edx, ebx
jne 0x40cec0
xor eax, eax
jmp 0x40cece
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x40]
call fcn.00403110
mov esi, dword [eax]
or dword [esp + 0x14], 0x10
mov byte [esp + 0x100], 0x11
cmp esi, ebx
je 0x40d240
cmp dword [esi + 4], ebx
jne 0x40d23b
mov edx, dword [esi]
push edx
call fcn.0045a9d0
mov dword [esi + 4], eax
mov edx, dword [esi + 4]
jmp 0x40d242
xor edx, edx
cmp edx, ebx
jne 0x40cfd1
xor eax, eax
jmp 0x40cfdf
push eax
call fcn.0045a7b0
int3