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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [0x1023c014]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
push esi
push edi
mov edi, dword [eax + 0x1c]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, edx
and eax, 0xf00000ff
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
cmp eax, 0xff
je 0x100cdd7b
cmp eax, 0xfe
je 0x100cdd7b
cmp eax, 0xfd
jne 0x100cd558
movups xmm0, xmmword [ecx]
lea ecx, [esp + 0x5c]
movups xmmword [esp + 0x80], xmm0
call sym.HncOfficeFramework.dll_public:_void___thiscall_CHDlgCtrlDrawCtx::constructor_void_
mov eax, dword [esp + 8]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x78], 0x50000000
mov dword [esp + 0x7c], 0
movups xmm0, xmmword [eax]
mov eax, dword [ebp + 0x10]
and eax, 0x30200
mov dword [esp + 0x74], eax
mov eax, dword [esi]
movups xmmword [esp + 0x64], xmm0
call dword [eax + 0x12c]
lea eax, [esp + 0x80]
mov edx, 8
push eax
push 0xa
mov ecx, eax
call fcn.100177a0
add esp, 8
test eax, eax
je 0x100cddd9
push 0x640000
lea eax, [esp + 0x84]
push eax
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
mov eax, dword [esp + 0x94]
add esp, 0xc
mov esi, dword [esp + 0x80]
dec eax
mov edi, dword [esp + 0x84]
inc esi
mov dword [esp + 8], eax
inc edi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x80]
push 0xffffff
push eax
push dword [esp + 0x20]
mov dword [esp + 0x90], edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
mov eax, dword [esp + 0x14]
add esp, 0xc
dec eax
inc esi
mov dword [esp + 0x88], eax
inc edi
mov eax, dword [esp + 0x14]
dec eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x80]
push 0xc8c81e
push eax
push dword [esp + 0x20]
mov dword [esp + 0x90], edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
lea eax, [esi + 1]
add esp, 0xc
mov dword [esp + 0x80], eax
lea eax, [edi + 1]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 8]
add eax, 0xfffffffe
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffffe
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x80]
push 0xffffff
push eax
push dword [esp + 0x20]
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
add esp, 0xc
jmp 0x100cddd9
cmp eax, 0xfc
je 0x100cdd19
cmp eax, 0xfb
je 0x100cdd19
and edx, 0xfffff00
or edx, eax
cmp eax, 0x10000000
ja 0x100cd7f0
je 0x100cd6a0
add eax, 0xfffffff8
cmp eax, 1
ja case.default.0x100cd80f
mov eax, dword [esi]
mov ecx, esi
push 0xf
mov eax, dword [eax + 0x2b0]
call eax
mov dword [esp + 0x80], eax
mov ecx, esi
mov eax, dword [esi]
push 0x14
mov eax, dword [eax + 0x2b0]
call eax
mov dword [esp + 0x84], eax
mov ecx, esi
mov eax, dword [esi]
push 0x10
mov eax, dword [eax + 0x2b0]
call eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x14]
movups xmm1, xmmword [eax]
movaps xmmword [esp + 0x40], xmm1
movaps xmm0, xmm1
psrldq xmm0, 8
psrldq xmm1, 0xc
movd esi, xmm0
movd ecx, xmm1
dec esi
add ecx, 0xfffffffe
mov edx, esi
sub edx, dword [esp + 0x40]
mov eax, ecx
sub eax, dword [esp + 0x44]
cmp edx, eax
mov dword [esp + 0x38], ecx
cmovge edx, eax
xor eax, eax
sub edx, 2
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
test edx, edx
jle 0x100cdd01
neg ecx
sub esi, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], esi
nop dword [eax]
test eax, eax
jle 0x100cd67a
lea edx, [eax + esi]
mov dword [esp + 8], eax
mov esi, dword [esp + 0x38]
mov dword [esp + 0x3c], edx
lea eax, [ecx + esi]
mov ecx, 3
cdq
idiv ecx
mov eax, dword [esp + edx*4 + 0x80]
push eax
push esi
push dword [esp + 0x44]
push edi
call dword [sym.imp.GDI32.dll_SetPixel]
mov ecx, dword [esp + 0x18]
dec esi
sub dword [esp + 8], 1
jne 0x100cd643
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
inc eax
inc ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ecx
cmp eax, edx
jl 0x100cd630
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 4]
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
push edx
push ecx
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [esp + 0xc]
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
push eax
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
neg ecx
push ecx
mov ecx, dword [eax]
lea eax, [esp + 0x84]
neg ecx
push ecx
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi]
mov ecx, esi
push 0xf
mov eax, dword [eax + 0x2b0]
call eax
push eax
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x10]
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
mov eax, dword [esp + 0x8c]
add esp, 0xc
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x20], eax
cmp eax, ecx
jg 0x100cd7a0
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
dec eax
nop dword [eax + eax]
mov esi, dword [esp + 0x84]
cmp esi, eax
jge 0x100cd795
nop dword [eax + eax]
mov eax, esi
push 0xffffff
push esi
and eax, 0x80000001
jns 0x100cd774
dec eax
or eax, 0xfffffffe
inc eax
add eax, edi
push eax
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetPixel]
mov eax, dword [esp + 0x8c]
inc esi
dec eax
cmp esi, eax
jl 0x100cd760
mov ecx, dword [esp + 0x88]
add edi, 2
cmp edi, ecx
jle 0x100cd750
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push 0xcc0020
push 0
push 0
push dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov edx, dword [esi]
sub eax, ecx
push eax
mov eax, dword [esi + 8]
sub eax, edx
push eax
push ecx
push edx
push edi
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x38]
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x100cddd9
cmp eax, 0x1000000e
ja 0x100cd9e8
je 0x100cd9ba
add eax, 0xefffffff
cmp eax, 6
ja case.default.0x100cd80f
jmp dword [eax*4 + 0x100cddf4]
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0xc]
sub edx, dword [eax + 4]
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
push edx
push ecx
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
push dword [esp + 0xc]
mov dword [esp + 0x40], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x14]
push eax
lea eax, [esp + 0x84]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 4]
neg ecx
push ecx
mov ecx, dword [eax]
lea eax, [esp + 0x84]
neg ecx
push ecx
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esi]
mov ecx, esi
push 0xf
mov eax, dword [eax + 0x2b0]
call eax
push eax
lea eax, [esp + 0x84]
push eax
push dword [esp + 0x10]
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
mov edx, dword [esp + 0x94]
add esp, 0xc
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x20], ecx
lea eax, [edx - 1]
cmp ecx, eax
jge 0x100cd912
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x84]
cmp esi, ecx
jg 0x100cd904
nop
mov eax, esi
push 0xffffff
push esi
and eax, 0x80000001
jns 0x100cd8e4
dec eax
or eax, 0xfffffffe
inc eax
add eax, edi
push eax
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SetPixel]
mov ecx, dword [esp + 0x8c]
inc esi
cmp esi, ecx
jle 0x100cd8d0
mov edx, dword [esp + 0x88]
add edi, 2
lea eax, [edx - 1]
cmp edi, eax
jl 0x100cd8c3
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
push 0xcc0020
push 0
push 0
push dword [esp + 0x14]
mov ecx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov edx, dword [esi]
sub eax, ecx
push eax
mov eax, dword [esi + 8]
sub eax, edx
push eax
push ecx
push edx
push edi
call dword [sym.imp.GDI32.dll_BitBlt]
push dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push dword [esp + 0x38]
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
jmp 0x100cddd9
mov eax, dword [esi]
push 0x10
push 4
push ecx
mov eax, dword [eax + 0x40]
mov ecx, esi
push edi
call eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc
test edx, 0x200
je 0x100cdd01
mov eax, dword [esi]
mov ecx, esi
push 0
mov eax, dword [eax + 0x2b0]
call eax
xor eax, 0xffffff
push eax
mov eax, dword [esp + 0x18]
push eax
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
add esp, 0xc
jmp 0x100cddd9
test edx, 0x800
jne 0x100cdd01
mov eax, dword [esi]
mov ecx, esi
push 0
mov eax, dword [eax + 0x2b0]
call eax
push eax
mov eax, dword [esp + 0x18]
push eax
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
add esp, 0xc
jmp 0x100cddd9
sub eax, 0x20000000
je 0x100cdc08
sub eax, 1
je 0x100cdb12
sub eax, 1
je 0x100cda25
mov eax, dword [esi]
push edx
push 3
push ecx
mov eax, dword [eax + 0x40]
mov ecx, esi
push edi
call eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x2b0]
test edx, 0x100
je 0x100cda3b
push 0x10
jmp 0x100cda3d
push 7
call eax
mov dword [esp + 0x1c], eax
mov ecx, esi
mov eax, dword [esp + 0x14]
push 0x10
movups xmm0, xmmword [eax]
mov eax, dword [esi]
movaps xmmword [esp + 0x84], xmm0
movaps xmmword [esp + 0x44], xmm0
mov eax, dword [eax + 0x2b0]
call eax
push eax
lea eax, [esp + 0x44]
push eax
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFrameRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
movaps xmm1, xmmword [esp + 0x8c]
add esp, 0xc
movaps xmm0, xmm1
movd ecx, xmm1
psrldq xmm0, 8
movd eax, xmm0
movaps xmm0, xmm1
psrldq xmm0, 0xc
psrldq xmm1, 4
sub eax, ecx
mov dword [esp + 0x18], 1
cdq
sub eax, edx
mov esi, eax
movd eax, xmm0
sar esi, 1
add esi, ecx
movd ecx, xmm1
sub eax, ecx
inc ecx
cdq
sub eax, edx
sar eax, 1
sub eax, esi
add ecx, eax
mov eax, 1
mov dword [esp + 0x20], ecx
nop dword [eax]
push dword [esp + 0x1c]
push 1
push eax
lea eax, [ecx + esi]
push eax
push esi
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____int__int__int__int__unsigned_long_int_
mov eax, dword [esp + 0x30]
add esp, 0x18
mov ecx, dword [esp + 0x20]
add eax, 2
dec esi
mov dword [esp + 0x18], eax
cmp eax, 7
jl 0x100cdad0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x2b0]
test edx, 0x100
je 0x100cdb28
push 0x10
jmp 0x100cdb2a
push 7
call eax
mov dword [esp + 0x1c], eax
mov ecx, esi
mov eax, dword [esp + 0x14]
push 0x10
movups xmm0, xmmword [eax]
mov eax, dword [esi]
movaps xmmword [esp + 0x44], xmm0
movaps xmmword [esp + 0x84], xmm0
mov eax, dword [eax + 0x2b0]
call eax
push eax
lea eax, [esp + 0x84]
push eax
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFrameRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
movaps xmm1, xmmword [esp + 0x4c]
add esp, 0xc
movaps xmm0, xmm1
mov dword [esp + 0x18], 0
psrldq xmm0, 0xc
mov esi, 1
psrldq xmm1, 4
movd ecx, xmm1
movd eax, xmm0
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
dec eax
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x88]
sub eax, dword [esp + 0x80]
cdq
sub eax, edx
mov edx, eax
sar edx, 1
add edx, dword [esp + 0x80]
xor eax, eax
mov dword [esp + 8], edx
nop dword [eax + eax]
push dword [esp + 0x1c]
add eax, dword [esp + 0x24]
push 1
push esi
push eax
push edx
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____int__int__int__int__unsigned_long_int_
mov eax, dword [esp + 0x30]
add esi, 2
mov edx, dword [esp + 0x20]
inc eax
dec edx
mov dword [esp + 0x30], eax
add esp, 0x18
mov dword [esp + 8], edx
cmp esi, 7
jl 0x100cdbc0
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x2b0]
test edx, 0x100
je 0x100cdc1e
push 0x10
jmp 0x100cdc20
push 7
call eax
mov dword [esp + 0x1c], eax
mov ecx, esi
mov eax, dword [esp + 0x14]
push 0x10
movups xmm0, xmmword [eax]
mov eax, dword [esi]
movaps xmmword [esp + 0x44], xmm0
movaps xmmword [esp + 0x84], xmm0
mov eax, dword [eax + 0x2b0]
call eax
push eax
lea eax, [esp + 0x84]
push eax
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFrameRect_struct_HDC_____struct_tagRECT_const___unsigned_long_int_
movaps xmm1, xmmword [esp + 0x4c]
add esp, 0xc
movaps xmm0, xmm1
movd ecx, xmm1
psrldq xmm0, 8
movd eax, xmm0
push 7
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add ecx, eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x88]
sub eax, ecx
add eax, 4
inc ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov ecx, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x2b0]
call eax
mov esi, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x1c]
push 4
push 1
add eax, 0xfffffffa
push eax
push esi
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____int__int__int__int__unsigned_long_int_
mov ecx, dword [esp + 0x30]
add esp, 0x18
mov eax, 1
sub ecx, esi
mov dword [esp + 8], eax
mov dword [esp + 0x18], ecx
push dword [esp + 0x1c]
push 1
push eax
lea eax, [ecx + esi]
push eax
push esi
push edi
call sym.HncOfficeFramework.dll_void___cdecl_HFillSolidRect_struct_HDC_____int__int__int__int__unsigned_long_int_
mov eax, dword [esp + 0x20]
add esp, 0x18
mov ecx, dword [esp + 0x18]
add eax, 2
dec esi
mov dword [esp + 8], eax
cmp eax, 7
jl 0x100cdcd7
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x94]
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc
lea ecx, [esp + 0x5c]
call sym.HncOfficeFramework.dll_public:_void___thiscall_CHDlgCtrlDrawCtx::constructor_void_
mov eax, dword [esp + 8]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x14]
push ecx
mov ecx, esi
mov dword [esp + 0x78], 0x50000000
mov dword [esp + 0x7c], 0
movups xmm0, xmmword [eax]
mov eax, dword [ebp + 0x10]
and eax, 0x30200
mov dword [esp + 0x74], eax
mov eax, dword [esi]
movups xmmword [esp + 0x64], xmm0
call dword [eax + 0x12c]
xor eax, eax
cmp dword [esp + 0x1c], 0xfc
sete al
push eax
push dword [esp + 0x18]
push edi
call fcn.100cde10
jmp 0x100cddd9
movups xmm0, xmmword [ecx]
mov eax, dword [esp + 8]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x5c], eax
and edx, 0x30200
mov eax, dword [esi]
push ecx
mov ecx, esi
mov dword [esp + 0x80], 0
movups xmmword [esp + 0x64], xmm0
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], 0x50000000
mov dword [esp + 0x7c], 0
call dword [eax + 0x12c]
xor eax, eax
mov ecx, esi
cmp dword [esp + 0x1c], 0xff
sete al
push eax
push dword [esp + 0x18]
push edi
call fcn.100cdf90
mov ecx, dword [esp + 0x9c]
mov eax, 1
pop edi
pop esi
xor ecx, esp
call fcn.1008548c
mov esp, ebp
pop ebp
ret 0xc