Function at 0x40d9b0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1d4
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.0040c690
add esp, 4
lea edi, [eax + esi]
cmp edi, 0xffffffc3
jg 0x40d9e1
push 4
push 0x1000
push 0x40
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
lea ecx, [edi + 7]
mov dword [ebp - 0x1d0], ecx
lea eax, [edi + 0xbe]
lea ecx, [edi + 5]
mov dword [ebp - 0x60], eax
mov dword [ebp + 8], ecx
lea eax, [edi + 0x9e]
lea ecx, [edi + 0xb1]
mov dword [ebp - 0x1d4], eax
mov dword [ebp - 0x1cc], ecx
lea eax, [edi + 0x16]
lea ecx, [edi + 0x31]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0x138], ecx
lea eax, [edi + 0xa8]
lea ecx, [edi + 8]
mov dword [ebp - 0x13c], eax
mov dword [ebp - 0x1c8], ecx
lea ebx, [edi + 6]
lea ecx, [edi + 0x56]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x3c], ecx
lea ecx, [edi + 0x36]
mov dword [ebp - 0xf0], ecx
lea ecx, [edi + 0xb9]
mov dword [ebp - 0xec], ecx
lea ecx, [edi + 0x8f]
mov dword [ebp - 0x5c], ecx
lea ecx, [edi + 0x2e]
mov dword [ebp - 0x1c0], ecx
lea ecx, [edi + 0x45]
mov dword [ebp - 0x58], ecx
lea ecx, [edi + 0xab]
mov dword [ebp - 0x84], ecx
lea ecx, [edi + 0xa6]
mov dword [ebp - 0x10], ecx
lea ecx, [edi + 0x5e]
mov dword [ebp - 0x1b8], ecx
lea ecx, [edi + 0x7a]
mov dword [ebp - 0x54], ecx
lea ecx, [edi + 0xaa]
mov dword [ebp - 0xe8], ecx
lea ecx, [edi + 0xad]
mov dword [ebp - 0x38], ecx
lea ecx, [edi + 0x28]
mov dword [ebp - 0x10c], ecx
lea ecx, [edi + 0x5c]
mov dword [ebp - 0x1b4], ecx
lea ecx, [edi + 0x80]
mov dword [ebp - 0x14], ecx
lea ecx, [edi + 0x58]
mov dword [ebp - 0x50], ecx
lea ecx, [edi + 0x92]
mov dword [ebp - 0x40], ecx
lea ecx, [edi + 0x50]
mov dword [ebp - 0x9c], ecx
lea ecx, [edi + 0x29]
mov dword [ebp - 0x80], ecx
lea ecx, [edi + 0x7c]
mov dword [ebp - 0xe4], ecx
lea ecx, [edi + 0x23]
mov dword [ebp - 0xe0], ecx
lea ecx, [edi + 0x1b]
mov dword [ebp - 0x4c], ecx
lea ecx, [edi + 0xc]
mov dword [ebp - 0x1b0], ecx
lea ecx, [edi + 0x1f]
mov dword [ebp - 0x134], ecx
lea ecx, [edi + 0xd]
mov dword [ebp - 0xdc], ecx
lea ecx, [edi + 0x34]
mov dword [ebp - 0xac], ecx
lea ecx, [edi + 0x6f]
mov dword [ebp - 0xf4], ecx
lea ecx, [edi + 0xc1]
mov dword [ebp - 0xd8], ecx
lea ecx, [edi + 0x43]
mov dword [ebp - 0x68], ecx
lea ecx, [edi + 0x78]
mov dword [ebp - 0x48], ecx
lea ecx, [edi + 0x69]
mov dword [ebp - 0x44], ecx
lea esi, [edi + 0xb4]
mov dword [ebp - 0x18c], esi
lea ecx, [edi + 2]
mov dword [ebp - 0xd4], ecx
lea esi, [edi + 0x37]
mov dword [ebp - 0x100], esi
lea ecx, [edi + 0x64]
mov dword [ebp - 0x1a0], ecx
lea esi, [edi + 0x85]
mov dword [ebp - 0xbc], esi
lea ecx, [edi + 0xb]
mov dword [ebp - 0x6c], ecx
lea esi, [edi + 0x4b]
mov dword [ebp - 0x30], esi
lea ecx, [edi + 0x39]
mov dword [ebp - 0x104], ecx
lea esi, [edi + 0x3b]
mov dword [ebp - 0x188], esi
lea ecx, [edi + 0x17]
mov dword [ebp - 0xcc], ecx
lea esi, [edi + 0x1c]
mov dword [ebp - 8], esi
lea ecx, [edi + 0x7f]
mov dword [ebp - 0xc8], ecx
lea esi, [edi + 0x5d]
mov dword [ebp - 0x184], esi
lea ecx, [edi + 0x25]
mov dword [ebp - 0xc4], ecx
lea esi, [edi + 0x94]
mov dword [ebp - 0x180], esi
lea ecx, [edi + 0x7b]
mov dword [ebp - 0xb8], ecx
lea esi, [edi + 0x54]
mov dword [ebp - 0x17c], esi
lea ecx, [edi + 0x3f]
mov dword [ebp - 0x198], ecx
lea esi, [edi + 0xc7]
mov dword [ebp - 0xb0], esi
lea ecx, [edi + 0x8e]
mov dword [ebp - 0xfc], ecx
lea esi, [edi + 3]
mov dword [ebp - 0x170], esi
lea ecx, [edi + 0x9a]
mov dword [ebp - 0x194], ecx
lea esi, [edi + 0xc2]
mov dword [ebp - 0x174], esi
lea ecx, [edi + 0x6c]
mov dword [ebp - 0xa8], ecx
lea esi, [edi + 0x6e]
mov dword [ebp - 0x16c], esi
lea ecx, [edi + 0x72]
mov dword [ebp - 0xb4], ecx
lea esi, [edi + 0x73]
mov dword [ebp - 0x1bc], esi
lea ecx, [edi + 0x99]
mov dword [ebp - 0x140], ecx
lea esi, [edi + 0x2a]
mov dword [ebp - 0xa0], esi
lea ecx, [edi + 0x55]
mov dword [ebp - 0x8c], ecx
lea esi, [edi + 0xc6]
mov dword [ebp - 0x7c], esi
lea ecx, [edi + 0x57]
lea esi, [edi + 0xaf]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x168], esi
lea ecx, [edi + 0xc3]
lea esi, [edi + 0xb2]
mov dword [ebp - 0x18], ecx
lea edx, [edi + 0x7e]
mov dword [ebp - 0x164], esi
lea ecx, [edi + 0x66]
mov dword [ebp - 0xd0], edx
lea esi, [edi + 0xba]
mov dword [ebp - 0x15c], edx
mov dword [ebp - 0xc0], ecx
lea edx, [edi + 0x40]
mov dword [ebp - 0x160], esi
lea ecx, [edi + 0x87]
lea esi, [edi + 0x8b]
mov dword [ebp - 0x98], esi
lea esi, [edi + 0x90]
mov dword [ebp - 0x94], esi
lea esi, [edi + 0xd]
imul esi, eax
lea eax, [edi + 0x22]
mov dword [ebp - 0xa4], esi
lea esi, [edi + 0x12b]
add esi, edi
mov dword [ebp - 0x24], esi
lea esi, [edi + 0xba]
cmp esi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x24]
cmovg esi, eax
lea eax, [edi + 0xa6]
mov dword [ebp - 0x24], esi
lea esi, [edi + 0xd]
imul esi, eax
lea eax, [edi + 0x80]
mov dword [ebp - 0x1c], esi
lea esi, [edi + 0x4e]
imul eax, esi
lea esi, [edi + 0x77]
add esi, edi
mov dword [ebp - 4], esi
lea esi, [edi + 0xc7]
cmp dword [ebp - 0xe0], esi
mov esi, dword [ebp - 4]
mov dword [ebp - 0xc], eax
lea eax, [edi + 0xa4]
cmovl esi, eax
lea eax, [edi + 0x45]
mov dword [ebp - 4], esi
lea esi, [edi + 0x6e]
add eax, esi
lea esi, [edi + 0x43]
cmp esi, edx
lea esi, [edi + 0x6f]
lea edx, [edi + 0x91]
cmovl eax, esi
lea esi, [edi + 2]
mov dword [ebp - 0x20], eax
lea eax, [edi + 0xc1]
imul eax, edx
mov dword [ebp - 0x34], eax
cmp esi, ecx
jl 0x40dd82
lea ecx, [ebx + 0x4a]
add ecx, edi
mov dword [ebp - 0xd0], ecx
lea edx, [edi + 0x16]
add edx, esi
lea ecx, [edi + 0x64]
cmp ecx, dword [ebp - 0x88]
lea ecx, [edi + 0x2e]
cmovg edx, ecx
lea ecx, [edi + 0xb2]
add eax, ecx
mov dword [ebp - 0x90], edx
lea ecx, [edi + 0x28]
cmp dword [ebp - 0x7c], ecx
lea ecx, [edi + 0xab]
cmovg eax, ecx
lea ecx, [edi + 0xaa]
mov dword [ebp - 0x158], eax
lea eax, [edi + 0x99]
imul eax, ecx
mov ecx, ebx
mov dword [ebp - 0x130], eax
lea eax, [edi + 0x5c]
imul ecx, eax
lea eax, [edi + 0xc7]
imul eax, dword [ebp - 0x8c]
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x1c4], eax
lea eax, [edi + 0x8e]
cmp dword [ebp - 0x18], eax
jl 0x40de07
lea eax, [edi*2 + 0xd3]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x34]
lea edx, [edi + 0x66]
imul eax, esi
lea ebx, [edi + 0xbd]
lea esi, [edi + 0x56]
mov dword [ebp - 0x1a8], eax
lea eax, [edi + 0x7b]
imul eax, edx
mov dword [ebp - 0x128], eax
lea eax, [edi + 0x50]
add eax, dword [ebp - 4]
cmp esi, ebx
lea ebx, [edi + 0xc3]
cmovg eax, dword [ebp - 0x1c]
mov dword [ebp - 0x154], eax
lea eax, [edx + 0xc]
add eax, edi
lea edx, [edi + 0x25]
cmp ebx, edx
lea edx, [edi + 3]
lea ebx, [edi + 0x94]
cmovl eax, edx
lea edx, [edi + 0xba]
imul edx, ebx
lea ebx, [edi + 0x23]
mov dword [ebp - 0x74], eax
lea eax, [edi + 0x3b]
imul eax, dword [ebp - 0xc]
mov dword [ebp - 0x78], edx
mov edx, esi
imul edx, ebx
lea ebx, [edi + 0xb]
mov dword [ebp - 0x178], edx
mov edx, dword [ebp - 0x20]
add edx, 0x73
add edx, edi
cmp dword [ebp - 0x84], ebx
lea ebx, [edi + 0x8a]
cmovl edx, ebx
lea ebx, [edi + 0x7a]
mov dword [ebp - 0x18], edx
lea edx, [edi + 0x8e]
imul ebx, edx
lea edx, [edi + 0x34]
mov dword [ebp - 0x19c], ebx
lea ebx, [edi + 0x94]
add ebx, edi
cmp edx, dword [ebp - 0x10]
lea edx, [edi + 0x4f]
cmovl ebx, dword [ebp - 0x10]
mov dword [ebp - 0x70], ebx
lea ebx, [esi + 0xb1]
add ebx, edi
lea esi, [edi + 0x94]
cmp edx, dword [ebp - 0xc]
lea edx, [edi + 0xb0]
cmovl ebx, edx
lea edx, [edi + 0x3f]
imul esi, edx
add ecx, 0x28
lea edx, [edi + 3]
mov dword [ebp - 0x110], ebx
lea ebx, [edi + 0x1c]
add ecx, edi
mov dword [ebp - 0x64], esi
lea esi, [edi + 0xaa]
imul edx, esi
lea esi, [edi + 0x56]
imul ebx, esi
lea esi, [edi + 2]
mov dword [ebp - 0x124], edx
lea edx, [edi + 0x2d]
cmp esi, edx
mov dword [ebp - 0x120], ebx
lea edx, [edi + 0x91]
cmovl ecx, edx
lea edx, [edi + 7]
mov dword [ebp - 0x150], ecx
lea ecx, [edi + 0xb4]
imul ecx, edx
mov dword [ebp - 0x11c], ecx
mov ecx, dword [ebp - 0x78]
lea edx, [edi + 0xc2]
add ecx, edx
lea esi, [edi + 0x50]
lea edx, [edi + 0x1f]
cmp esi, edx
lea edx, [edi + 0x72]
cmovg ecx, edx
lea edx, [edi + 0x5e]
mov dword [ebp - 0x14c], ecx
lea ecx, [edi + 0x43]
imul ecx, edx
lea edx, [edi + 0x1b]
mov dword [ebp - 0x1a4], ecx
lea ecx, [edi + 0xa8]
lea ebx, [ecx + 0x5d]
add ebx, edi
cmp esi, edx
lea edx, [edi + 0xaf]
cmovg ebx, ecx
mov dword [ebp - 0x148], ebx
lea ebx, [edi + 6]
imul edx, ebx
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x18]
imul edx, ecx
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x70]
imul edx, ecx
lea ecx, [edi + 0x3b]
mov dword [ebp - 0x118], edx
lea edx, [edi + 0xbe]
imul edx, ecx
lea ecx, [edi + 5]
imul ecx, eax
lea eax, [edi + 0xaa]
mov dword [ebp - 0x1ac], edx
mov dword [ebp - 0x144], ecx
lea ecx, [edi + 0x9a]
imul ecx, eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x190], ecx
lea ecx, [edi + 0x6f]
imul eax, ecx
mov dword [ebp - 0x114], eax
lea eax, [esi + ecx]
lea ecx, [edi + 8]
cmp edx, ecx
mov edx, dword [ebp - 0x90]
lea ecx, [edi + 0x9e]
cmovg eax, ecx
lea ecx, [edi + 0xb]
mov dword [ebp - 0x108], eax
cmp ecx, dword [ebp - 0x34]
jg 0x40e01c
lea eax, [edi + 0xe6]
add eax, edi
mov dword [ebp - 0x94], eax
lea eax, [edi + 0xc]
mov esi, edx
lea ebx, [edi + 0xba]
imul ebx, eax
lea edx, [edi + 0x6c]
lea eax, [edi + 0x11]
imul esi, eax
lea eax, [edi + 0x58]
imul edx, eax
imul eax, edi, 0x25
add eax, 0xe44
add eax, dword [ebp - 0x54]
lea ecx, [eax + ecx*2]
lea eax, [edi + 0xd]
mov edi, dword [ebp - 0xc]
add ecx, eax
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0xb4]
add ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x68]
add ecx, dword [ebp - 0xfc]
add ecx, dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0xf0]
cmovg eax, dword [ebp - 0xa8]
lea ecx, [eax + ecx*2]
mov eax, dword [ebp - 0x80]
add eax, dword [ebp + 8]
cmp edi, dword [ebp - 0xe8]
mov edi, dword [ebp - 0x40]
cmovg eax, dword [ebp - 0x100]
add ecx, eax
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x44]
cmp edi, dword [ebp - 0x64]
mov edi, dword [ebp - 0xc0]
cmovg eax, dword [ebp - 0xcc]
add ecx, eax
mov eax, dword [ebp - 0x3c]
add eax, dword [ebp - 0x2c]
cmp edi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x30]
cmovg eax, dword [ebp - 0x104]
add ecx, eax
mov eax, dword [ebp - 0xbc]
add eax, dword [ebp - 0x98]
cmp edi, dword [ebp - 0x48]
mov edi, dword [ebp - 0xc8]
cmovg eax, dword [ebp - 0x68]
add ecx, eax
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x20]
cmp edi, dword [ebp - 8]
mov edi, dword [ebp - 0x2c]
cmovl eax, dword [ebp - 0x60]
add ecx, eax
imul edi, dword [ebp - 0x50]
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0x6c]
add ecx, eax
mov eax, dword [ebp - 0x38]
imul eax, dword [ebp - 0xdc]
add ecx, eax
mov eax, dword [ebp - 0xb8]
imul eax, dword [ebp - 0xe4]
add ecx, eax
mov eax, dword [ebp - 0x54]
imul eax, dword [ebp + 8]
add ecx, eax
mov eax, dword [ebp - 0xa0]
imul eax, dword [ebp - 0x64]
add ecx, edi
mov edi, dword [ebp - 0x10c]
add eax, dword [ebp - 0x108]
lea edi, [edi + edi*2]
add eax, ecx
add edi, eax
add edi, dword [ebp - 0x110]
add edi, dword [ebp - 0x70]
add edi, dword [ebp - 8]
add edi, dword [ebp - 0x20]
add edi, dword [ebp - 0x24]
add edi, dword [ebp - 0x74]
add edi, dword [ebp - 0x114]
add edi, dword [ebp - 0x118]
add edi, dword [ebp - 0x28]
add edi, dword [ebp - 0x11c]
add edi, dword [ebp - 0x120]
add edi, dword [ebp - 0x124]
add edi, dword [ebp - 0x78]
add edi, dword [ebp - 0x128]
add edi, dword [ebp - 0x12c]
add edi, dword [ebp - 0x130]
add edi, dword [ebp - 0x7c]
add edi, dword [ebp - 0x30]
add edi, dword [ebp - 0xd4]
add edi, dword [ebp - 0xac]
add edi, dword [ebp - 0xac]
add edi, dword [ebp - 0x134]
mov eax, dword [ebp - 0x2c]
add edi, eax
add edi, dword [ebp - 0x80]
add edi, dword [ebp - 0x9c]
add edi, dword [ebp - 0x40]
add edi, dword [ebp - 0x38]
add edi, dword [ebp - 0x84]
add edi, dword [ebp - 0x58]
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x138]
add edi, dword [ebp - 0x138]
add edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x13c]
add edi, ecx
add edi, dword [ebp - 0xf8]
add edi, dword [ebp - 0xa4]
add edi, dword [ebp - 0x140]
add edi, dword [ebp - 0x88]
add edi, dword [ebp - 0x144]
add edi, dword [ebp - 0x1c]
add edi, dword [ebp - 0x148]
add edi, dword [ebp - 0x14c]
add edi, dword [ebp - 0x8c]
add edi, dword [ebp - 0x150]
add edi, dword [ebp - 0x18]
add edi, dword [ebp - 0x154]
add edi, dword [ebp - 0x158]
add edi, dword [ebp - 0x90]
add edi, dword [ebp - 0x15c]
add edi, dword [ebp - 4]
add edi, dword [ebp - 0x94]
add edi, dword [ebp - 0x98]
add edi, dword [ebp - 0x14]
add edi, dword [ebp - 0x160]
add edi, dword [ebp - 0x9c]
add edi, dword [ebp - 0xd8]
add edi, dword [ebp - 0x164]
add edi, dword [ebp - 0x168]
add edi, dword [ebp - 0xb0]
add edi, dword [ebp - 0x44]
add edi, dword [ebp - 0xa0]
add edi, dword [ebp - 0xa4]
add edi, dword [ebp - 0x60]
add edi, dword [ebp - 0x16c]
add edi, dword [ebp - 0x170]
add edi, dword [ebp - 0x174]
add edi, dword [ebp - 0xc4]
add edi, edx
add edi, dword [ebp - 0xa8]
add edi, dword [ebp - 0xac]
add edi, esi
add edi, dword [ebp - 0xb0]
add edi, dword [ebp - 0x10]
add edi, dword [ebp - 0x178]
add edi, dword [ebp - 0x30]
add edi, dword [ebp - 0x17c]
add edi, dword [ebp - 0xb4]
add edi, dword [ebp - 0x180]
add edi, dword [ebp - 0x34]
add edi, dword [ebp - 8]
add edi, dword [ebp - 0x48]
add edi, dword [ebp - 0x184]
add edi, dword [ebp - 0xb8]
add edi, dword [ebp - 0x188]
add edi, dword [ebp - 0xbc]
add edi, dword [ebp + 8]
add edi, eax
add edi, dword [ebp - 0x38]
add edi, dword [ebp - 0x18c]
add edi, dword [ebp - 0x3c]
add edi, dword [ebp - 0x5c]
add edi, dword [ebp - 0xc]
add edi, dword [ebp - 0xc0]
add edi, dword [ebp - 0x190]
add edi, ecx
add edi, dword [ebp - 0x194]
add edi, dword [ebp - 0x198]
add edi, dword [ebp - 0xb8]
add edi, dword [ebp - 0xc4]
add edi, dword [ebp - 0xc8]
add edi, dword [ebp - 0xcc]
add edi, dword [ebp - 0x19c]
add edi, dword [ebp - 0x50]
add edi, dword [ebp - 0xd0]
add edi, dword [ebp - 0x1a0]
add edi, dword [ebp - 0xd4]
add edi, dword [ebp - 0x40]
add edi, dword [ebp - 0xf4]
add edi, dword [ebp - 0x10]
add edi, dword [ebp - 0x44]
add edi, dword [ebp - 0x1a4]
add edi, dword [ebp - 0x48]
add edi, dword [ebp - 0x1a8]
add edi, dword [ebp - 0x1ac]
add edi, dword [ebp - 0x58]
add edi, dword [ebp - 0xd8]
add edi, ecx
add edi, dword [ebp - 0xdc]
add edi, dword [ebp - 0x1b0]
add edi, ebx
add eax, edi
add eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0xe0]
add eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x1b4]
add eax, dword [ebp - 0xe8]
add eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x1b8]
add eax, dword [ebp - 0x1bc]
add eax, dword [ebp - 0x10]
add eax, ecx
add eax, dword [ebp - 0x58]
add eax, dword [ebp - 0x1c0]
add eax, dword [ebp - 0x1c4]
add eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0xec]
add eax, dword [ebp - 0xf0]
add eax, dword [ebp - 0xf4]
add eax, dword [ebp - 0x1c8]
add eax, dword [ebp - 0x1cc]
add eax, dword [ebp - 0x1d0]
add eax, dword [ebp - 0x60]
add eax, ecx
add eax, dword [ebp - 0xf8]
add eax, dword [ebp - 0x1d4]
add eax, dword [ebp - 0x64]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret