Function at 0x3001d880
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
test esi, esi
jne 0x3001d8a3
push str.ActivateBreakpoints:_Error__tracked_region_argument_NULL._n
call fcn.3000a0d0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x3026ed44], 0
jne 0x3001d8d6
push 0x3026ed40
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [0x3026ed44], 0
jne 0x3001d8d6
push str.ActivateBreakpoints:_Failed_to_obtain_system_page_size._n
call fcn.3000a0f0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x28], 0
jne 0x3001da30
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
call ebx
mov edi, eax
push edi
push dword [esi]
push str.ActivateBreakpoints:_AllocationBase:_0x_p__thread__d_n
call fcn.3000a570
mov edx, dword [esi]
add esp, 0xc
test edx, edx
je 0x3001da3c
test edi, edi
je 0x3001da3c
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x3001d917
cmp ecx, edx
jne 0x3001d919
mov ecx, edx
mov dword [esi + 0x44], ecx
mov eax, dword [0x3026ed74]
mov dword [eax + 0x1c], ecx
call fcn.300077a0
mov eax, dword [esi + 0x44]
cmp byte [eax], 0
je 0x3001d988
push 0x3001d520
push 0
push 0
push eax
push 0
call ebx
lea edx, [esi + 0x48]
mov ecx, eax
call fcn.30008440
mov ecx, dword [esi + 0x44]
add esp, 0x14
push ecx
test eax, eax
jne 0x3001d971
push str.ActivateBreakpoints:_SetNextAvailableBreakpoint_failed_to_set_exec_bp_on_tracked_region_protect_address_0x_p_n
call fcn.3000a570
add esp, 8
mov dword [esi + 0x44], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [ecx]
push eax
mov eax, dword [esi + 0x48]
push eax
push str.ActivateBreakpoints:_Set_breakpoint__d_to_execute_on_non_zero_byte_0x_x_at_protected_address:_0x_p_n
call fcn.3000a570
add esp, 0x10
jmp 0x3001d9d8
push 0x3001d650
push 0
push 1
push eax
push 2
call ebx
lea edx, [esi + 0x48]
mov ecx, eax
call fcn.30008440
mov ecx, dword [esi + 0x44]
add esp, 0x14
push ecx
test eax, eax
jne 0x3001d9c8
push str.ActivateBreakpoints:_SetNextAvailableBreakpoint_failed_to_set_write_bp_on_tracked_region_protect_address_0x_p_n
call fcn.3000a570
add esp, 8
mov dword [esi + 0x44], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0x48]
push str.ActivateBreakpoints:_Set_breakpoint__d_to_write_on_empty_address:_0x_p_n
call fcn.3000a570
add esp, 0xc
mov edi, dword [esi]
push 0x3001d350
push 0
push 1
add edi, 0x3c
push edi
push 4
call ebx
lea edx, [ebp - 4]
mov ecx, eax
call fcn.30008440
add esp, 0x14
test eax, eax
jne 0x3001da15
push dword [esi + 0x44]
push str.ActivateBreakpoints:_SetNextAvailableBreakpoint_failed_to_set_write_bp_on_DOS_e_lfanew_address_0x_p_n
call fcn.3000a570
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push dword [ebp - 4]
push str.ActivateBreakpoints:_Set_breakpoint__d_to_write_on_DOS_e_lfanew_address:_0x_p_n
call fcn.3000a570
add esp, 0xc
mov dword [0x3026e004], 1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edi
push edx
push str.ActivateBreakpoints:_Error__one_of_the_following_is_NULL___TrackedRegion__AllocationBase:_0x_p__thread__d_n
call fcn.3000a570
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret