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

Disassembly:
push 0xffffffffffffffff
push 0x5bcc08
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x62ece4]
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.00555470
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 0x555dce
test esi, esi
jl 0x555f6e
cmp esi, eax
jge 0x555f6e
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.005551f0
mov edx, dword [esp + 0x9c]
push eax
push edx
mov edx, dword [ebx + 0x200]
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
call edx
cmp dword [esp + 0x9c], 0
mov eax, dword [edi + 0x190]
je 0x555d56
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 0x555d6c
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.00555740
mov eax, dword [ebp + 8]
inc esi
cmp esi, eax
jl 0x555ce7
cmp dword [esp + 0x9c], 0
jne 0x555de1
lea ecx, [esp + 0x38]
call fcn.005553c0
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push 0x5551d0
push 0x30
push ebx
push edx
call fcn.005a7ee0
or ecx, 0xffffffff
add esp, 0x10
xor eax, eax
xor edi, edi
lea ebp, [ecx + 2]
test ebx, ebx
jle 0x555e56
mov esi, dword [esp + 0x3c]
add esi, 4
nop
test edi, edi
jl 0x555f6e
cmp edi, ebx
jge 0x555f6e
mov edx, dword [esi]
cmp edx, eax
jge 0x555f73
cmp ecx, dword [esi + 0x20]
jl 0x555e37
test ebp, ebp
je 0x555f73
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 0x555e10
mov eax, dword [esp + 0x98]
lea edi, [ebx - 1]
or ecx, 0xffffffff
mov dword [esp + 0x8c], 1
test edi, edi
jl 0x555ed6
mov esi, dword [esp + 0x3c]
lea edx, [edi + edi*2]
shl edx, 4
lea esi, [edx + esi + 4]
test edi, edi
jl 0x555f6e
cmp edi, ebx
jge 0x555f6e
mov edx, dword [esi + 8]
mov ebp, edx
sub ebp, eax
test ebp, ebp
jle 0x555f7a
cmp ecx, dword [esi + 0x20]
jl 0x555eb2
cmp dword [esp + 0x8c], 0
je 0x555f7a
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 0x555e88
xor eax, eax
xor edi, edi
test ebx, ebx
jle 0x555f11
mov esi, dword [esp + 0x3c]
mov ebp, dword [sym.imp.USER32.dll_OffsetRect]
add esi, 4
jmp 0x555ef0
test edi, edi
jl 0x555f6e
cmp edi, ebx
jge 0x555f6e
mov ecx, dword [esi]
cmp ecx, eax
jge 0x555f06
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 0x555ef0
cmp eax, dword [esp + 0x98]
jle 0x556087
xor ebx, ebx
xor ebp, ebp
cmp dword [esp + 0x40], ebx
mov dword [esp + 0x8c], ebx
jle 0x555fe7
mov edi, dword [esp + 0x3c]
add edi, 0x28
lea ebx, [ebx]
test ebx, ebx
jl 0x555f6e
cmp ebx, dword [esp + 0x40]
jge 0x555f6e
mov esi, dword [edi - 0x28]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
push esi
push eax
call fcn.005551f0
test al, al
js 0x555f8a
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
jmp 0x555fcd
call fcn.0047b415
xor ebp, ebp
jmp 0x555e48
mov dword [esp + 0x8c], 0
jmp 0x555ec9
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esi]
push 0
push esi
push edx
call fcn.005551f0
mov edx, dword [ebx + 0x200]
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 0x555fc4
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 0x555f40
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x98]
dec edi
test edi, edi
jl 0x556087
mov ecx, dword [esp + 0x3c]
lea eax, [edi + edi*2]
shl eax, 4
lea ecx, [eax + ecx + 4]
test edi, edi
jl 0x555f6e
cmp edi, dword [esp + 0x40]
jge 0x555f6e
cmp dword [esp + 0x9c], 0
je 0x55602a
mov eax, dword [ecx + 0x10]
jmp 0x55602d
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx]
cmp eax, edx
jle 0x556035
mov eax, edx
sub edx, dword [ecx + 8]
add edx, esi
cmp eax, edx
jge 0x556040
mov eax, edx
mov ebx, dword [ecx + 0x28]
cmp eax, ebx
jge 0x556049
mov eax, ebx
mov edx, dword [ecx + 0x24]
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jge 0x556058
mov eax, esi
sub eax, edx
mov ebp, esi
sub ebp, eax
cmp ebp, edx
jl 0x556064
cmp eax, ebx
jge 0x55606d
mov edx, dword [esp + 0x40]
cmp edx, 1
jne 0x5560e8
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 0x556011
cmp dword [esp + 0x9c], 0
jne 0x55609a
lea ecx, [esp + 0x38]
call fcn.005553c0
xor ecx, ecx
xor esi, esi
cmp dword [esp + 0x40], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x8c], ecx
jle 0x5561a7
mov eax, dword [esp + 0x3c]
add eax, 0x10
mov dword [esp + 0x18], eax
test ecx, ecx
jl 0x555f6e
cmp ecx, dword [esp + 0x40]
jge 0x555f6e
cmp dword [esp + 0x9c], 0
mov esi, dword [eax - 0x10]
je 0x55612d
mov edi, dword [eax - 4]
sub edi, dword [eax - 0xc]
jmp 0x556132
lea eax, [edx - 1]
test eax, eax
jl 0x555f6e
cmp eax, edx
jge 0x555f6e
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.00555490
or eax, 0xffffffff
jmp 0x556412
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.005551f0
push eax
mov eax, dword [ebx + 0x200]
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 0x556169
mov eax, ecx
mov esi, dword [esp + 0xa4]
cmp esi, eax
jg 0x556183
mov esi, edx
test ebp, ebp
jne 0x55617c
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 0x5560c1
mov ecx, dword [esp + 0xa0]
cmp dword [ecx], 0
je 0x5563fc
xor ebp, ebp
cmp dword [esp + 0x40], ebp
jle 0x5563fc
test ebp, ebp
jl 0x555f6e
cmp ebp, dword [esp + 0x40]
jge 0x555f6e
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.005551f0
or eax, 0x40
test dword [edi + 0xec], 0x100000
mov dword [esp + 0x8c], eax
je 0x556339
cmp dword [esp + 0x9c], 0
mov edx, dword [esp + 0x40]
lea eax, [edx - 1]
je 0x5562b4
cmp ebp, eax
jne 0x556237
mov ecx, dword [esp + 0x98]
jmp 0x556255
lea ecx, [ebp + 1]
test ecx, ecx
jl 0x555f6e
cmp ecx, edx
jge 0x555f6e
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 0x556265
xor ecx, ecx
mov dword [esi], ecx
jmp 0x556331
lea ecx, [ebp - 1]
test ecx, ecx
jl 0x555f6e
cmp ecx, edx
jge 0x555f6e
mov eax, dword [esi]
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ebx
cmp dword [edx + 0xc], eax
jge 0x5562ab
test ecx, ecx
jl 0x555f6e
cmp ecx, dword [esp + 0x40]
jge 0x555f6e
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 0xc]
mov dword [esi], ecx
jmp 0x556331
mov ecx, eax
mov dword [esi], ecx
jmp 0x556331
cmp ebp, eax
jne 0x5562c1
mov ecx, dword [esp + 0x98]
jmp 0x5562df
lea ecx, [ebp + 1]
test ecx, ecx
jl 0x555f6e
cmp ecx, edx
jge 0x555f6e
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 0x5562ea
xor ecx, ecx
jmp 0x55632e
lea ecx, [ebp - 1]
test ecx, ecx
jl 0x555f6e
cmp ecx, edx
jge 0x555f6e
mov eax, dword [esi + 4]
lea edx, [ecx + ecx*2]
shl edx, 4
add edx, ebx
cmp dword [edx + 0x10], eax
jge 0x55632c
test ecx, ecx
jl 0x555f6e
cmp ecx, dword [esp + 0x40]
jge 0x555f6e
lea ecx, [ecx + ecx*2]
shl ecx, 4
add ecx, ebx
mov ecx, dword [ecx + 0x10]
jmp 0x55632e
mov ecx, eax
mov dword [esi + 4], ecx
or dword [esp + 0x8c], 1
cmp dword [esp + 0x9c], 0
je 0x55634a
mov ecx, dword [esi + 8]
sub ecx, dword [esi]
jmp 0x556350
mov ecx, dword [esi + 0xc]
sub ecx, dword [esi + 4]
mov eax, dword [esp + 0xa4]
mov edx, dword [edi]
mov edx, dword [edx + 0x200]
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.00555300
mov ecx, dword [edi + 0x190]
mov dword [ecx + 0x14], eax
push edi
lea ecx, [esp + 0x24]
call fcn.004dbff0
lea edx, [esp + 0x20]
push edx
mov ecx, ebx
call fcn.00485e9c
push esi
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
jne 0x5563ea
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0xa0]
push esi
push ecx
push edx
call fcn.0047d38e
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 0x5561c3
mov esi, dword [esp + 0xa4]
lea ecx, [esp + 0x38]
mov dword [esp + 0x84], 0xffffffff
call fcn.00555490
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