Function at 0x46254f
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x84
mov eax, dword [0x5b38f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, ecx
mov dword [ebp - 0x6c], edx
push edi
mov dword [ebp - 0x80], ebx
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x5bb404], eax
je 0x462586
mov eax, 0x10dd
jmp 0x46276b
mov eax, dword [0x5bb400]
test eax, eax
jne 0x46276b
test ebx, ebx
jne 0x46259f
push 6
pop eax
jmp 0x46276b
mov ecx, dword [ebx]
push esi
test ecx, ecx
jne 0x4625b4
push 6
pop edi
mov dword [0x5bb400], edi
jmp 0x462728
mov esi, edi
mov ebx, edi
call fcn.00461e1d
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x64], eax
call fcn.00461e1d
mov dword [ebp - 0x78], eax
cmp eax, dword [ebp - 0x64]
jne 0x4625e1
cmp dword [0x5bb408], ebx
jne 0x462725
jmp 0x462709
push 0x18
call fcn.0041285f
mov ebx, eax
mov dword [ebp - 0x84], ebx
pop ecx
test ebx, ebx
jne 0x4625fd
push 8
pop edi
jmp 0x462709
mov ecx, dword [ebp - 0x64]
call fcn.00461f05
mov esi, eax
mov dword [ebp - 0x70], esi
test esi, esi
je 0x4625f5
mov eax, dword [ebp - 0x64]
mov ebx, edi
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x68], eax
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x6c], edi
push eax
push edi
call fcn.004aab3d
push dword [ebp - 0x74]
lea eax, [ebx + esi]
push eax
call fcn.004aab73
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x6c], edi
jne 0x462659
mov ecx, dword [ebp - 0x68]
mov ebx, eax
sub ebx, dword [ebp - 0x64]
call fcn.00461e63
test eax, eax
jne 0x462659
mov eax, dword [ebp - 0x74]
cmp ebx, 5
jl 0x462619
mov dword [ebp - 0x68], ebx
cmp ebx, 5
mov ebx, dword [ebp - 0x84]
jge 0x46267c
cmp dword [0x5bb408], 0
push 9
pop edi
jne 0x46270f
jmp 0x462709
mov eax, dword [ebp - 0x68]
cmp eax, 0x12
jbe 0x46268b
push 6
jmp 0x4625f7
mov ecx, dword [ebp - 0x70]
mov esi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x78]
add esi, eax
mov dword [ecx + 0x1c], edx
lea edx, [ecx + 0x17]
mov dword [ecx + 0x18], esi
add ecx, eax
mov byte [edx], al
lea eax, [ecx + 5]
mov byte [ecx], 0xe9
sub esi, eax
mov dword [ecx + 1], esi
add ecx, 5
call fcn.00461dfc
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x7c]
push eax
push 0x40
push dword [ebp - 0x68]
mov dword [ebp - 0x7c], edi
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x4626fe
mov ecx, esi
call fcn.0046210c
mov esi, eax
test esi, esi
je 0x462740
mov eax, 0x6544
cmp word [esi + 0x1c], ax
je 0x462740
lea eax, [ebp - 0x78]
mov dword [ebp - 0x78], edi
push eax
push 0x40
push 0x40
push esi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x462732
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [ebp - 0x70]
mov edi, eax
mov dword [0x5bb400], edi
test esi, esi
je 0x46271a
mov ecx, esi
call fcn.004620eb
test ebx, ebx
je 0x462725
push ebx
call fcn.0052558c
pop ecx
mov ebx, dword [ebp - 0x80]
mov dword [0x5bb3ec], ebx
mov eax, edi
jmp 0x46276a
mov dword [esi + 0x1c], 0x6f746544
mov dword [esi + 0x20], 0x21737275
mov eax, dword [ebp - 0x80]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x70]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x64]
mov dword [ebx + 0xc], eax
mov dword [ebx + 4], edi
mov eax, dword [ebp - 0x7c]
mov dword [ebx + 0x14], eax
mov eax, dword [0x5bb3f8]
mov dword [ebx], eax
xor eax, eax
mov dword [0x5bb3f8], ebx
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.0052b1ec
mov esp, ebp
pop ebp
ret 0xc