Function at 0x3001d1c0
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 0x3001d1e3
push str.ActivateBreakpoints:_Error__tracked_region_argument_NULL._n
call fcn.30009b00
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x302728a4], 0
jne 0x3001d216
push 0x302728a0
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [0x302728a4], 0
jne 0x3001d216
push str.ActivateBreakpoints:_Failed_to_obtain_system_page_size._n
call fcn.30009b20
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x28], 0
jne 0x3001d370
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.30009fa0
mov edx, dword [esi]
add esp, 0xc
test edx, edx
je 0x3001d37c
test edi, edi
je 0x3001d37c
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x3001d257
cmp ecx, edx
jne 0x3001d259
mov ecx, edx
mov dword [esi + 0x44], ecx
mov eax, dword [0x302728d0]
mov dword [eax + 0x1c], ecx
call fcn.30007100
mov eax, dword [esi + 0x44]
cmp byte [eax], 0
je 0x3001d2c8
push 0x3001ce50
push 0
push 0
push eax
push 0
call ebx
lea edx, [esi + 0x48]
mov ecx, eax
call fcn.30007d80
mov ecx, dword [esi + 0x44]
add esp, 0x14
push ecx
test eax, eax
jne 0x3001d2b1
push str.ActivateBreakpoints:_SetNextAvailableBreakpoint_failed_to_set_exec_bp_on_tracked_region_protect_address_0x_p_n
call fcn.30009fa0
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.30009fa0
add esp, 0x10
jmp 0x3001d318
push 0x3001cf90
push 0
push 1
push eax
push 2
call ebx
lea edx, [esi + 0x48]
mov ecx, eax
call fcn.30007d80
mov ecx, dword [esi + 0x44]
add esp, 0x14
push ecx
test eax, eax
jne 0x3001d308
push str.ActivateBreakpoints:_SetNextAvailableBreakpoint_failed_to_set_write_bp_on_tracked_region_protect_address_0x_p_n
call fcn.30009fa0
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.30009fa0
add esp, 0xc
mov edi, dword [esi]
push 0x3001cc80
push 0
push 1
add edi, 0x3c
push edi
push 4
call ebx
lea edx, [ebp - 4]
mov ecx, eax
call fcn.30007d80
add esp, 0x14
test eax, eax
jne 0x3001d355
push dword [esi + 0x44]
push str.ActivateBreakpoints:_SetNextAvailableBreakpoint_failed_to_set_write_bp_on_DOS_e_lfanew_address_0x_p_n
call fcn.30009fa0
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.30009fa0
add esp, 0xc
mov dword [0x30272208], 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.30009fa0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret