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

Disassembly:
push 0xffffffffffffffff
push 0x5e7358
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x72d630]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x38]
call fcn.00585520
mov dword [esp + 0x38], vtable.CXTPDockBar::CDockInfoArray.0
mov ebp, dword [esp + 0x8c]
mov eax, dword [ebp + 8]
xor esi, esi
cmp eax, esi
mov dword [esp + 0x84], esi
jle 0x585e6e
test esi, esi
jl 0x58600e
cmp esi, eax
jge 0x58600e
mov eax, dword [ebp + 4]
mov edi, dword [eax + esi*4]
mov ecx, dword [esp + 0x9c]
mov ebx, dword [edi]
lea eax, [eax + esi*4]
push 0
push edi
push ecx
mov ecx, dword [esp + 0x20]
call fcn.005851d0
mov edx, dword [esp + 0x9c]
push eax
push edx
mov edx, dword [ebx + 0x204]
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call edx
cmp dword [esp + 0x9c], 0
mov eax, dword [edi + 0x18c]
je 0x585df6
mov ecx, dword [eax + 0x18]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x18]
jmp 0x585e0c
mov ecx, dword [esp + 0x90]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x20]
mov eax, dword [ecx]
mov edx, dword [esp + 0x30]
mov ecx, dword [ecx + 4]
mov ebx, dword [esp + 0x34]
add edx, eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x60], eax
xor eax, eax
add ebx, ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x40]
lea eax, [esp + 0x4c]
push eax
push ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x54], edi
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], esi
call fcn.00585810
mov eax, dword [ebp + 8]
inc esi
cmp esi, eax
jl 0x585d87
cmp dword [esp + 0x9c], 0
jne 0x585e81
lea ecx, [esp + 0x38]
call fcn.00585470
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push 0x5851b0
push 0x30
push ebx
push edx
call dword [sym.imp.MSVCR90.dll_qsort]
or ecx, 0xffffffff
add esp, 0x10
xor eax, eax
xor edi, edi
lea ebp, [ecx + 2]
test ebx, ebx
jle 0x585ef6
mov esi, dword [esp + 0x3c]
add esi, 4
test edi, edi
jl 0x58600e
cmp edi, ebx
jge 0x58600e
mov edx, dword [esi]
cmp edx, eax
jge 0x586013
cmp ecx, dword [esi + 0x20]
jl 0x585ed7
test ebp, ebp
je 0x586013
push 0
sub eax, edx
push eax
push esi
mov ebp, 1
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x20]
inc edi
add esi, 0x30
cmp edi, ebx
jl 0x585eb0
mov eax, dword [esp + 0x98]
lea edi, [ebx - 1]
or ecx, 0xffffffff
mov dword [esp + 0x8c], 1
test edi, edi
jl 0x585f76
mov esi, dword [esp + 0x3c]
lea edx, [edi + edi*2]
shl edx, 4
lea esi, [edx + esi + 4]
test edi, edi
jl 0x58600e
cmp edi, ebx
jge 0x58600e
mov edx, dword [esi + 8]
mov ebp, edx
sub ebp, eax
test ebp, ebp
jle 0x58601a
cmp ecx, dword [esi + 0x20]
jl 0x585f52
cmp dword [esp + 0x8c], 0
je 0x58601a
push 0
sub eax, edx
push eax
push esi
mov dword [esp + 0x98], 1
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi]
mov ecx, dword [esi + 0x20]
dec edi
sub esi, 0x30
test edi, edi
jge 0x585f28
xor eax, eax
xor edi, edi
test ebx, ebx
jle 0x585fb1
mov esi, dword [esp + 0x3c]
mov ebp, dword [sym.imp.USER32.dll_OffsetRect]
add esi, 4
jmp 0x585f90
test edi, edi
jl 0x58600e
cmp edi, ebx
jge 0x58600e
mov ecx, dword [esi]
cmp ecx, eax
jge 0x585fa6
push 0
sub eax, ecx
push eax
push esi
call ebp
mov eax, dword [esi + 8]
inc edi
add esi, 0x30
cmp edi, ebx
jl 0x585f90
cmp eax, dword [esp + 0x98]
jle 0x586127
xor ebx, ebx
xor ebp, ebp
cmp dword [esp + 0x40], ebx
mov dword [esp + 0x8c], ebx
jle 0x586087
mov edi, dword [esp + 0x3c]
add edi, 0x28
lea ebx, [ebx]
test ebx, ebx
jl 0x58600e
cmp ebx, dword [esp + 0x40]
jge 0x58600e
mov esi, dword [edi - 0x28]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
push esi
push eax
call fcn.005851d0
test al, al
js 0x58602a
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
jmp 0x58606d
call fcn.005df2b2
xor ebp, ebp
jmp 0x585ee8
mov dword [esp + 0x8c], 0
jmp 0x585f69
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esi]
push 0
push esi
push edx
call fcn.005851d0
mov edx, dword [ebx + 0x204]
push eax
push 1
lea eax, [esp + 0x3c]
push eax
mov ecx, esi
call edx
cmp dword [esp + 0x9c], 0
mov eax, dword [esp + 0x30]
jne 0x586064
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x8c]
mov dword [edi], eax
mov dword [edi + 4], ebp
add ebp, dword [edi]
inc ebx
add edi, 0x30
cmp ebx, dword [esp + 0x40]
mov dword [esp + 0x8c], ebx
jl 0x585fe0
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x98]
dec edi
test edi, edi
jl 0x586127
mov ecx, dword [esp + 0x3c]
lea eax, [edi + edi*2]
shl eax, 4
lea ecx, [eax + ecx + 4]
test edi, edi
jl 0x58600e
cmp edi, dword [esp + 0x40]
jge 0x58600e
cmp dword [esp + 0x9c], 0
je 0x5860ca
mov eax, dword [ecx + 0x10]
jmp 0x5860cd
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx]
cmp eax, edx
jle 0x5860d5
mov eax, edx
sub edx, dword [ecx + 8]
add edx, esi
cmp eax, edx
jge 0x5860e0
mov eax, edx
mov ebx, dword [ecx + 0x28]
cmp eax, ebx
jge 0x5860e9
mov eax, ebx
mov edx, dword [ecx + 0x24]
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jge 0x5860f8
mov eax, esi
sub eax, edx
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jl 0x586104
cmp eax, ebx
jge 0x58610d
mov edx, dword [esp + 0x40]
cmp edx, 1
jne 0x586188
xor edx, edx
test eax, eax
setl dl
mov dword [ecx + 8], esi
dec edi
sub ecx, 0x30
dec edx
and eax, edx
mov dword [ecx + 0x30], eax
mov esi, eax
test edi, edi
jge 0x5860b1
cmp dword [esp + 0x9c], 0
jne 0x58613a
lea ecx, [esp + 0x38]
call fcn.00585470
xor ecx, ecx
xor esi, esi
cmp dword [esp + 0x40], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x8c], ecx
jle 0x586247
mov eax, dword [esp + 0x3c]
add eax, 0x10
mov dword [esp + 0x18], eax
test ecx, ecx
jl 0x58600e
cmp ecx, dword [esp + 0x40]
jge 0x58600e
cmp dword [esp + 0x9c], 0
mov esi, dword [eax - 0x10]
je 0x5861cd
mov edi, dword [eax - 4]
sub edi, dword [eax - 0xc]
jmp 0x5861d2
lea eax, [edx - 1]
test eax, eax
jl 0x58600e
cmp eax, edx
jge 0x58600e
mov ecx, dword [esp + 0xa4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esp + 0x3c]
mov dword [esp + 0x84], 0xffffffff
mov eax, dword [eax + 0x24]
mov dword [ecx], eax
lea ecx, [esp + 0x38]
call fcn.00585540
or eax, 0xffffffff
jmp 0x5864b2
mov edi, dword [eax]
sub edi, dword [eax - 8]
mov ebp, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esi]
push 0
push esi
push ebp
call fcn.005851d0
push eax
mov eax, dword [ebx + 0x204]
push edi
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
call eax
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov eax, edx
test ebp, ebp
jne 0x586209
mov eax, ecx
mov esi, dword [esp + 0xa4]
cmp esi, eax
jg 0x586223
mov esi, edx
test ebp, ebp
jne 0x58621c
mov esi, ecx
mov dword [esp + 0xa4], esi
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x18]
inc ecx
add eax, 0x30
cmp ecx, dword [esp + 0x40]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x18], eax
jl 0x586161
mov ecx, dword [esp + 0xa0]
cmp dword [ecx], 0
je 0x58649c
xor ebp, ebp
cmp dword [esp + 0x40], ebp
jle 0x58649c
test ebp, ebp
jl 0x58600e
cmp ebp, dword [esp + 0x40]
jge 0x58600e
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
lea edx, [ebp + ebp*2]
shl edx, 4
mov edi, dword [edx + ebx]
lea eax, [edx + ebx]
lea esi, [eax + 4]
mov eax, dword [esp + 0x9c]
push edi
push eax
call fcn.005851d0
or eax, 0x40
test dword [edi + 0xec], 0x100000
mov dword [esp + 0x8c], eax
je 0x5863d9
cmp dword [esp + 0x9c], 0
mov edx, dword [esp + 0x40]
lea eax, [edx - 1]
je 0x586354
cmp ebp, eax
jne 0x5862d7
mov ecx, dword [esp + 0x98]
jmp 0x5862f5
lea ecx, [ebp + 1]
test ecx, ecx
jl 0x58600e
cmp ecx, edx
jge 0x58600e
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 4]
mov dword [esi + 8], ecx
test ebp, ebp
jne 0x586305
xor ecx, ecx
mov dword [esi], ecx
jmp 0x5863d1
lea ecx, [ebp - 1]
test ecx, ecx
jl 0x58600e
cmp ecx, edx
jge 0x58600e
mov eax, dword [esi]
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ebx
cmp dword [edx + 0xc], eax
jge 0x58634b
test ecx, ecx
jl 0x58600e
cmp ecx, dword [esp + 0x40]
jge 0x58600e
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 0xc]
mov dword [esi], ecx
jmp 0x5863d1
mov ecx, eax
mov dword [esi], ecx
jmp 0x5863d1
cmp ebp, eax
jne 0x586361
mov ecx, dword [esp + 0x98]
jmp 0x58637f
lea ecx, [ebp + 1]
test ecx, ecx
jl 0x58600e
cmp ecx, edx
jge 0x58600e
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 8]
mov dword [esi + 0xc], ecx
test ebp, ebp
jne 0x58638a
xor ecx, ecx
jmp 0x5863ce
lea ecx, [ebp - 1]
test ecx, ecx
jl 0x58600e
cmp ecx, edx
jge 0x58600e
mov eax, dword [esi + 4]
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ebx
cmp dword [edx + 0x10], eax
jge 0x5863cc
test ecx, ecx
jl 0x58600e
cmp ecx, dword [esp + 0x40]
jge 0x58600e
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 0x10]
jmp 0x5863ce
mov ecx, eax
mov dword [esi + 4], ecx
or dword [esp + 0x8c], 1
cmp dword [esp + 0x9c], 0
je 0x5863ea
mov ecx, dword [esi + 8]
sub ecx, dword [esi]
jmp 0x5863f0
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 4]
mov eax, dword [esp + 0xa4]
mov edx, dword [edi]
mov edx, dword [edx + 0x204]
push eax
mov eax, dword [esp + 0x90]
push eax
push ecx
lea ecx, [esp + 0x3c]
push ecx
mov ecx, edi
call edx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
mov dword [esi], eax
mov dword [esi + 4], ecx
add edx, eax
add ebx, ecx
mov dword [esi + 8], edx
mov dword [esi + 0xc], ebx
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.005852e0
mov ecx, dword [edi + 0x18c]
mov dword [ecx + 0x14], eax
push edi
lea ecx, [esp + 0x24]
call fcn.0055c8a0
lea edx, [esp + 0x20]
push edx
mov ecx, ebx
call sub.mfc90u.dll_CWnd::ScreenToClient
push esi
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x58648a
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0xa0]
push esi
push ecx
push edx
call sub.mfc90u.dll_AfxRepositionWindow
mov eax, dword [edi]
mov edx, dword [eax + 0x1ac]
push 1
push 0
mov ecx, edi
call edx
inc ebp
cmp ebp, dword [esp + 0x40]
jl 0x586263
mov esi, dword [esp + 0xa4]
lea ecx, [esp + 0x38]
mov dword [esp + 0x84], 0xffffffff
call fcn.00585540
mov eax, esi
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret 0x1c