Function at 0x1400dd870
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x208
mov qword [rsp + 0x1d0], 0xfffffffffffffffe
mov rax, qword [0x1404e41f8]
xor rax, rsp
mov qword [rsp + 0x1f8], rax
mov ecx, reloc.WS2_32.dll_shutdown
call qword [sym.imp.USER32.dll_GetSysColor]
cmp eax, 0xffffff
jne 0x1400dd8c8
mov ecx, recv
call qword [sym.imp.USER32.dll_GetSysColor]
test eax, eax
jne 0x1400dd8c8
mov dword [rsp + 0x1d8], 1
jmp 0x1400dd8d3
mov dword [rsp + 0x1d8], 0
mov rcx, qword [rsp + 0x210]
mov eax, dword [rsp + 0x1d8]
mov dword [rcx + reloc.mfc90u.dll_CDataSourceControl::CDataSourceControl], eax
mov ecx, reloc.WS2_32.dll_setsockopt
call qword [sym.imp.USER32.dll_GetSysColor]
test eax, eax
jne 0x1400dd916
mov ecx, recv
call qword [sym.imp.USER32.dll_GetSysColor]
cmp eax, 0xffffff
jne 0x1400dd916
mov dword [rsp + 0x1dc], 1
jmp 0x1400dd921
mov dword [rsp + 0x1dc], 0
mov rcx, qword [rsp + 0x210]
mov eax, dword [rsp + 0x1dc]
mov dword [rcx + 0x27c], eax
xor edx, edx
lea rcx, [rsp + 0x20]
call sub.mfc90u.dll_CStdioFile::CStdioFile
nop
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x254], r11d
mov ecx, recv
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x20], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x20]
mov dword [rcx + 0x54], eax
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x24], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x24]
mov dword [rcx + 0x58], eax
mov ecx, reloc.WS2_32.dll_setsockopt
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x34], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x34]
mov dword [rcx + 0x60], eax
mov ecx, reloc.WS2_32.dll_shutdown
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x38], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x38]
mov dword [rcx + 0x64], eax
mov ecx, socket
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x28], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x28]
mov dword [rcx + 0x5c], eax
mov ecx, setsockopt
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x2c], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x2c]
mov dword [rcx + 0x68], eax
mov ecx, setsockopt
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x3c], r11d
mov ecx, 6
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x30], r11d
mov ecx, recv
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x40], r11d
mov ecx, recv
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x44], r11d
mov ecx, 5
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x6c], r11d
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x6c]
mov dword [rcx + 0x50], eax
mov ecx, 8
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x70], r11d
mov ecx, 9
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x74], r11d
mov ecx, 7
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x78], r11d
mov ecx, 2
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x7c], r11d
mov ecx, 3
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x80], r11d
mov rax, qword [rsp + 0x210]
cmp dword [rax + 0x240], 0
jne 0x1400ddbc4
mov rax, qword [rsp + 0x210]
cmp dword [rax + 0x244], 0
je 0x1400ddbfb
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x7c]
mov dword [rcx + 0x84], eax
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x80]
mov dword [rcx + 0x88], eax
jmp 0x1400ddc35
mov ecx, 0x1b
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x84], r11d
mov ecx, 0x1c
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x88], r11d
mov ecx, 0xa
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x90], r11d
mov ecx, reloc.WS2_32.dll_inet_addr
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x94], r11d
mov ecx, reloc.WS2_32.dll_send
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x8c], r11d
mov dword [rsp + 0x50], ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,class ATL::ChTraitsCRT<wchar_t> > >
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov rax, qword [rsp + 0x210]
cmp dword [rax + reloc.mfc90u.dll_CDataSourceControl::CDataSourceControl], 0
je 0x1400ddcde
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x48], eax
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x70]
mov dword [rcx + 0x4c], eax
jmp 0x1400ddd2e
cmp dword [rsp + 0x54], 5
jb 0x1400ddd10
mov ecx, 0x1a
call qword [sym.imp.USER32.dll_GetSysColor]
mov r11d, eax
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x48], r11d
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x4c], 0xff0000
jmp 0x1400ddd2e
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x48], 0xff0000
mov rax, qword [rsp + 0x210]
mov dword [rax + 0x4c], 0xff00ff
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetSysColorBrush]
mov r11, rax
mov rax, qword [rsp + 0x210]
mov qword [rax + 0x10], r11
mov ecx, socket
call qword [sym.imp.USER32.dll_GetSysColorBrush]
mov r11, rax
mov rax, qword [rsp + 0x210]
mov qword [rax + 8], r11
mov ecx, 5
call qword [sym.imp.USER32.dll_GetSysColorBrush]
mov r11, rax
mov rax, qword [rsp + 0x210]
mov qword [rax + 0x18], r11
mov rcx, qword [rsp + 0x210]
add rcx, 0x98
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x20]
mov dword [rsp + 0x190], eax
mov ecx, dword [rsp + 0x190]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0x98
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0x108
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x54]
mov dword [rsp + 0x194], eax
mov ecx, dword [rsp + 0x194]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0x108
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0xd8
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x7c]
mov dword [rsp + 0x198], eax
mov ecx, dword [rsp + 0x198]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xd8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0xe8
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x80]
mov dword [rsp + 0x19c], eax
mov ecx, dword [rsp + 0x19c]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xe8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0xa8
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x40]
mov dword [rsp + 0x1a0], eax
mov ecx, dword [rsp + 0x1a0]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xa8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0xc8
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x34]
mov dword [rsp + 0x1a4], eax
mov ecx, dword [rsp + 0x1a4]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xc8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0xf8
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11, qword [rsp + 0x210]
mov eax, dword [r11 + 0x6c]
mov dword [rsp + reloc.mfc90u.dll_CGopherLocator::CGopherLocator], eax
mov ecx, dword [rsp + reloc.mfc90u.dll_CGopherLocator::CGopherLocator]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xf8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0x118
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11d, dword [0x1404e6230]
mov dword [rsp + 0x1ac], r11d
mov r8d, dword [rsp + 0x1ac]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreatePen]
mov rcx, qword [rsp + 0x210]
add rcx, 0x118
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0x128
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11d, dword [0x1404e6244]
mov dword [rsp + 0x1b0], r11d
mov r8d, dword [rsp + 0x1b0]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreatePen]
mov rcx, qword [rsp + 0x210]
add rcx, 0x128
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rcx, qword [rsp + 0x210]
add rcx, 0x138
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov r11d, dword [0x1404e6248]
mov dword [rsp + 0x1b4], r11d
mov r8d, dword [rsp + 0x1b4]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.GDI32.dll_CreatePen]
mov rcx, qword [rsp + 0x210]
add rcx, 0x138
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
mov rax, qword [rsp + 0x210]
add rax, 0xb8
mov qword [rsp + 0x1b8], rax
cmp qword [rsp + 0x1b8], 0
jne 0x1400de0a8
mov qword [rsp + 0x1e0], 0
jmp 0x1400de0bc
mov rax, qword [rsp + 0x1b8]
mov rax, qword [rax + 8]
mov qword [rsp + 0x1e0], rax
cmp qword [rsp + 0x1e0], 0
je 0x1400de0db
mov rcx, qword [rsp + 0x210]
add rcx, 0xb8
call sub.mfc90u.dll_DDX_FieldCBStringExact_1
mov rax, qword [rsp + 0x210]
cmp dword [rax + 0x254], 8
jle 0x1400de240
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x20]
and rax, 0xff
movzx r8d, al
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x28]
and rax, 0xff
movzx edx, al
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x20]
and rax, 0xff
movzx ecx, al
mov eax, edx
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r8d
add eax, ecx
movzx r9d, al
mov rax, qword [rsp + 0x210]
movzx eax, word [rax + 0x20]
sar eax, 8
cdqe
and rax, 0xff
movzx r8d, al
mov rax, qword [rsp + 0x210]
movzx eax, word [rax + 0x28]
sar eax, 8
cdqe
and rax, 0xff
movzx edx, al
mov rax, qword [rsp + 0x210]
movzx eax, word [rax + 0x20]
sar eax, 8
cdqe
and rax, 0xff
movzx ecx, al
mov eax, edx
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r8d
add eax, ecx
movzx eax, al
shl eax, 8
or r9d, eax
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x20]
shr eax, 0x10
mov eax, eax
and rax, 0xff
movzx r8d, al
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x28]
shr eax, 0x10
mov eax, eax
and rax, 0xff
movzx edx, al
mov rax, qword [rsp + 0x210]
mov eax, dword [rax + 0x20]
shr eax, 0x10
mov eax, eax
and rax, 0xff
movzx ecx, al
mov eax, edx
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov eax, r8d
add eax, ecx
movzx ecx, al
shl ecx, 0x10
mov eax, r9d
or eax, ecx
mov dword [rsp + 0x170], eax
mov ecx, dword [rsp + 0x170]
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xb8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
jmp 0x1400de355
lea rax, [rsp + 0x20]
mov qword [rsp + 0x1c0], rax
cmp qword [rsp + 0x1c0], 0
jne 0x1400de266
mov qword [rsp + 0x1e8], 0
jmp 0x1400de27a
mov rax, qword [rsp + 0x1c0]
mov rax, qword [rax + 8]
mov qword [rsp + 0x1e8], rax
mov rdx, qword [rsp + 0x1e8]
mov rcx, qword [rsp + 0x210]
call fcn.1400de520
mov qword [rsp + reloc.mfc90u.dll_CDialog::CDialog], rax
lea rax, vtable.CGdiObject.0
mov qword [rsp + 0x180], rax
mov qword [rsp + reloc.mfc90u.dll_CDynLinkLibrary::CDynLinkLibrary], 0
lea rax, vtable.CBitmap.0
mov qword [rsp + 0x180], rax
mov rdx, qword [rsp + reloc.mfc90u.dll_CDialog::CDialog]
lea rcx, [rsp + 0x180]
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
lea r11, [rsp + 0x180]
mov qword [rsp + 0x1c8], r11
cmp qword [rsp + 0x1c8], 0
jne 0x1400de2ff
mov qword [rsp + 0x1f0], 0
jmp 0x1400de313
mov rax, qword [rsp + 0x1c8]
mov rax, qword [rax + 8]
mov qword [rsp + 0x1f0], rax
mov rcx, qword [rsp + 0x1f0]
call qword [sym.imp.GDI32.dll_CreatePatternBrush]
mov rcx, qword [rsp + 0x210]
add rcx, 0xb8
mov rdx, rax
call sub.mfc90u.dll_COleControl::AmbientScaleUnits
nop
lea rax, vtable.CBitmap.0
mov qword [rsp + 0x180], rax
lea rcx, [rsp + 0x180]
call fcn.140002370
call fcn.1402122b0
mov dword [0x1404e7e94], 1
lea rcx, [rsp + 0x20]
call sub.mfc90u.dll_CSocket::CSocket
mov rcx, qword [rsp + 0x1f8]
xor rcx, rsp
call fcn.1403addc0
add rsp, 0x208
ret