Function at 0x453de0
Capabilities:
Access peb ldr_data
Create thread
Get process heap flags

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x46113d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov esi, ecx
mov ecx, dword [ebp + 8]
push eax
push ecx
push str.xio.io
mov ecx, esi
mov dword [esp + 0x20], esi
call fcn.0043eaa0
xor eax, eax
mov dword [esi], 0x46b060
lea edi, [esi + 0x160]
mov dword [edi], eax
mov dword [edi + 4], eax
mov byte [edi + 8], al
mov dword [edi + 0xc], str.XiODeviceIOBA0
push 0x68
lea ebx, [esi + 0x180]
push str.IODevice
mov ecx, ebx
mov dword [esp + 0x34], eax
mov dword [esi + 0x170], eax
mov dword [esi + 0x174], eax
mov byte [esi + 0x178], al
mov dword [esi + 0x17c], str.XiODeviceIOBA1
call fcn.00457cc0
mov dword [ebx], 0x4686b4
lea ebx, [esi + 0x2a4]
push str.xio.device.io.control
mov ecx, ebx
mov byte [esp + 0x30], 1
call fcn.00457b50
mov dword [ebx], 0x46b93c
lea ebx, [esi + 0x3bc]
push str.xio.device.io.output
mov ecx, ebx
mov byte [esp + 0x30], 2
call fcn.00457b50
mov dword [ebx], 0x46b93c
push 0x4475d0
push 0x453440
push 0xc
lea eax, [esi + 0x4d4]
push 0x114
push eax
mov byte [esp + 0x40], 3
call fcn.0045b349
xor eax, eax
cmp dword [ebp + 0xc], eax
mov byte [esp + 0x2c], 4
mov dword [esi + 0x29c], eax
mov dword [esi + 0x2a0], eax
jge 0x453ef5
push eax
push 0xd
push 0x10ee
mov ecx, esi
call fcn.0045a960
push 0
mov ecx, esi
call fcn.0045add0
push 0
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.0045ae70
mov edx, dword [esp + 0xc]
push 1
mov ecx, esi
mov dword [edi], eax
mov dword [edi + 4], edx
call fcn.0045add0
push 1
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.0045ae70
cmp dword [ebp + 0xc], 0
mov dword [esi + 0x170], eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x174], eax
jge 0x454071
mov ecx, edi
call fcn.00452a30
push eax
mov ecx, edi
call fcn.00452950
push eax
mov ecx, edi
call fcn.00452870
push eax
mov ecx, edi
call fcn.00452790
mov ecx, dword [ebp + 8]
push eax
push ecx
lea edx, [esp + 0x20]
push str.XiODeviceIO__d___interrupt_factor_A_0x_08X__B_0x_08X__C_0x_08X__D_0x_08X_
push edx
call fcn.00457740
add esp, 0x1c
mov ecx, eax
mov byte [esp + 0x2c], 5
call fcn.004577e0
push eax
push 0x4684dc
push str.__s___i___s_n
push 4
push 0x486aa0
call fcn.00457eb0
add esp, 0x14
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], 4
call fcn.004577c0
lea eax, [esi + 0x4d4]
xor ebx, ebx
mov dword [esp + 0xc], eax
lea ebx, [ebx]
push ebx
lea eax, [esp + 0x1c]
push 0x4691f0
push eax
call fcn.00457740
add esp, 0xc
mov ecx, eax
mov byte [esp + 0x2c], 6
call fcn.004577e0
mov ecx, dword [esp + 0xc]
push eax
call fcn.00457980
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], 4
call fcn.004577c0
add dword [esp + 0xc], 0x114
inc ebx
cmp ebx, 0xc
jl 0x453fc0
push 0xfff
mov ecx, edi
call fcn.00452b10
push 0
mov ecx, edi
call fcn.00452b10
push 0
mov ecx, edi
call fcn.00452e50
push 0
mov ecx, edi
call fcn.00452f20
push 0
mov ecx, edi
call fcn.00452ff0
push 0
mov ecx, edi
call fcn.004530c0
push 0
push 0
push esi
push 0x4535a0
push 0
push 0
call dword [sym.imp.RTX_RTSS.SYS_CreateThread]
mov dword [esi + 0x29c], eax
test eax, eax
je 0x4540fb
push 0xfff
mov ecx, edi
call fcn.004526c0
jmp 0x4540fb
mov ecx, esi
call fcn.0045adb0
push eax
lea ecx, [esp + 0x1c]
push 0x46b1b0
push ecx
call fcn.00457740
add esp, 0xc
mov ecx, eax
mov byte [esp + 0x2c], 7
call fcn.004577e0
push eax
mov ecx, ebx
call fcn.00457980
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], 4
call fcn.004577c0
mov ecx, esi
call fcn.0045adb0
push eax
lea edx, [esp + 0x1c]
push 0x4691f0
push edx
call fcn.00457740
add esp, 0xc
mov ecx, eax
mov byte [esp + 0x2c], 8
call fcn.004577e0
push eax
mov ecx, esi
call fcn.0045adb0
imul eax, eax, 0x114
lea ecx, [eax + esi + 0x4d4]
call fcn.00457980
lea ecx, [esp + 0x18]
mov byte [esp + 0x2c], 4
call fcn.004577c0
mov ecx, dword [esp + 0x24]
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8