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

Disassembly:
push 0xffffffffffffffff
push 0x4417c4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x100
push ebx
push ebp
xor ebx, ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x10], ebx
mov ecx, dword [esi + 0x1c]
lea eax, [esp + 0xb0]
push eax
push ecx
mov dword [esp + 0x120], ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edi, dword [esp + 0xb4]
push 1
lea edx, [esp + 0xb4]
lea ebp, [esi + 0x80]
push esi
add edi, 0x1e
push edx
push 0x50800001
mov ecx, ebp
mov dword [esp + 0xc4], edi
call fcn.0042a392
mov eax, dword [esi + 0x9c]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0xf097b1
push ebx
push 0x1001
push eax
call edi
mov ecx, dword [esi + 0x9c]
push ebx
push ebx
push 0x1024
push ecx
call edi
mov edx, dword [esi + 0x9c]
push 0xf097b1
push ebx
push 0x1026
push edx
call edi
mov eax, dword [esi + 0x9c]
push 0x31
push ebx
push 0x1036
push eax
call edi
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4aacf8
push ebx
mov ecx, ebp
call fcn.0042a3fb
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4aacec
push 1
mov ecx, ebp
call fcn.0042a3fb
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4aace0
push 2
mov ecx, ebp
call fcn.0042a3fb
push 0xffffffffffffffff
push 0x64
push ebx
push 0x4ab264
push 3
mov ecx, ebp
call fcn.0042a3fb
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea edx, [esp + 0x120]
mov ecx, 0x4af4b8
push edx
push 0x4af580
mov byte [esp + 0x120], 1
call fcn.0040c050
cmp dword [0x4af580], ebx
jne 0x410a14
push 0x80004003
call fcn.004299c6
mov esi, dword [0x4af580]
lea ecx, [esp + 0x3c]
push ecx
push esi
mov eax, dword [esi]
call dword [eax + 0x68]
cmp eax, ebx
jge 0x410a35
push 0x453120
push esi
push eax
call fcn.004299d4
mov edi, dword [esp + 0x3c]
cmp edi, ebx
jne 0x410a7d
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x11c], bl
call esi
cmp eax, ebx
jge 0x410a5b
push eax
call fcn.004299c6
lea eax, [esp + 0x120]
mov dword [esp + 0x118], 0xffffffff
push eax
call esi
cmp eax, ebx
jge 0x4111a1
jmp 0x41119b
mov ecx, dword [0x4ab60c]
mov dword [esp + 0x14], ecx
mov eax, dword [0x4af580]
mov byte [esp + 0x118], 2
cmp eax, ebx
jne 0x410aa2
push 0x80004003
call fcn.004299c6
mov esi, dword [0x4af580]
push esi
mov edx, dword [esi]
call dword [edx + 0x98]
cmp eax, ebx
jge 0x410ac1
push 0x453120
push esi
push eax
call fcn.004299d4
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
cmp edi, ebx
mov dword [esp + 0x18], ebx
jle 0x411159
mov edi, 8
push 0x4aa97c
mov word [esp + 0x44], di
call fcn.00429a73
cmp eax, ebx
mov dword [esp + 0x48], eax
jne 0x410b02
mov eax, 0x4aa97c
test eax, eax
je 0x410b02
push 0x8007000e
call fcn.004299c6
mov eax, dword [0x4af580]
mov byte [esp + 0x118], 3
cmp eax, ebx
jne 0x410b1d
push 0x80004003
call fcn.004299c6
lea ecx, [esp + 0x40]
lea edx, [esp + 0xd0]
push ecx
mov ecx, dword [0x4af580]
push edx
call fcn.00402db0
push eax
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x120], 4
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jge 0x410b53
push eax
call fcn.004299c6
lea ecx, [esp + 0xd0]
mov byte [esp + 0x118], 3
push ecx
call esi
cmp eax, ebx
jge 0x410b6f
push eax
call fcn.004299c6
lea edx, [esp + 0x40]
mov byte [esp + 0x118], 2
push edx
call esi
cmp eax, ebx
jge 0x410b88
push eax
call fcn.004299c6
mov eax, dword [esp + 0x2c]
cmp ax, 1
jne 0x410b9c
mov eax, 0x4af4b0
jmp 0x410c1c
cmp ax, di
mov dword [esp + 0x24], ebx
jne 0x410bb5
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x24]
push eax
call fcn.00402f00
jmp 0x410bfe
lea ecx, [esp + 0x70]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x70]
push edx
push edi
mov byte [esp + 0x120], 5
call fcn.00403060
mov eax, dword [esp + 0x78]
lea ecx, [esp + 0x24]
push eax
call fcn.00402f00
lea ecx, [esp + 0x70]
mov byte [esp + 0x118], 2
push ecx
call esi
cmp eax, ebx
jge 0x410bfe
push eax
call fcn.004299c6
or dword [esp + 0x10], 1
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x118], 6
cmp ecx, ebx
je 0x410c1a
call fcn.00403030
jmp 0x410c1c
xor eax, eax
push eax
lea ecx, [esp + 0x18]
call fcn.0042fd85
mov al, byte [esp + 0x10]
mov dword [esp + 0x118], 2
test al, 1
je 0x410c4c
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x24]
and al, 0xfe
mov dword [esp + 0x10], eax
call fcn.00405f20
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ebx
push ebx
push ebx
push ebx
push edx
push eax
push 1
mov ecx, ebp
call fcn.0042a44e
push str.Spec
mov word [esp + 0xa4], di
call fcn.00429a73
cmp eax, ebx
mov dword [esp + 0xa8], eax
jne 0x410c93
mov ecx, str.Spec
test ecx, ecx
je 0x410c93
push 0x8007000e
call fcn.004299c6
mov eax, dword [0x4af580]
mov byte [esp + 0x118], 7
cmp eax, ebx
jne 0x410cae
push 0x80004003
call fcn.004299c6
mov ecx, dword [0x4af580]
lea edx, [esp + 0xa0]
lea eax, [esp + 0xf0]
push edx
push eax
call fcn.00402db0
lea ecx, [esp + 0x2c]
push eax
push ecx
mov byte [esp + 0x120], 8
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jge 0x410ce7
push eax
call fcn.004299c6
lea edx, [esp + 0xf0]
mov byte [esp + 0x118], 7
push edx
call esi
cmp eax, ebx
jge 0x410d03
push eax
call fcn.004299c6
lea eax, [esp + 0xa0]
mov byte [esp + 0x118], 2
push eax
call esi
cmp eax, ebx
jge 0x410d1f
push eax
call fcn.004299c6
mov eax, dword [esp + 0x2c]
cmp ax, 1
jne 0x410d33
mov eax, 0x4af4b0
jmp 0x410dbf
cmp ax, di
mov dword [esp + 0x1c], ebx
jne 0x410d4c
mov ecx, dword [esp + 0x34]
push ecx
lea ecx, [esp + 0x20]
call fcn.00402f00
jmp 0x410da1
lea edx, [esp + 0x90]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x90]
push eax
push edi
mov byte [esp + 0x120], 9
call fcn.00403060
mov ecx, dword [esp + 0x98]
push ecx
lea ecx, [esp + 0x20]
call fcn.00402f00
lea edx, [esp + 0x90]
mov byte [esp + 0x118], 2
push edx
call esi
cmp eax, ebx
jge 0x410da1
push eax
call fcn.004299c6
or dword [esp + 0x10], 2
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x118], 0xa
cmp ecx, ebx
je 0x410dbd
call fcn.00403030
jmp 0x410dbf
xor eax, eax
push eax
lea ecx, [esp + 0x18]
call fcn.0042fd85
mov al, byte [esp + 0x10]
mov dword [esp + 0x118], 2
test al, 2
je 0x410def
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
and al, 0xfd
mov dword [esp + 0x10], eax
call fcn.00405f20
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push eax
push 1
push ecx
mov ecx, ebp
call fcn.0042a49a
push str.Unit
mov word [esp + 0xc4], di
call fcn.00429a73
cmp eax, ebx
mov dword [esp + 0xc8], eax
jne 0x410e32
mov edx, str.Unit
test edx, edx
je 0x410e32
push 0x8007000e
call fcn.004299c6
mov eax, dword [0x4af580]
mov byte [esp + 0x118], 0xb
cmp eax, ebx
jne 0x410e4d
push 0x80004003
call fcn.004299c6
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xe0]
push eax
push ecx
mov ecx, dword [0x4af580]
call fcn.00402db0
lea edx, [esp + 0x2c]
push eax
push edx
mov byte [esp + 0x120], 0xc
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jge 0x410e86
push eax
call fcn.004299c6
lea eax, [esp + 0xe0]
mov byte [esp + 0x118], 0xb
push eax
call esi
cmp eax, ebx
jge 0x410ea2
push eax
call fcn.004299c6
lea ecx, [esp + 0xc0]
mov byte [esp + 0x118], 2
push ecx
call esi
cmp eax, ebx
jge 0x410ebe
push eax
call fcn.004299c6
mov eax, dword [esp + 0x2c]
cmp ax, 1
jne 0x410ed2
mov eax, 0x4af4b0
jmp 0x410f52
cmp ax, di
mov dword [esp + 0x28], ebx
jne 0x410eeb
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0x28]
push edx
call fcn.00402f00
jmp 0x410f34
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x118], 0xd
push ecx
push edi
lea ecx, [esp + 0x58]
call fcn.00403060
mov edx, dword [esp + 0x58]
lea ecx, [esp + 0x28]
push edx
call fcn.00402f00
lea eax, [esp + 0x50]
mov byte [esp + 0x118], 2
push eax
call esi
cmp eax, ebx
jge 0x410f34
push eax
call fcn.004299c6
or dword [esp + 0x10], 4
mov ecx, dword [esp + 0x28]
mov byte [esp + 0x118], 0xe
cmp ecx, ebx
je 0x410f50
call fcn.00403030
jmp 0x410f52
xor eax, eax
push eax
lea ecx, [esp + 0x18]
call fcn.0042fd85
mov al, byte [esp + 0x10]
mov dword [esp + 0x118], 2
test al, 4
je 0x410f82
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x28]
and al, 0xfb
mov dword [esp + 0x10], eax
call fcn.00405f20
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push ecx
push 2
push edx
mov ecx, ebp
call fcn.0042a49a
push str.Productmemo
mov word [esp + 0x64], di
call fcn.00429a73
cmp eax, ebx
mov dword [esp + 0x68], eax
jne 0x410fbf
mov eax, str.Productmemo
test eax, eax
je 0x410fbf
push 0x8007000e
call fcn.004299c6
mov eax, dword [0x4af580]
mov byte [esp + 0x118], 0xf
cmp eax, ebx
jne 0x410fda
push 0x80004003
call fcn.004299c6
lea ecx, [esp + 0x60]
lea edx, [esp + 0x100]
push ecx
mov ecx, dword [0x4af580]
push edx
call fcn.00402db0
push eax
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x120], 0x10
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
cmp eax, ebx
jge 0x411010
push eax
call fcn.004299c6
lea ecx, [esp + 0x100]
mov byte [esp + 0x118], 0xf
push ecx
call esi
cmp eax, ebx
jge 0x41102c
push eax
call fcn.004299c6
lea edx, [esp + 0x60]
mov byte [esp + 0x118], 2
push edx
call esi
cmp eax, ebx
jge 0x411045
push eax
call fcn.004299c6
mov eax, dword [esp + 0x2c]
cmp ax, 1
jne 0x411059
mov eax, 0x4af4b0
jmp 0x4110e4
cmp ax, di
mov dword [esp + 0x20], ebx
jne 0x411072
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x20]
push eax
call fcn.00402f00
jmp 0x4110c7
lea ecx, [esp + 0x80]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x80]
push edx
push edi
mov byte [esp + 0x120], 0x11
call fcn.00403060
mov eax, dword [esp + 0x88]
lea ecx, [esp + 0x20]
push eax
call fcn.00402f00
lea ecx, [esp + 0x80]
mov byte [esp + 0x118], 2
push ecx
call esi
cmp eax, ebx
jge 0x4110c7
push eax
call fcn.004299c6
or dword [esp + 0x10], edi
mov ecx, dword [esp + 0x20]
mov byte [esp + 0x118], 0x12
cmp ecx, ebx
je 0x4110e2
call fcn.00403030
jmp 0x4110e4
xor eax, eax
push eax
lea ecx, [esp + 0x18]
call fcn.0042fd85
mov al, byte [esp + 0x10]
mov dword [esp + 0x118], 2
test al, 8
je 0x411114
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
and al, 0xf7
mov dword [esp + 0x10], eax
call fcn.00405f20
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push edx
push 3
push eax
mov ecx, ebp
call fcn.0042a49a
cmp dword [0x4af580], ebx
jne 0x411139
push 0x80004003
call fcn.004299c6
mov ecx, dword [0x4af580]
call fcn.00405e80
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x410ad8
lea ecx, [esp + 0x14]
mov byte [esp + 0x118], 1
call fcn.0042fbfc
lea ecx, [esp + 0x2c]
mov byte [esp + 0x118], bl
push ecx
call esi
cmp eax, ebx
jge 0x411182
push eax
call fcn.004299c6
lea edx, [esp + 0x120]
mov dword [esp + 0x118], 0xffffffff
push edx
call esi
cmp eax, ebx
jge 0x4111a1
push eax
call fcn.004299c6
mov ecx, dword [esp + 0x110]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10c
ret 0x10