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

Disassembly:
push 0xffffffffffffffff
push 0x46216d
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x481e98]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x3c], edi
xor ebx, ebx
push 0x439
mov dword [esp + 0x18], ebx
call fcn.0042fe70
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
push ebx
mov esi, eax
mov eax, dword [esi + 0x20]
push 0x147
push eax
call ebp
cmp eax, 0xffffffff
je 0x417237
call fcn.0043239f
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x416a9b
push 0x80004005
call fcn.00401050
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x24]
push ecx
push ebx
push ebx
push 0x147
push edx
mov dword [esp + 0x10c], ebx
call ebp
push eax
mov ecx, esi
call fcn.00433293
call fcn.0043239f
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x416ae6
push 0x80004005
call fcn.00401050
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x20]
push str.select__from_planhistory_where_planname___s_order_by_planname_querytime
push edx
mov byte [esp + 0x104], 1
call fcn.00401ce0
add esp, 0xc
push ebx
lea ecx, [esp + 0xc8]
call fcn.00401d00
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], ebx
mov eax, 1
sub eax, dword [ecx - 4]
mov ecx, dword [ecx - 8]
or ecx, eax
mov byte [esp + 0xf8], 3
jge 0x416b4b
push ebx
lea ecx, [esp + 0x20]
call fcn.00401440
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x18]
push eax
push ecx
lea ecx, [esp + 0xcc]
call fcn.00401700
test eax, eax
push ebx
jne 0x4171a7
mov edx, dword [edi + 0x98]
push ebx
push 0x1009
push edx
call ebp
push 0x452
mov ecx, edi
call fcn.0042fe70
mov eax, dword [eax + 0x20]
push ebx
push ebx
push 0x14b
push eax
call ebp
push 0x452
mov ecx, edi
call fcn.0042fe70
mov ecx, dword [eax + 0x20]
push 0x467770
push ebx
push 0x143
push ecx
call ebp
push 0x418
mov ecx, edi
call fcn.0042fe70
mov edx, dword [eax + 0x20]
push ebx
push ebx
push 0x14b
push edx
call ebp
push 0x418
mov ecx, edi
call fcn.0042fe70
mov eax, dword [eax + 0x20]
push 0x467770
push ebx
push 0x143
push eax
call ebp
push 0x43a
mov ecx, edi
call fcn.0042fe70
mov ecx, dword [eax + 0x20]
push ebx
push ebx
push 0x14b
push ecx
call ebp
push 0x43a
mov ecx, edi
call fcn.0042fe70
mov edx, dword [eax + 0x20]
push 0x467770
push ebx
push 0x143
push edx
call ebp
jmp 0x416c20
mov eax, dword [esp + 0x18]
xor ebx, ebx
cmp eax, ebx
jne 0x416c38
push 0x80004003
call fcn.0045eff0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
lea edx, [esp + 0x20]
push edx
mov esi, eax
push eax
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x28], ebx
call eax
cmp eax, ebx
jge 0x416c5b
push 0x467728
push esi
push eax
call fcn.0045f000
cmp word [esp + 0x20], bx
jne 0x417172
push str.goodname
mov word [esp + 0x78], 8
call fcn.0045f080
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x18], ebx
mov byte [esp + 0xf8], 4
jne 0x416c93
push 0x80004003
call fcn.0045eff0
lea ecx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xd4]
push edx
call fcn.00402680
mov ecx, dword [eax]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0xd0]
push eax
mov dword [esp + 0x38], edx
call esi
lea ecx, [esp + 0x74]
push ecx
mov byte [esp + 0xfc], 3
call esi
cmp word [esp + 0x28], 1
je 0x416e7c
mov ecx, dword [esp + 0x3c]
push 0x418
call fcn.0042fe70
lea edx, [esp + 0xb4]
push edx
mov edi, eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0xb8]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x416d2a
push eax
call fcn.0045eff0
lea edx, [esp + 0xb4]
push edx
lea ecx, [esp + 0x3c]
mov byte [esp + 0xfc], 5
call fcn.00402e50
mov esi, dword [eax]
test esi, esi
mov byte [esp + 0xf8], 6
je 0x416d67
cmp dword [esi + 4], 0
jne 0x416d62
mov eax, dword [esi]
push eax
call fcn.0045f210
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x416d69
xor esi, esi
mov ecx, dword [edi + 0x20]
push esi
push 0xffffffffffffffff
push 0x158
push ecx
call ebp
cmp eax, 0xffffffff
mov eax, dword [esp + 0x38]
sete bl
test eax, eax
je 0x416dc7
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x416dbf
test esi, esi
je 0x416dbf
mov eax, dword [esi]
test eax, eax
je 0x416da6
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
test eax, eax
je 0x416db6
push eax
call fcn.0042a3e5
add esp, 4
push esi
call fcn.0042a3e5
add esp, 4
mov dword [esp + 0x38], 0
lea edx, [esp + 0xb4]
push edx
mov byte [esp + 0xfc], 3
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
test bl, bl
je 0x416e7c
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x98]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x416e10
push eax
call fcn.0045eff0
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x4c]
mov byte [esp + 0xfc], 7
call fcn.00402e50
mov esi, dword [eax]
test esi, esi
mov byte [esp + 0xf8], 8
je 0x416e4d
cmp dword [esi + 4], 0
jne 0x416e48
mov ecx, dword [esi]
push ecx
call fcn.0045f210
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x416e4f
xor esi, esi
mov edx, dword [edi + 0x20]
push esi
push 0
push 0x143
push edx
call ebp
lea ecx, [esp + 0x48]
call fcn.004019e0
lea eax, [esp + 0x94]
push eax
mov byte [esp + 0xfc], 3
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
push str.goodww
mov word [esp + 0x58], 8
call fcn.0045f080
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x18], 0
mov byte [esp + 0xf8], 9
jne 0x416eaa
push 0x80004003
call fcn.0045eff0
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xe4]
push edx
call fcn.00402680
mov ecx, dword [eax]
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x28], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 0xc]
lea eax, [esp + 0xe0]
push eax
mov dword [esp + 0x38], edx
call esi
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0xfc], 3
call esi
cmp word [esp + 0x28], 1
je 0x417136
mov ecx, dword [esp + 0x3c]
push 0x43a
call fcn.0042fe70
lea edx, [esp + 0x84]
mov edi, eax
push edx
mov dword [esp + 0x24], edi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x88]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x416f45
push eax
call fcn.0045eff0
or dword [esp + 0x14], 1
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x44]
mov byte [esp + 0xfc], 0xa
call fcn.00402e50
mov esi, dword [eax]
or dword [esp + 0x14], 2
test esi, esi
mov dword [esp + 0xf8], 0xb
je 0x416f8f
cmp dword [esi + 4], 0
jne 0x416f8a
mov eax, dword [esi]
push eax
call fcn.0045f210
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x416f91
xor esi, esi
mov ecx, dword [edi + 0x20]
push esi
push 0xffffffffffffffff
push 0x158
push ecx
call ebp
cmp eax, 0xffffffff
jne 0x417031
lea edx, [esp + 0x64]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x68]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x416fcd
push eax
call fcn.0045eff0
or dword [esp + 0x14], 4
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x50]
mov dword [esp + 0xfc], 0xc
call fcn.00402e50
mov esi, dword [eax]
or dword [esp + 0x14], 8
test esi, esi
mov dword [esp + 0xf8], 0xd
je 0x417017
cmp dword [esi + 4], 0
jne 0x417012
mov eax, dword [esi]
push eax
call fcn.0045f210
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
jmp 0x417019
xor eax, eax
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x417020
sub eax, edx
je 0x417031
mov bl, 1
jmp 0x417033
xor bl, bl
test byte [esp + 0x14], 8
je 0x417048
and dword [esp + 0x14], 0xfffffff7
lea ecx, [esp + 0x4c]
call fcn.004019e0
test byte [esp + 0x14], 4
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
je 0x417061
and dword [esp + 0x14], 0xfffffffb
lea ecx, [esp + 0x64]
push ecx
call edi
test byte [esp + 0x14], 2
je 0x417076
and dword [esp + 0x14], 0xfffffffd
lea ecx, [esp + 0x40]
call fcn.004019e0
test byte [esp + 0x14], 1
mov dword [esp + 0xf8], 3
je 0x417097
and dword [esp + 0x14], 0xfffffffe
lea edx, [esp + 0x84]
push edx
call edi
test bl, bl
je 0x417136
lea eax, [esp + 0xa4]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0xa8]
push edx
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
test eax, eax
jge 0x4170ca
push eax
call fcn.0045eff0
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xfc], 0xe
call fcn.00402e50
mov esi, dword [eax]
test esi, esi
mov byte [esp + 0xf8], 0xf
je 0x417107
cmp dword [esi + 4], 0
jne 0x417102
mov ecx, dword [esi]
push ecx
call fcn.0045f210
mov dword [esi + 4], eax
mov esi, dword [esi + 4]
jmp 0x417109
xor esi, esi
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
push esi
push 0
push 0x143
push eax
call ebp
lea ecx, [esp + 0x44]
call fcn.004019e0
lea ecx, [esp + 0xa4]
push ecx
mov byte [esp + 0xfc], 3
call edi
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x41714c
push 0x80004003
call fcn.0045eff0
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
mov esi, eax
push eax
mov eax, dword [edx + 0x90]
call eax
test eax, eax
jge 0x416c20
push 0x467728
push esi
push eax
call fcn.0045f000
jmp 0x416c20
mov eax, dword [esp + 0x18]
cmp eax, ebx
jne 0x417188
push 0x80004003
call fcn.0045eff0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x80]
push eax
mov esi, eax
call edx
cmp eax, ebx
jge 0x4171b8
push 0x467728
push esi
push eax
call fcn.0045f000
jmp 0x4171b8
push 0x467ac4
push 0x46a910
mov ecx, edi
call fcn.0042ba30
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0xf8], 2
je 0x4171d0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea ecx, [esp + 0xc4]
mov byte [esp + 0xf8], 1
call fcn.00401490
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0xf8], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41720c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov dword [esp + 0xf8], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x417237
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret