Function at 0x41d800
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x148], 0
push 0xfa0
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x150], eax
cmp dword [ebp - 0x150], 0
jne 0x41d865
xor eax, eax
jmp 0x41daaf
push 0x40
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x40]
push ecx
call fcn.0041e020
add esp, 0xc
push 0xf8
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
push edx
lea eax, [ebp - 0x140]
push eax
call fcn.0041e020
add esp, 0xc
mov ecx, dword [ebp - 0xf0]
mov dword [ebp - 0x44], ecx
push 4
push 0x3000
mov edx, dword [ebp - 0x44]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
jne 0x41d8d1
mov eax, dword [ebp - 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
jmp 0x41daaf
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0xec]
mov dword [ebp - 0x15c], edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0xf8]
mov dword [ebp - 0x154], edx
movzx eax, word [ebp - 0x13a]
imul eax, eax, 0x28
push eax
mov ecx, dword [ebp - 0x154]
push ecx
mov edx, dword [ebp - 0x150]
push edx
call fcn.0041e020
add esp, 0xc
mov eax, dword [ebp - 0x15c]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 0x48]
push edx
call fcn.0041e020
add esp, 0xc
mov eax, dword [ebp - 0xec]
xor edx, edx
div dword [ebp - 0x108]
test edx, edx
jne 0x41d951
mov eax, dword [ebp - 0xec]
mov dword [ebp - 0x148], eax
jmp 0x41d987
mov eax, dword [ebp - 0xec]
xor edx, edx
div dword [ebp - 0x108]
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
add ecx, 1
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0x148]
imul edx, dword [ebp - 0x108]
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x148]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x158], 0
jmp 0x41d9ae
mov ecx, dword [ebp - 0x158]
add ecx, 1
mov dword [ebp - 0x158], ecx
movzx edx, word [ebp - 0x13a]
cmp dword [ebp - 0x158], edx
jae 0x41da9c
mov dword [ebp - 0x148], 0
mov eax, dword [ebp - 0x158]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x150]
mov edx, dword [ecx + eax + 0x10]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x14c]
push eax
mov ecx, dword [ebp - 0x158]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x150]
mov eax, dword [ebp + 8]
add eax, dword [edx + ecx + 0x14]
push eax
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.0041e020
add esp, 0xc
mov edx, dword [ebp - 0x158]
imul edx, edx, 0x28
mov eax, dword [ebp - 0x150]
mov eax, dword [eax + edx + 8]
xor edx, edx
div dword [ebp - 0x108]
test edx, edx
jne 0x41da48
mov ecx, dword [ebp - 0x158]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x150]
mov eax, dword [edx + ecx + 8]
mov dword [ebp - 0x148], eax
jmp 0x41da8b
mov ecx, dword [ebp - 0x158]
imul ecx, ecx, 0x28
mov edx, dword [ebp - 0x150]
mov eax, dword [edx + ecx + 8]
xor edx, edx
div dword [ebp - 0x108]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x148]
add eax, 1
mov dword [ebp - 0x148], eax
mov ecx, dword [ebp - 0x148]
imul ecx, dword [ebp - 0x108]
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0x48]
add edx, dword [ebp - 0x148]
mov dword [ebp - 0x48], edx
jmp 0x41d99f
mov eax, dword [ebp - 0x150]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x144]
mov esp, ebp
pop ebp
ret