Function at 0x445c1f
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c0
push esi
push edi
mov dword [ebp - 0x210], 0x400000
mov dword [ebp - 0x20c], 0
push 0x4412bc
push 1
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov dword [0x4501c4], eax
call fcn.00446202
sub eax, 6
mov dword [ebp - 0x14], eax
lea eax, [ebp - 4]
push eax
lea ecx, [ebp - 0x208]
push ecx
lea edx, [ebp - 0x104]
push edx
push 0
call fcn.004476b0
add esp, 0x10
test eax, eax
je 0x4461e6
mov eax, dword [0x4501c4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0xf8]
and ecx, 0xff
test ecx, ecx
je 0x445cb5
lea ecx, [ebp - 0x2c0]
call fcn.00448660
lea ecx, [ebp - 0x2c0]
call fcn.0044867f
push 0xf0
lea edx, [ebp - 0x104]
push edx
push 0x4500c8
call fcn.0044abc0
add esp, 0xc
mov byte [ebp - 0x23c], 4
mov byte [ebp - 0x23b], 8
mov byte [ebp - 0x23a], 0
mov byte [ebp - 0x239], 0
mov byte [ebp - 0x238], 0xc8
mov byte [ebp - 0x237], 0
mov byte [ebp - 0x236], 0
mov byte [ebp - 0x235], 0
mov byte [ebp - 0x234], 0x18
mov byte [ebp - 0x233], 0x61
mov byte [ebp - 0x232], 0xe
mov byte [ebp - 0x231], 0
mov byte [ebp - 0x230], 0x22
mov byte [ebp - 0x22f], 0
mov byte [ebp - 0x22e], 0
mov byte [ebp - 0x22d], 0
mov byte [ebp - 0x22c], 0x90
mov byte [ebp - 0x22b], 0x66
mov byte [ebp - 0x22a], 0xe
mov byte [ebp - 0x229], 0
mov byte [ebp - 0x228], 0xe8
mov byte [ebp - 0x227], 2
mov byte [ebp - 0x226], 0
mov byte [ebp - 0x225], 0
mov byte [ebp - 0x224], 0
mov byte [ebp - 0x223], 0
mov byte [ebp - 0x222], 0
mov byte [ebp - 0x221], 0
mov byte [ebp - 0x220], 0
mov byte [ebp - 0x21f], 0
mov byte [ebp - 0x21e], 0
mov byte [ebp - 0x21d], 0
push 0xf0
lea eax, [ebp - 0x23c]
push eax
push 0x64
push 0x4500c8
call fcn.00447ba0
add esp, 0x10
mov ecx, dword [ebp - 0x104]
and ecx, 0xff
test ecx, ecx
je 0x445df3
sub esp, 0xf0
mov ecx, 0x3c
mov esi, 0x4500c8
mov edi, esp
rep movsd dword es:[edi], dword [esi]
call dword [0x4503f0]
mov edx, dword [ebp - 0xf5]
and edx, 0xff
push edx
mov eax, dword [ebp - 0xf6]
and eax, 0xff
push eax
mov ecx, dword [ebp - 0xf7]
and ecx, 0xff
push ecx
lea edx, [ebp - 8]
push edx
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 0x20c]
push edx
mov eax, dword [0x45061c]
push eax
call fcn.00447c10
add esp, 0x20
test eax, eax
jne 0x445e45
xor eax, eax
jmp 0x4461fc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x2b8], eax
call fcn.00445bfa
mov dword [0x4501c0], eax
mov dword [ebp - 0x214], 0x45061c
mov dword [ebp - 0x2a8], 0x4501c0
lea ecx, [ebp - 0x10]
push ecx
push 0x40
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x445e91
xor eax, eax
jmp 0x4461fc
mov dword [ebp - 0x2b4], 0
mov ecx, dword [ebp - 0x2b4]
mov byte [ebp + ecx - 0x2a4], 0x6a
mov edx, dword [ebp - 0x2b4]
add edx, 1
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b4]
mov byte [ebp + eax - 0x2a4], 0
mov ecx, dword [ebp - 0x2b4]
add ecx, 1
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b4]
mov byte [ebp + edx - 0x2a4], 0x68
mov eax, dword [ebp - 0x2b4]
add eax, 1
mov dword [ebp - 0x2b4], eax
push 4
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x2b4]
lea eax, [ebp + edx - 0x2a4]
push eax
call fcn.0044abc0
add esp, 0xc
mov ecx, dword [ebp - 0x2b4]
add ecx, 4
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b4]
mov byte [ebp + edx - 0x2a4], 0x68
mov eax, dword [ebp - 0x2b4]
add eax, 1
mov dword [ebp - 0x2b4], eax
push 4
push 0x4501cc
mov ecx, dword [ebp - 0x2b4]
lea edx, [ebp + ecx - 0x2a4]
push edx
call fcn.0044abc0
add esp, 0xc
mov eax, dword [ebp - 0x2b4]
add eax, 4
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
mov byte [ebp + ecx - 0x2a4], 0x68
mov edx, dword [ebp - 0x2b4]
add edx, 1
mov dword [ebp - 0x2b4], edx
push 4
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp - 0x2b4]
lea edx, [ebp + ecx - 0x2a4]
push edx
call fcn.0044abc0
add esp, 0xc
mov eax, dword [ebp - 0x2b4]
add eax, 4
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
mov byte [ebp + ecx - 0x2a4], 0x68
mov edx, dword [ebp - 0x2b4]
add edx, 1
mov dword [ebp - 0x2b4], edx
push 4
lea eax, [ebp - 0x2b8]
push eax
mov ecx, dword [ebp - 0x2b4]
lea edx, [ebp + ecx - 0x2a4]
push edx
call fcn.0044abc0
add esp, 0xc
mov eax, dword [ebp - 0x2b4]
add eax, 4
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
mov byte [ebp + ecx - 0x2a4], 0xff
mov edx, dword [ebp - 0x2b4]
add edx, 1
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b4]
mov byte [ebp + eax - 0x2a4], 0x15
mov ecx, dword [ebp - 0x2b4]
add ecx, 1
mov dword [ebp - 0x2b4], ecx
push 4
lea edx, [ebp - 0x2a8]
push edx
mov eax, dword [ebp - 0x2b4]
lea ecx, [ebp + eax - 0x2a4]
push ecx
call fcn.0044abc0
add esp, 0xc
mov edx, dword [ebp - 0x2b4]
add edx, 4
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b4]
mov byte [ebp + eax - 0x2a4], 0x8b
mov ecx, dword [ebp - 0x2b4]
add ecx, 1
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b4]
mov byte [ebp + edx - 0x2a4], 0xe5
mov eax, dword [ebp - 0x2b4]
add eax, 1
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
mov byte [ebp + ecx - 0x2a4], 0x5d
mov edx, dword [ebp - 0x2b4]
add edx, 1
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b4]
mov byte [ebp + eax - 0x2a4], 0x8b
mov ecx, dword [ebp - 0x2b4]
add ecx, 1
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b4]
mov byte [ebp + edx - 0x2a4], 0xe5
mov eax, dword [ebp - 0x2b4]
add eax, 1
mov dword [ebp - 0x2b4], eax
mov ecx, dword [ebp - 0x2b4]
mov byte [ebp + ecx - 0x2a4], 0x5d
mov edx, dword [ebp - 0x2b4]
add edx, 1
mov dword [ebp - 0x2b4], edx
mov eax, dword [ebp - 0x2b4]
mov byte [ebp + eax - 0x2a4], 0xe9
mov ecx, dword [ebp - 0x2b4]
add ecx, 1
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x21c], edx
lea eax, [ebp - 0x2a4]
sub eax, dword [ebp - 0x21c]
sub eax, 5
mov dword [0x4501bc], eax
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x2bc], ecx
mov edx, dword [ebp - 0xfc]
add edx, 0x400000
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
lea ecx, [ebp - 0x2a4]
sub eax, ecx
mov edx, dword [ebp - 0x2b4]
add edx, 4
sub eax, edx
mov dword [ebp - 0x218], eax
push 4
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x2b4]
lea edx, [ebp + ecx - 0x2a4]
push edx
call fcn.0044abc0
add esp, 0xc
mov byte [ebp - 0x2b0], 0xe9
push 4
push 0x4501bc
lea eax, [ebp - 0x2af]
push eax
call fcn.0044abc0
add esp, 0xc
push 0
push 5
lea ecx, [ebp - 0x2b0]
push ecx
mov edx, dword [ebp - 0x2bc]
push edx
mov eax, dword [ebp - 0x2b8]
push eax
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov dword [ebp - 0x240], eax
jmp 0x4461fa
push 0x10
push 0x4412cc
push 0x4412d4
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret