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

Disassembly:
push 0xffffffffffffffff
push 0x23bda1a8
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x23c68938]
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.23b29fe0
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 0x23b2a93e
test esi, esi
jl 0x23b2aade
cmp esi, eax
jge 0x23b2aade
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.23b29d10
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 + 0x14c]
je 0x23b2a8c6
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 0x23b2a8dc
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.23b2a2d0
mov eax, dword [ebp + 8]
inc esi
cmp esi, eax
jl 0x23b2a857
cmp dword [esp + 0x9c], 0
jne 0x23b2a951
lea ecx, [esp + 0x38]
call fcn.23b29ef0
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push 0x23b29cf0
push 0x30
push ebx
push edx
call fcn.23bc7e10
or ecx, 0xffffffff
add esp, 0x10
xor eax, eax
xor edi, edi
lea ebp, [ecx + 2]
test ebx, ebx
jle 0x23b2a9c6
mov esi, dword [esp + 0x3c]
add esi, 4
nop
test edi, edi
jl 0x23b2aade
cmp edi, ebx
jge 0x23b2aade
mov edx, dword [esi]
cmp edx, eax
jge 0x23b2aae3
cmp ecx, dword [esi + 0x20]
jl 0x23b2a9a7
test ebp, ebp
je 0x23b2aae3
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 0x23b2a980
mov eax, dword [esp + 0x98]
lea edi, [ebx - 1]
or ecx, 0xffffffff
mov dword [esp + 0x8c], 1
test edi, edi
jl 0x23b2aa46
mov esi, dword [esp + 0x3c]
lea edx, [edi + edi*2]
shl edx, 4
lea esi, [edx + esi + 4]
test edi, edi
jl 0x23b2aade
cmp edi, ebx
jge 0x23b2aade
mov edx, dword [esi + 8]
mov ebp, edx
sub ebp, eax
test ebp, ebp
jle 0x23b2aaea
cmp ecx, dword [esi + 0x20]
jl 0x23b2aa22
cmp dword [esp + 0x8c], 0
je 0x23b2aaea
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 0x23b2a9f8
xor eax, eax
xor edi, edi
test ebx, ebx
jle 0x23b2aa81
mov esi, dword [esp + 0x3c]
mov ebp, dword [sym.imp.USER32.dll_OffsetRect]
add esi, 4
jmp 0x23b2aa60
test edi, edi
jl 0x23b2aade
cmp edi, ebx
jge 0x23b2aade
mov ecx, dword [esi]
cmp ecx, eax
jge 0x23b2aa76
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 0x23b2aa60
cmp eax, dword [esp + 0x98]
jle 0x23b2abf7
xor ebx, ebx
xor ebp, ebp
cmp dword [esp + 0x40], ebx
mov dword [esp + 0x8c], ebx
jle 0x23b2ab57
mov edi, dword [esp + 0x3c]
add edi, 0x28
lea ebx, [ebx]
test ebx, ebx
jl 0x23b2aade
cmp ebx, dword [esp + 0x40]
jge 0x23b2aade
mov esi, dword [edi - 0x28]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
push esi
push eax
call fcn.23b29d10
test al, al
js 0x23b2aafa
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
jmp 0x23b2ab3d
call fcn.23a2f00f
xor ebp, ebp
jmp 0x23b2a9b8
mov dword [esp + 0x8c], 0
jmp 0x23b2aa39
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esi]
push 0
push esi
push edx
call fcn.23b29d10
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 0x23b2ab34
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 0x23b2aab0
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x98]
dec edi
test edi, edi
jl 0x23b2abf7
mov ecx, dword [esp + 0x3c]
lea eax, [edi + edi*2]
shl eax, 4
lea ecx, [eax + ecx + 4]
test edi, edi
jl 0x23b2aade
cmp edi, dword [esp + 0x40]
jge 0x23b2aade
cmp dword [esp + 0x9c], 0
je 0x23b2ab9a
mov eax, dword [ecx + 0x10]
jmp 0x23b2ab9d
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx]
cmp eax, edx
jle 0x23b2aba5
mov eax, edx
sub edx, dword [ecx + 8]
add edx, esi
cmp eax, edx
jge 0x23b2abb0
mov eax, edx
mov ebx, dword [ecx + 0x28]
cmp eax, ebx
jge 0x23b2abb9
mov eax, ebx
mov edx, dword [ecx + 0x24]
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jge 0x23b2abc8
mov eax, esi
sub eax, edx
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jl 0x23b2abd4
cmp eax, ebx
jge 0x23b2abdd
mov edx, dword [esp + 0x40]
cmp edx, 1
jne 0x23b2ac58
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 0x23b2ab81
cmp dword [esp + 0x9c], 0
jne 0x23b2ac0a
lea ecx, [esp + 0x38]
call fcn.23b29ef0
xor ecx, ecx
xor esi, esi
cmp dword [esp + 0x40], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x8c], ecx
jle 0x23b2ad17
mov eax, dword [esp + 0x3c]
add eax, 0x10
mov dword [esp + 0x18], eax
test ecx, ecx
jl 0x23b2aade
cmp ecx, dword [esp + 0x40]
jge 0x23b2aade
cmp dword [esp + 0x9c], 0
mov esi, dword [eax - 0x10]
je 0x23b2ac9d
mov edi, dword [eax - 4]
sub edi, dword [eax - 0xc]
jmp 0x23b2aca2
lea eax, [edx - 1]
test eax, eax
jl 0x23b2aade
cmp eax, edx
jge 0x23b2aade
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.23b2a000
or eax, 0xffffffff
jmp 0x23b2af82
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.23b29d10
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 0x23b2acd9
mov eax, ecx
mov esi, dword [esp + 0xa4]
cmp esi, eax
jg 0x23b2acf3
mov esi, edx
test ebp, ebp
jne 0x23b2acec
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 0x23b2ac31
mov ecx, dword [esp + 0xa0]
cmp dword [ecx], 0
je 0x23b2af6c
xor ebp, ebp
cmp dword [esp + 0x40], ebp
jle 0x23b2af6c
test ebp, ebp
jl 0x23b2aade
cmp ebp, dword [esp + 0x40]
jge 0x23b2aade
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.23b29d10
or eax, 0x40
test dword [edi + 0xa8], 0x100000
mov dword [esp + 0x8c], eax
je 0x23b2aea9
cmp dword [esp + 0x9c], 0
mov edx, dword [esp + 0x40]
lea eax, [edx - 1]
je 0x23b2ae24
cmp ebp, eax
jne 0x23b2ada7
mov ecx, dword [esp + 0x98]
jmp 0x23b2adc5
lea ecx, [ebp + 1]
test ecx, ecx
jl 0x23b2aade
cmp ecx, edx
jge 0x23b2aade
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 0x23b2add5
xor ecx, ecx
mov dword [esi], ecx
jmp 0x23b2aea1
lea ecx, [ebp - 1]
test ecx, ecx
jl 0x23b2aade
cmp ecx, edx
jge 0x23b2aade
mov eax, dword [esi]
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ebx
cmp dword [edx + 0xc], eax
jge 0x23b2ae1b
test ecx, ecx
jl 0x23b2aade
cmp ecx, dword [esp + 0x40]
jge 0x23b2aade
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 0xc]
mov dword [esi], ecx
jmp 0x23b2aea1
mov ecx, eax
mov dword [esi], ecx
jmp 0x23b2aea1
cmp ebp, eax
jne 0x23b2ae31
mov ecx, dword [esp + 0x98]
jmp 0x23b2ae4f
lea ecx, [ebp + 1]
test ecx, ecx
jl 0x23b2aade
cmp ecx, edx
jge 0x23b2aade
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 0x23b2ae5a
xor ecx, ecx
jmp 0x23b2ae9e
lea ecx, [ebp - 1]
test ecx, ecx
jl 0x23b2aade
cmp ecx, edx
jge 0x23b2aade
mov eax, dword [esi + 4]
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ebx
cmp dword [edx + 0x10], eax
jge 0x23b2ae9c
test ecx, ecx
jl 0x23b2aade
cmp ecx, dword [esp + 0x40]
jge 0x23b2aade
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 0x10]
jmp 0x23b2ae9e
mov ecx, eax
mov dword [esi + 4], ecx
or dword [esp + 0x8c], 1
cmp dword [esp + 0x9c], 0
je 0x23b2aeba
mov ecx, dword [esi + 8]
sub ecx, dword [esi]
jmp 0x23b2aec0
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.23b29e30
mov ecx, dword [edi + 0x14c]
mov dword [ecx + 0x14], eax
push edi
lea ecx, [esp + 0x24]
call fcn.23a67530
lea edx, [esp + 0x20]
push edx
mov ecx, ebx
call fcn.23a38659
push esi
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x23b2af5a
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0xa0]
push esi
push ecx
push edx
call fcn.23a3093a
mov eax, dword [edi]
mov edx, dword [eax + 0x1a4]
push 1
push 0
mov ecx, edi
call edx
inc ebp
cmp ebp, dword [esp + 0x40]
jl 0x23b2ad33
mov esi, dword [esp + 0xa4]
lea ecx, [esp + 0x38]
mov dword [esp + 0x84], 0xffffffff
call fcn.23b2a000
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