Function at 0x545de0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [0x890438]
test eax, eax
je 0x545e0d
lea edx, [ebp - 0x4c]
mov dword [esp], 0xffffffff
mov dword [esp + 4], edx
call eax
sub esp, 8
test eax, eax
jne 0x546538
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x58], 0
lea eax, [ebp - 0x30]
mov dword [ebp - 0x1c], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
sub esp, 4
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x369
xor eax, eax
mov dword [esp + 4], str.GetSystemInfo_failed_to_return_a_valid__of_processors_n
mov esi, dword [ebp - 0x1c]
test esi, esi
setne al
mov dword [esp], eax
call fcn.00543700
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x36d
mov dword [esp + 4], str.GetCurrentThread_failed_n
mov dword [esp], 1
call fcn.00543700
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x36f
mov dword [esp + 4], str.GetCurrentProcess_failed_n
mov dword [esp], 1
call fcn.00543700
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x371
lea eax, [ebp - 0x50]
mov dword [esp + 8], eax
lea eax, [ebp - 0x54]
mov dword [esp + 4], eax
mov dword [esp], 0xffffffff
call dword [sym.imp.kernel32.dll_GetProcessAffinityMask]
sub esp, 0xc
test eax, eax
setne al
mov dword [esp + 4], str.GetProcessAffinityMask_failed_n
movzx eax, al
mov dword [esp], eax
call fcn.00543700
call fcn.0057d110
mov ebx, dword [sym.imp.kernel32.dll_SetThreadAffinityMask]
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x373
mov eax, dword [ebp - 0x54]
mov dword [esp], 0xfffffffe
mov dword [esp + 4], eax
call ebx
sub esp, 8
mov dword [esp + 4], str.SetThreadAffinityMask_failed_n
cmp dword [ebp - 0x54], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00543700
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x375
mov eax, dword [ebp - 0x54]
mov dword [esp], 0xfffffffe
add eax, 1
mov dword [esp + 4], eax
call ebx
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.SetThreadAffinityMask_passed_for_an_illegal_processor_n
movzx eax, al
mov dword [esp], eax
call fcn.00543700
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0xfffffffe
call ebx
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov ecx, ebx
mov dword [eax], 0x5f810b
or ecx, dword [0x8f0770]
mov dword [eax + 4], 0x379
mov eax, 1
je 0x545fb4
xor eax, eax
cmp dword [ebp - 0x54], ebx
sete al
mov dword [esp + 4], str.SetThreadAffinityMask_thread__1__failed_to_request_all_processors._n
mov dword [esp], eax
call fcn.00543700
cmp dword [ebp - 0x54], ebx
jne 0x54601e
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0xffffffff
mov dword [esp + 0xc], 4
mov dword [esp + 8], eax
mov dword [esp + 4], 4
mov dword [esp], 0xfffffffe
call dword [0x890404]
sub esp, 0x10
mov ebx, eax
mov eax, 0x381
call fcn.00542db0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Expected_STATUS_SUCCESS_in_NtSetInformationThread__got__lx_n
mov dword [esp], eax
call fcn.00543700
mov edi, dword fs:[0x18]
mov esi, dword [sym.imp.kernel32.dll_SetThreadIdealProcessor]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 4], 0
mov dword [esp], 0xfffffffe
call esi
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x38f
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Unexpected_return_value__lu._n
mov dword [esp], eax
call fcn.00543700
mov ebx, dword [ebp - 0x4c]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 4], 0x21
test ebx, ebx
mov dword [esp], 0xfffffffe
je 0x546590
call esi
mov ecx, dword [ebp - 0x58]
xor edi, edi
sub esp, 8
mov ebx, eax
test ecx, ecx
jne 0x5465d0
call fcn.0057d110
mov ecx, dword [eax + 0x10]
mov dword [eax + 0x14], 1
add ecx, ecx
or ecx, edi
mov dword [eax + 0x10], ecx
jmp 0x5460fe
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x396
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.Unexpected_return_value__lu._n
call fcn.00543700
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x5460c8
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 4], 0x41
mov dword [esp], 0xfffffffe
call esi
sub esp, 8
mov ebx, eax
mov eax, 0x39a
call fcn.00542db0
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_return_value__lu._n
mov dword [esp], eax
call fcn.00543700
mov eax, 0x39b
call fcn.00542db0
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.Unexpected_error__ld._n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00543700
mov dword [esp + 4], 0x20
mov dword [esp], 0xfffffffe
call esi
sub esp, 8
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5f810b
mov dword [eax + 4], 0x3a6
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Unexpected_return_value__lu._n
mov dword [esp], eax
call fcn.00543700
mov edi, dword [0x89040c]
test edi, edi
je 0x546570
mov esi, dword [0x890408]
test esi, esi
je 0x546570
mov eax, 0x3ae
lea edi, [ebp - 0x48]
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
call fcn.00542db0
mov dword [esp + 4], edi
mov dword [esp], 0xfffffffe
call dword [0x89040c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], str.GetThreadGroupAffinity_failed_n
mov ebx, dword fs:[0x18]
call fcn.00543700
mov dword [ebx + 0x34], 0xdeadbeef
mov eax, 0x3b1
call fcn.00542db0
mov dword [esp + 4], 0
mov dword [esp], 0xfffffffe
call dword [0x89040c]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.GetThreadGroupAffinity_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.00543700
mov eax, 0x3b2
call fcn.00542db0
mov edx, dword [ebx + 0x34]
mov eax, 1
cmp edx, 0x57
je 0x5462a2
mov ebx, dword [0x8f0770]
cmp edx, 0x3e6
sete cl
xor eax, eax
test ebx, ebx
sete al
and eax, ecx
mov dword [esp + 8], edx
lea esi, [ebp - 0x3c]
mov dword [esp], eax
mov dword [esp + 4], str.Expected_ERROR_INVALID_PARAMETER__got__ld_n
call fcn.00543700
mov eax, 0x3b4
call fcn.00542db0
movzx edx, word [ebp - 0x44]
mov dword [esp + 4], str.Expected_group_0_got__u_n
test dx, dx
mov dword [esp + 8], edx
sete al
movzx eax, al
mov dword [esp], eax
call fcn.00543700
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], eax
mov eax, 0x3b9
call fcn.00542db0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], 0xfffffffe
call dword [0x890408]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], str.SetThreadGroupAffinity_failed_n
call fcn.00543700
mov eax, 0x3ba
call fcn.00542db0
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x48]
mov dword [esp + 4], str.Expected_old_affinity_mask__Ix__got__Ix_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.00543700
cmp dword [ebp - 0x1c], 0x1f
jbe 0x5465e8
mov eax, 1
mov dword [ebp - 0x3c], 1
mov ebx, dword fs:[0x18]
mov word [ebp - 0x38], ax
mov eax, 0x3cb
mov dword [ebx + 0x34], 0xdeadbeef
call fcn.00542db0
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp], 0xfffffffe
call dword [0x890408]
sub esp, 0xc
test eax, eax
sete al
mov dword [esp + 4], str.SetThreadGroupAffinity_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.00543700
mov eax, 0x3cc
call fcn.00542db0
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.Expected_ERROR_INVALID_PARAMETER__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00543700
mov dword [ebx + 0x34], 0xdeadbeef
mov eax, 0x3d0
call fcn.00542db0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0xfffffffe
call dword [0x890408]
sub esp, 0xc
test eax, eax
sete al
mov dword [esp + 4], str.SetThreadGroupAffinity_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.00543700
mov eax, 0x3d1
call fcn.00542db0
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.Expected_ERROR_NOACCESS__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x3e6
sete al
mov dword [esp], eax
call fcn.00543700
mov dword [esp + 0xc], 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0x1e
mov dword [esp], 0xfffffffe
call dword [0x890404]
sub esp, 0x10
mov dword [ebp - 0x58], eax
mov eax, 0x3d6
call fcn.00542db0
mov edx, dword [ebp - 0x58]
xor eax, eax
mov dword [esp + 4], str.Expected_STATUS_ACCESS_VIOLATION__got__08lx_n
cmp edx, 0xc0000005
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00543700
mov eax, dword [ebp - 0x48]
xor edx, edx
mov word [ebp - 0x38], dx
mov dword [ebp - 0x3c], eax
mov eax, 0x3dd
mov dword [ebx + 0x34], 0xdeadbeef
call fcn.00542db0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], 0xfffffffe
call dword [0x890408]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], str.SetThreadGroupAffinity_failed_n
call fcn.00543700
mov eax, 0x3de
call fcn.00542db0
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x48]
mov dword [esp + 4], str.Expected_old_affinity_mask__Ix__got__Ix_n
cmp edx, eax
mov dword [esp + 8], eax
sete al
mov dword [esp + 0xc], edx
movzx eax, al
mov dword [esp], eax
call fcn.00543700
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp - 0x4c]
test edi, edi
je 0x545e14
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf70]
test eax, eax
je 0x545e14
mov eax, dword [eax + 0x60]
mov edx, dword [eax + 0x18]
or edx, dword [eax + 0x1c]
sete al
movzx eax, al
mov dword [ebp - 0x58], eax
jmp 0x545e1b
mov eax, 0x3e2
call fcn.00542db0
mov dword [esp], str.Get_SetThreadGroupAffinity_not_available_n
call fcn.005436d0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call esi
sub esp, 8
mov ebx, eax
mov eax, 0x3a1
call fcn.00542db0
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.Unexpected_return_value__lu._n
mov dword [esp], eax
call fcn.00543700
mov eax, 0x3a2
jmp 0x546160
mov edx, dword [0x8f0770]
xor eax, eax
test edx, edx
setne al
mov edi, eax
jmp 0x5460ab
xor ecx, ecx
mov dword [ebp - 0x3c], 0xffffffff
mov eax, 0x3c3
mov word [ebp - 0x38], cx
mov ebx, dword fs:[0x18]
mov dword [ebx + 0x34], 0xdeadbeef
call fcn.00542db0
mov dword [esp + 4], esi
mov dword [esp + 8], 0
mov dword [esp], 0xfffffffe
call dword [0x890408]
sub esp, 0xc
test eax, eax
sete al
mov dword [esp + 4], str.SetThreadGroupAffinity_succeeded_n
movzx eax, al
mov dword [esp], eax
call fcn.00543700
mov eax, 0x3c4
call fcn.00542db0
mov eax, dword [ebx + 0x34]
mov dword [esp + 4], str.Expected_ERROR_INVALID_PARAMETER__got__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [ebx + 0x34], 0x57
sete al
mov dword [esp], eax
call fcn.00543700
jmp 0x546364