Function at 0x40e710
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x40
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0x11]
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
add eax, dword [ecx + 0x15]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x34], 0
mov eax, dword [ebp - 0x20]
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 - 0x2c], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x38], 0xcbe9486d
mov edi, dword [sym.imp.ADVAPI32.dll_CryptContextAddRef]
jmp 0x40e790
mov dword [ebp - 0x38], eax
nop
nop
nop
nop
mov eax, dword [ebp - 0x38]
cmp eax, 0x7073de9a
jg 0x40e7d0
cmp eax, 0x8581395b
jg 0x40e7f0
cmp eax, 0x81253bba
jne 0x40e790
mov eax, dword [ebp - 0x2c]
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 - 0x38], 0x21f256fc
jmp 0x40e790
cmp eax, 0x7073de9b
jne 0x40e790
mov eax, 0x81253bba
cmp dword [ebp - 0x2c], 0
jne 0x40e789
mov eax, 0x21f256fc
jmp 0x40e789
cmp eax, 0x8a33c475
jg 0x40e809
cmp eax, 0x8581395c
jne 0x40e790
mov esi, dword [edi]
mov dword [ebp - 0x38], 0x7073de9b
jmp 0x40e790
cmp eax, 0xa94e8d06
jg 0x40e850
cmp eax, 0x8a33c476
jne 0x40e790
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
add eax, dword [ecx + 0x11]
mov ecx, dword [ecx + 0xd]
mov edx, dword [ebp - 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0040e190
test eax, eax
mov eax, 0x444c52b0
js 0x40e848
mov eax, 0xc6dd008f
mov dword [ebp - 0x38], eax
jmp 0x40e790
cmp eax, 0xaffed8b0
jg 0x40e885
cmp eax, 0xa94e8d07
jne 0x40e790
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx + 1]
add ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0040d7e0
mov dword [ebp - 0x38], 0x69b401e
jmp 0x40e790
cmp eax, 0xc08effaf
jg 0x40e8cf
cmp eax, 0xaffed8b1
jne 0x40e790
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 5]
mov edx, dword [ebp - 0x2c]
add edx, dword [eax + 1]
add eax, 0xd
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.004034e0
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], 0x4df040b8
jmp 0x40e790
cmp eax, 0xc6292651
jg 0x40e8fe
cmp eax, 0xc08effb0
jne 0x40e790
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
mov eax, 0xaffed8b1
cmp ecx, dword [edx + 0xd]
jb 0x40e8f6
mov eax, 0xc6292652
mov dword [ebp - 0x38], eax
jmp 0x40e790
cmp eax, 0x53c15e68
jg 0x40e994
cmp eax, 0x5151afd2
jg 0x40e9b2
cmp eax, 0x4df040b7
jg 0x40e9ce
cmp eax, 0x444c52af
jg 0x40e9f4
cmp eax, 0x33fceb02
jg 0x40ea0b
cmp eax, 0x2a787ede
jg 0x40ea2f
cmp eax, 0x21f256fb
jg 0x40ea6d
cmp eax, 0x69b401d
jg 0x40ea8b
cmp eax, 0xd6ca08bc
jg 0x40eaa2
cmp eax, 0xcbe9486c
jg 0x40eab2
cmp eax, 0xc6292652
je 0x40ead5
cmp eax, 0xc6dd008f
jne 0x40eb14
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], 0xd6ca08bd
jmp 0x40e790
cmp eax, 0x53c15e69
jne 0x40e790
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], 0xc08effb0
jmp 0x40e790
cmp eax, 0x5151afd3
jne 0x40e790
call fcn.0040f4b0
mov dword [ebp - 0x38], 0xcab17ac8
jmp 0x40e790
cmp eax, 0x4df040b8
jne 0x40e790
xor eax, eax
sub eax, dword [ebp - 0x30]
mov ecx, 1
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], 0xc08effb0
jmp 0x40e790
cmp eax, 0x444c52b0
jne 0x40e790
mov dword [ebp - 0x38], 0x7073de9b
jmp 0x40e790
cmp eax, 0x33fceb03
jne 0x40e790
mov al, byte [ebp - 9]
test al, al
mov eax, 0x2a787edf
jne 0x40ea27
mov eax, 0x8a33c476
mov dword [ebp - 0x38], eax
jmp 0x40e790
cmp eax, 0x2a787edf
jne 0x40e790
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
sub eax, dword [ecx + 1]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 0x19]
add edx, ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0040dca0
mov dword [ebp - 0x38], 0x8a33c476
jmp 0x40e790
cmp eax, 0x21f256fc
jne 0x40e790
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x38], 0xd6ca08bd
jmp 0x40e790
cmp eax, 0x69b401e
jne 0x40e790
mov dword [ebp - 0x38], 0xcab17ac8
jmp 0x40e790
cmp eax, 0xd6ca08bd
jne 0x40e790
jmp 0x40eb44
cmp eax, 0xcbe9486d
jne 0x40e790
mov eax, 0x53c15e69
cmp dword [ebp - 0x10], 0
jne 0x40eacd
mov eax, 0x8581395c
mov dword [ebp - 0x38], eax
jmp 0x40e790
mov eax, dword [ebp - 0x28]
inc eax
mov ecx, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x20
call fcn.004034e0
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
mov ecx, eax
xor ecx, 0xfe
test eax, ecx
mov eax, 0xa94e8d07
jne 0x40eb0c
mov eax, 0x69b401e
mov dword [ebp - 0x38], eax
jmp 0x40e790
cmp eax, 0xcab17ac8
jne 0x40e790
call fcn.0040f4b0
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
mov ecx, eax
xor ecx, 0xfc
test eax, ecx
setne byte [ebp - 9]
mov dword [ebp - 0x38], 0x33fceb03
jmp 0x40e790
mov eax, dword [ebp - 0x14]
add esp, 0x40
pop esi
pop edi
pop ebp
ret