Function at 0x46cd20
Capabilities:
Check os version
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1dc
mov eax, dword [0x4e5070]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc0], eax
push ebx
mov ebx, ecx
push esi
push edi
test eax, eax
je 0x46d149
mov dword [ebx + 0x14], eax
lea eax, [ebp - 0x14]
push eax
call fcn.0046d1a0
mov esi, dword [0x4e90f8]
test esi, esi
je 0x46cd6e
mov ecx, 0x45
lea edi, [ebp - 0x1d8]
rep movsd dword es:[edi], dword [esi]
jmp 0x46cd9a
push 0x114
call fcn.00493133
add esp, 4
mov esi, eax
mov dword [0x4e90f8], esi
push 0x114
push 0
push esi
call fcn.00498020
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.DLL_GetVersionExW]
cmp dword [ebp + 0xc], 0
je 0x46ce1c
mov ecx, dword [ebx + 0x14]
cmp byte [ecx + 0xd72], 0
je 0x46cdc8
cmp dword [ebp - 0x1d4], 5
jne 0x46cdc8
cmp dword [ebp - 0x1d0], 2
mov dword [ebp - 0xb8], 0xc0000080
je 0x46cdd2
mov dword [ebp - 0xb8], 0xc0000084
xorps xmm0, xmm0
movups xmmword [ebp - 0x24], xmm0
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d15c
mov eax, dword [ecx + 0x40]
lea ecx, [ebp - 0x24]
push ecx
push dword [eax + 4]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 0x24]
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
add edi, dword [ebp - 0x24]
mov dword [ebp - 0xbc], ecx
mov ecx, dword [ebp - 0x10]
add ecx, dword [ebp - 0x20]
add esi, dword [ebp - 0x20]
mov dword [ebp - 0xb4], ecx
jmp 0x46ce71
mov eax, dword [ebx + 0x14]
cmp byte [eax + 0xd72], 0
je 0x46ce4f
cmp dword [ebp - 0x1d4], 5
jne 0x46ce4f
cmp dword [ebp - 0x1d0], 2
jne 0x46ce4f
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xb8], 0x40000080
mov dword [ebp - 0xb4], ecx
jmp 0x46ce62
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0xb8], 0x40000084
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov dword [ebp - 0xbc], eax
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d164
mov edx, dword [ecx + 0x40]
mov ecx, dword [ebp - 0xb4]
sub esi, ecx
mov eax, dword [ebp - 0xbc]
sub edi, eax
push ecx
push esi
push edi
push ecx
push eax
push 0
push dword [ebp - 0xb8]
mov ecx, ebx
mov dword [ebp - 0xb4], esi
push 0
push dword [edx + 4]
call fcn.00428ab0
mov ecx, dword [ebx + 0x14]
mov esi, dword [ecx + 0xc34]
cmp esi, 0xffffffff
je 0x46cee0
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d16e
mov eax, dword [ecx + 0x40]
push esi
mov ecx, eax
call fcn.00422dd0
mov eax, dword [eax + 4]
test eax, eax
jne 0x46cefd
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d176
mov eax, dword [ecx + 0x40]
mov ecx, eax
call fcn.00422cf0
mov eax, dword [eax + 4]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 1
push eax
push 0x30
push dword [ebx + 4]
call esi
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x46cfa7
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], eax
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d17e
mov eax, dword [ecx + 0x40]
mov ecx, dword [ebx + 0x14]
push dword [ecx + 0xc34]
mov ecx, eax
call fcn.00422f50
mov ecx, dword [ebp - 8]
mov edx, dword [eax + 0x50]
cmp edx, ecx
jge 0x46cf68
mov eax, ecx
sub eax, edx
cdq
sub eax, edx
sar eax, 1
add dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x14]
movups xmm0, xmmword [eax + 0xc3c]
movd eax, xmm0
movups xmmword [ebp - 0x24], xmm0
test eax, eax
je 0x46cf84
inc eax
mov dword [ebp - 0x14], eax
jmp 0x46cf8b
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x1c]
sub dword [ebp - 0xc], eax
lea eax, [ebp - 0x14]
sub ecx, dword [ebp - 0x18]
push eax
push 0
push 0xb4
push dword [ebx + 4]
mov dword [ebp - 8], ecx
call esi
mov eax, dword [ebx + 0x14]
push 0
push dword [eax + 0xd6c]
push 0xc5
push dword [ebx + 4]
call esi
mov eax, dword [ebx + 0x14]
cmp byte [eax + 0xd72], 0
je 0x46cfdc
movzx eax, word [eax + 0xd76]
push 0
push eax
push 0xcc
push dword [ebx + 4]
call esi
mov ecx, dword [ebx + 0x14]
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ecx]
call dword [eax + 0x30]
push dword [eax + 4]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xb0], vtable.UiLib::CDuiString.0
cmp eax, ecx
je 0x46d01a
push eax
call fcn.0049b90f
add esp, 4
push 0
push 0
push 0xb9
push dword [ebx + 4]
call esi
push 0
push 3
push 0xd3
push dword [ebx + 4]
call esi
mov ecx, dword [ebx + 0x14]
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d186
mov al, byte [ecx + 0x236]
xor ecx, ecx
cmp al, 1
sete cl
push ecx
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [ebx + 0x14]
xor ecx, ecx
push 0
cmp byte [eax + 0xd70], 1
sete cl
push ecx
push 0xcf
push dword [ebx + 4]
call esi
push 0xfffffffffffffff0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [ebp - 0xc0]
mov ecx, dword [ecx + 0x1a2c]
or ecx, eax
push ecx
push 0xfffffffffffffff0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 5
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp + 0xc], 0
jne 0x46d0b8
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [ebx + 0x14]
cmp byte [ecx + 0xd71], 0
je 0x46d0cb
mov byte [ebx + 0xa4], 1
lea eax, [ebp - 0xb0]
push eax
call fcn.0046fb90
push 0xffffffffffffffff
lea ecx, [ebx + 0x1c]
push dword [eax + 4]
call fcn.00429c90
mov eax, dword [ebp - 0xac]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xb0], vtable.UiLib::CDuiString.0
cmp eax, ecx
je 0x46d107
push eax
call fcn.0049b90f
add esp, 4
mov ecx, dword [ebx + 0x14]
mov al, byte [ecx + 0xd74]
mov byte [ebx + 0xa6], al
mov al, byte [ecx + 0xd75]
mov byte [ebx + 0xa7], al
mov byte [ebx + 0xa5], 1
mov eax, dword [ecx]
cmp eax, vtable.UiLib::CEditUI.0
jne 0x46d193
mov eax, dword [ecx + 0x40]
push ecx
push 0
push 0
push 0x4d2ac8
push dword [ebx + 0x14]
mov ecx, eax
call fcn.004229a0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00493122
mov esp, ebp
pop ebp
ret 8
call dword [eax + 0x1c]
jmp 0x46cde9
call dword [eax + 0x1c]
mov edx, eax
jmp 0x46ce84
call dword [eax + 0x1c]
jmp 0x46ced1
call dword [eax + 0x1c]
jmp 0x46cef3
call dword [eax + 0x1c]
jmp 0x46cf42
mov eax, dword [eax + 0x10c]
call eax
jmp 0x46d04c
call dword [eax + 0x1c]
jmp 0x46d135