Function at 0x4ab020
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59335d
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x6340c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x60], eax
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
cmp byte [esi + 0x30], 0
jne 0x4ab38d
cmp dword [esi + 0x14], 0x10
mov eax, dword [edi + 4]
mov eax, dword [eax + 4]
mov ecx, dword [eax + edi + 8]
mov eax, esi
jb 0x4ab08f
mov eax, dword [esi]
push eax
call fcn.0054c370
mov dword [ebp - 0x58], eax
test eax, eax
jne 0x4ab0ca
cmp dword [esi + 0x14], 0x10
jb 0x4ab0a4
mov esi, dword [esi]
push esi
push str.Unable_to_find_control_for_the_given_id:__s
push 0x45
push 0x218
push str.C:drone_srcGUIWindowsDynamicLayout.h
push str.CDynamicLayout_class_CZTNAPrefsTab_::getMetrics
call fcn.00573940
add esp, 0x18
xor al, al
jmp 0x4ab38f
test edi, edi
mov dword [ebp - 0x48], 0
mov eax, 4
mov dword [ebp - 0x44], 0
lea ebx, [edi - 0x60]
cmove ebx, eax
lea ecx, [esi + 0x18]
cmp dword [ecx + 0x14], 0x10
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebx]
mov dword [ebp - 0x4c], eax
mov eax, ecx
mov dword [ebp - 0x40], ecx
jb 0x4ab103
mov eax, dword [ecx]
mov dword [ebp - 0x40], eax
test eax, eax
jne 0x4ab10b
xor edi, edi
jmp 0x4ab150
push eax
call fcn.004d40c0
add esp, 4
lea ebx, [eax + 1]
cmp ebx, 0x3fffffff
jg 0x4ab14b
lea eax, [ebx + ebx]
call fcn.004c6740
mov edi, esp
test edi, edi
je 0x4ab14b
push ebx
push edi
push 0xffffffffffffffff
push dword [ebp - 0x40]
xor eax, eax
push eax
push 3
mov word [edi], ax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor ecx, ecx
test eax, eax
cmove edi, ecx
jmp 0x4ab14d
xor edi, edi
mov ebx, dword [ebp - 0x54]
mov ecx, edi
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ab170
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [ebp - 0x28]
call fcn.004459d0
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0
call fcn.005210b0
mov dword [ebp - 4], 0xffffffff
add esp, 4
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 0x39], al
cmp ecx, 8
jb 0x4ab1ca
lea ecx, [ecx*2 + 2]
push ecx
push dword [ebp - 0x28]
call fcn.00446620
mov al, byte [ebp - 0x39]
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], cx
test al, al
jne 0x4ab210
push ecx
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GuiUtils::CalculateTextSize
push 0x45
push 0x224
push str.C:drone_srcGUIWindowsDynamicLayout.h
push str.CDynamicLayout_class_CZTNAPrefsTab_::getMetrics
call fcn.00573980
add esp, 0x20
xor al, al
jmp 0x4ab38f
lea eax, [ebp - 0x38]
xorps xmm0, xmm0
push eax
push dword [ebx]
movups xmmword [ebp - 0x38], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebx, dword [ebp - 0x30]
mov edi, 0xf
sub ebx, dword [ebp - 0x38]
cmp byte [esi + 0x31], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x50], 0xa
mov dword [ebp - 0x4c], 0x64
je 0x4ab25b
push 0x47
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx]
mov esi, dword [ecx + 0xc]
mov ecx, esi
call dword [0x5c3794]
mov ecx, dword [ebp - 0x58]
call esi
cmp eax, 8
ja case.0x4ab279.2
jmp dword [eax*4 + 0x4ab3b0]
mov eax, 0x258
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x48]
cmp eax, ebx
jle 0x4ab2b4
test eax, eax
jle 0x4ab2b4
sub esp, 0x18
mov ebx, 0x190
mov ecx, esp
push dword [ebp - 0x5c]
call fcn.0044a800
push 0x4e
call fcn.004726a0
mov edi, eax
imul edi, dword [ebp - 0x44]
jmp case.0x4ab279.2
mov ebx, eax
mov edi, 0x14
jmp case.0x4ab279.2
mov dword [ebp - 0x50], 0xc8
mov edi, 0x14
mov dword [ebp - 0x40], 0xfffffffe
jmp case.0x4ab279.2
mov edi, 0x64
mov dword [ebp - 0x4c], 0x96
mov ebx, 0xfa
jmp case.0x4ab279.2
mov edi, 0x14
mov dword [ebp - 0x50], 0xc8
push edi
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x40], 0xfffffffd
lea eax, [ecx + eax*2]
jmp 0x4ab329
add dword [ebp - 0x48], 0xe
mov edi, 0x19
mov dword [ebp - 0x50], 0x4b
jmp case.0x4ab279.2
push 0x47
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebp - 0x48]
add ecx, 0x14
add eax, ecx
mov dword [ebp - 0x48], eax
call fcn.005211b0
mov eax, dword [ebp - 0x48]
movaps xmm1, xmm0
cmp eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x60]
cmovle eax, dword [ebp - 0x50]
cvttss2si ecx, xmm0
cmp eax, ebx
cmovl ebx, eax
movd xmm0, dword [ebp - 0x54]
mov eax, ecx
imul eax, ebx
mov ebx, dword [ebp - 0x4c]
cvtdq2ps xmm0, xmm0
mov dword [edx], eax
mov eax, dword [ebp - 0x44]
cmp eax, edi
cmovle eax, edi
mulss xmm0, xmm1
cmp eax, ebx
cmovl ebx, eax
cvttss2si eax, xmm0
movd xmm0, dword [ebp - 0x40]
cvtdq2ps xmm0, xmm0
mov dword [edx + 8], eax
imul ecx, ebx
mulss xmm0, xmm1
cvttss2si eax, xmm0
mov dword [edx + 4], ecx
mov dword [edx + 0xc], eax
mov al, 1
lea esp, [ebp - 0x70]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c59c5
mov esp, ebp
pop ebp
ret 8