Function at 0x40d8a0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x44
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x20]
add ecx, dword [eax + 0x11]
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx + 0x15]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 5]
mov dword [esp + 4], eax
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x1000
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
sub esp, 0x10
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x3c], 0x558281f9
mov edi, dword [sym.imp.ADVAPI32.dll_AddAccessDeniedAce]
jmp 0x40d940
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 1]
add ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040c390
mov dword [ebp - 0x3c], 0xf607e418
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x3c]
cmp eax, 0x8a176315
jg 0x40d960
cmp eax, 0x8115834e
jne 0x40d940
jmp 0x40d919
cmp eax, 0x9251e610
jg 0x40d990
cmp eax, 0x8a176316
jne 0x40d940
mov eax, 0x399c18a1
cmp dword [ebp - 0x30], 0
jne 0x40d97e
mov eax, 0x6244af26
mov dword [ebp - 0x3c], eax
jmp 0x40d940
cmp eax, 0x9ba237d2
jg 0x40d9ae
cmp eax, 0x9251e611
jne 0x40d940
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x3c], 0xaf5ba36c
jmp 0x40d940
cmp eax, 0x9f31498e
jg 0x40d9e7
cmp eax, 0x9ba237d3
jne 0x40d940
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
sub esp, 0xc
mov dword [ebp - 0x3c], 0x7f43c6dd
jmp 0x40d940
cmp eax, 0xa1c208c8
jg 0x40da05
cmp eax, 0x9f31498f
jne 0x40d940
mov dword [ebp - 0x3c], 0x8a176316
jmp 0x40d940
cmp eax, 0xad2d5f80
jg 0x40da23
cmp eax, 0xa1c208c9
jne 0x40d940
mov dword [ebp - 0x3c], 0x425ccbc1
jmp 0x40d940
cmp eax, 0xaf5ba36b
jg 0x40da43
cmp eax, 0xad2d5f81
jne 0x40d940
mov esi, dword [edi]
mov dword [ebp - 0x3c], 0x9f31498f
jmp 0x40d940
cmp eax, 0xbe0ce229
jg 0x40da61
cmp eax, 0xaf5ba36c
jne 0x40d940
mov dword [ebp - 0x3c], 0xe4b5387c
jmp 0x40d940
cmp eax, 0xc4255065
jg 0x40da8c
cmp eax, 0xbe0ce22a
jne 0x40d940
mov al, byte [ebp - 0xd]
test al, al
mov eax, 0xd814265c
jne 0x40da84
mov eax, 0xd5d65780
mov dword [ebp - 0x3c], eax
jmp 0x40d940
cmp eax, 0xc735e793
jg 0x40daaa
cmp eax, 0xc4255066
jne 0x40d940
mov dword [ebp - 0x3c], 0x6405a81
jmp 0x40d940
cmp eax, 0xd1fbef39
jg 0x40dac8
cmp eax, 0xc735e794
jne 0x40d940
mov dword [ebp - 0x3c], 0x7e96cf86
jmp 0x40d940
cmp eax, 0x7f43c6dc
jg 0x40dbf2
cmp eax, 0x7e96cf85
jg 0x40dc09
cmp eax, 0x6f7ce38f
jg 0x40dc20
cmp eax, 0x6b95fcd7
jg 0x40dc56
cmp eax, 0x642fb7fb
jg 0x40dc84
cmp eax, 0x6244af25
jg 0x40dc9b
cmp eax, 0x619c69fc
jg 0x40dcb9
cmp eax, 0x605a03db
jg 0x40dcc9
cmp eax, 0x59247b9d
jg 0x40dce0
cmp eax, 0x57877d7c
jg 0x40dd04
cmp eax, 0x558281f8
jg 0x40dd4e
cmp eax, 0x425ccbc0
jg 0x40dd71
cmp eax, 0x399c18a0
jg 0x40dd8e
cmp eax, 0x26447178
jg 0x40dda5
cmp eax, 0x18a3bf96
jg 0x40ddbc
cmp eax, 0xc9b01ff
jg 0x40ddd9
cmp eax, 0xa38c363
jg 0x40de1c
cmp eax, 0x6405a80
jg 0x40de38
cmp eax, 0xfd7dff95
jg 0x40de68
cmp eax, 0xf607e417
jg 0x40de81
cmp eax, 0xf240f1e2
jg 0x40de98
cmp eax, 0xe4b5387b
jg 0x40deaf
cmp eax, 0xe0232a87
jg 0x40ded5
cmp eax, 0xd814265b
jg 0x40deec
cmp eax, 0xd1fbef3a
je 0x40df36
cmp eax, 0xd214d9af
jne 0x40df45
mov dword [ebp - 0x3c], 0x7e96cf86
jmp 0x40d940
cmp eax, 0x7f43c6dd
jne 0x40d940
mov dword [ebp - 0x3c], 0x6244af26
jmp 0x40d940
cmp eax, 0x7e96cf86
jne 0x40d940
mov dword [ebp - 0x3c], 0x642fb7fc
jmp 0x40d940
cmp eax, 0x6f7ce390
jne 0x40d940
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
sub esp, 0xc
mov dword [ebp - 0x3c], 0x9ba237d3
jmp 0x40d940
cmp eax, 0x6b95fcd8
jne 0x40d940
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 1]
add ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040c390
mov dword [ebp - 0x3c], 0x8115834e
jmp 0x40d940
cmp eax, 0x642fb7fc
jne 0x40d940
mov dword [ebp - 0x3c], 0x8a176316
jmp 0x40d940
cmp eax, 0x6244af26
jne 0x40d940
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x3c], 0x605a03dc
jmp 0x40d940
cmp eax, 0x619c69fd
jne 0x40d940
jmp 0x40df85
cmp eax, 0x605a03dc
jne 0x40d940
mov dword [ebp - 0x3c], 0x425ccbc1
jmp 0x40d940
cmp eax, 0x59247b9e
jne 0x40d940
mov al, byte [ebp - 0xe]
test al, al
mov eax, 0xc9b0200
jne 0x40dcfc
mov eax, 0x57877d7d
mov dword [ebp - 0x3c], eax
jmp 0x40d940
cmp eax, 0x57877d7d
jne 0x40d940
mov eax, dword [ebp - 0x2c]
inc eax
mov ecx, dword [ebp - 0x1c]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x20
call fcn.00403870
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax]
mov ecx, eax
xor ecx, 0xfe
test eax, ecx
mov eax, 0xf240f1e3
jne 0x40dd46
mov eax, 0xc4255066
mov dword [ebp - 0x3c], eax
jmp 0x40d940
cmp eax, 0x558281f9
jne 0x40d940
mov eax, 0x9251e611
cmp dword [ebp - 0x14], 0
jne 0x40dd69
mov eax, 0x26447179
mov dword [ebp - 0x3c], eax
jmp 0x40d940
cmp eax, 0x425ccbc1
jne 0x40d940
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x3c], 0x619c69fd
jmp 0x40d940
cmp eax, 0x399c18a1
jne 0x40d940
mov dword [ebp - 0x3c], 0x9ba237d3
jmp 0x40d940
cmp eax, 0x26447179
jne 0x40d940
mov dword [ebp - 0x3c], 0xad2d5f81
jmp 0x40d940
cmp eax, 0x18a3bf97
jne 0x40d940
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x3c], 0x605a03dc
jmp 0x40d940
cmp eax, 0xc9b0200
jne 0x40d940
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 5]
mov edx, dword [ebp - 0x30]
add edx, dword [eax + 1]
add eax, 0xd
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00403870
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], 0xd1fbef3a
jmp 0x40d940
cmp eax, 0xa38c364
jne 0x40d940
call fcn.00410c40
mov dword [ebp - 0x3c], 0x6405a81
jmp 0x40d940
cmp eax, 0x6405a81
jne 0x40d940
call fcn.00410c40
mov eax, dword [ebp - 0x2c]
movzx eax, byte [eax]
mov ecx, eax
xor ecx, 0xfc
test eax, ecx
setne byte [ebp - 0xd]
mov dword [ebp - 0x3c], 0xbe0ce22a
jmp 0x40d940
cmp eax, 0xfd7dff96
jne 0x40d940
mov esi, dword [edi]
mov dword [ebp - 0x3c], 0xad2d5f81
jmp 0x40d940
cmp eax, 0xf607e418
jne 0x40d940
mov dword [ebp - 0x3c], 0xc4255066
jmp 0x40d940
cmp eax, 0xf240f1e3
jne 0x40d940
mov dword [ebp - 0x3c], 0x8115834e
jmp 0x40d940
cmp eax, 0xe4b5387c
jne 0x40d940
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x24]
cmp eax, dword [ecx + 0xd]
setb al
mov byte [ebp - 0xe], al
mov dword [ebp - 0x3c], 0x59247b9e
jmp 0x40d940
cmp eax, 0xe0232a88
jne 0x40d940
mov dword [ebp - 0x3c], 0xe4b5387c
jmp 0x40d940
cmp eax, 0xd814265c
jne 0x40d940
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov edx, 0x16071da3
sub edx, dword [ecx + 1]
lea eax, [edx + eax - 0x16071da3]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov edx, dword [edx + 0x19]
add edx, ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0040c950
mov dword [ebp - 0x3c], 0xd5d65780
jmp 0x40d940
inc dword [ebp - 0x34]
mov dword [ebp - 0x3c], 0xaf5ba36c
jmp 0x40d940
cmp eax, 0xd5d65780
jne 0x40d940
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
add eax, dword [ecx + 0x11]
mov ecx, dword [ecx + 0xd]
mov edx, dword [ebp - 0x30]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0040d180
test eax, eax
mov eax, 0xc735e794
js 0x40df7d
mov eax, 0x18a3bf97
mov dword [ebp - 0x3c], eax
jmp 0x40d940
mov eax, dword [ebp - 0xc]
add esp, 0x44
pop esi
pop edi
pop ebp
ret