Function at 0x40d6c0
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], 0xf4e410c5
mov edi, dword [sym.imp.ADVAPI32.dll_CryptGetDefaultProviderA]
jmp 0x40d760
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], 0x70283a4
nop
mov eax, dword [ebp - 0x38]
cmp eax, 0x74def8fd
jg 0x40d7a0
cmp eax, 0x6dd0c998
jg 0x40d7b0
cmp eax, 0x5c7006e1
jg 0x40d7c7
cmp eax, 0x8b8bbbd0
jg 0x40d7d7
cmp eax, 0x8579b396
jne 0x40d760
mov al, byte [ebp - 9]
test al, al
mov eax, 0xd023a572
jne 0x40d797
mov eax, 0x4aa8d084
mov dword [ebp - 0x38], eax
jmp 0x40d760
cmp eax, 0x74def8fe
jne 0x40d760
jmp 0x40d739
cmp eax, 0x6dd0c999
jne 0x40d760
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], 0x53124e56
jmp 0x40d760
cmp eax, 0x5c7006e2
jne 0x40d760
mov dword [ebp - 0x38], 0xe451ef98
jmp 0x40d760
cmp eax, 0xa207a239
jg 0x40d804
cmp eax, 0x8b8bbbd1
jne 0x40d760
xor eax, eax
sub eax, dword [ebp - 0x30]
mov ecx, 1
sub ecx, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x38], 0xa93cd791
jmp 0x40d760
cmp eax, 0xa8d2fa00
jg 0x40d822
cmp eax, 0xa207a23a
jne 0x40d760
mov dword [ebp - 0x38], 0xa93cd791
jmp 0x40d760
cmp eax, 0x53124e55
jg 0x40d8a5
cmp eax, 0x505b4e4d
jg 0x40d8bc
cmp eax, 0x4c617b0a
jg 0x40d8d3
cmp eax, 0x4aa8d083
jg 0x40d901
cmp eax, 0x45c39ebb
jg 0x40d941
cmp eax, 0x454fce54
jg 0x40d958
cmp eax, 0x32f40c22
jg 0x40d9a0
cmp eax, 0x297d619d
jg 0x40d9b9
cmp eax, 0xa93cd790
jg 0x40d9d0
cmp eax, 0xa8d2fa01
jne 0x40d760
mov al, byte [ebp - 0xa]
test al, al
mov eax, 0xbb5c5f67
jne 0x40d89d
mov eax, 0x454fce55
mov dword [ebp - 0x38], eax
jmp 0x40d760
cmp eax, 0x53124e56
jne 0x40d760
mov dword [ebp - 0x38], 0xe451ef98
jmp 0x40d760
cmp eax, 0x505b4e4e
jne 0x40d760
mov dword [ebp - 0x38], 0xaf73e52c
jmp 0x40d760
cmp eax, 0x4c617b0b
jne 0x40d760
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.0040c520
mov dword [ebp - 0x38], 0xe9be5767
jmp 0x40d760
cmp eax, 0x4aa8d084
jne 0x40d760
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.0040cf30
test eax, eax
mov eax, 0x120f0e3f
js 0x40d939
mov eax, 0xd833da37
mov dword [ebp - 0x38], eax
jmp 0x40d760
cmp eax, 0x45c39ebc
jne 0x40d760
mov dword [ebp - 0x38], 0xe9be5767
jmp 0x40d760
cmp eax, 0x454fce55
jne 0x40d760
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.00402cb0
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
not eax
or eax, 0xfffffffe
cmp eax, 0xffffffff
mov eax, 0x45c39ebc
jne 0x40d998
mov eax, 0x505b4e4e
mov dword [ebp - 0x38], eax
jmp 0x40d760
cmp eax, 0x32f40c23
jne 0x40d760
mov esi, dword [edi]
mov dword [ebp - 0x38], 0xcdc66a6b
jmp 0x40d760
cmp eax, 0x297d619e
jne 0x40d760
mov dword [ebp - 0x38], 0x53124e56
jmp 0x40d760
cmp eax, 0xaf73e52b
jg 0x40d9f1
cmp eax, 0xa93cd791
jne 0x40d760
inc dword [ebp - 0x30]
mov dword [ebp - 0x38], 0x297d619e
jmp 0x40d760
cmp eax, 0xb6c8a23c
jg 0x40da26
cmp eax, 0xaf73e52c
jne 0x40d760
call fcn.0040e480
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
not eax
or eax, 0xfffffffc
cmp eax, 0xffffffff
setne byte [ebp - 9]
mov dword [ebp - 0x38], 0x8579b396
jmp 0x40d760
cmp eax, 0xbb5c5f66
jg 0x40da49
cmp eax, 0xb6c8a23d
jne 0x40d760
call fcn.0040e480
mov dword [ebp - 0x38], 0xaf73e52c
jmp 0x40d760
cmp eax, 0xcdc66a6a
jg 0x40da93
cmp eax, 0xbb5c5f67
jne 0x40d760
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.00402cb0
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], 0xa207a23a
jmp 0x40d760
cmp eax, 0xd023a571
jg 0x40dabd
cmp eax, 0xcdc66a6b
jne 0x40d760
mov eax, 0x74def8fe
cmp dword [ebp - 0x2c], 0
jne 0x40dab5
mov eax, 0x70283a4
mov dword [ebp - 0x38], eax
jmp 0x40d760
cmp eax, 0xd833da36
jg 0x40db0e
cmp eax, 0xd023a572
jne 0x40d760
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x20]
mov edx, 0xec288ef2
sub edx, dword [ecx + 1]
lea eax, [edx + eax + 0x13d7710e]
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.0040c9b0
mov dword [ebp - 0x38], 0x4aa8d084
jmp 0x40d760
cmp eax, 0xe451ef97
jg 0x40db32
cmp eax, 0xd833da37
jne 0x40d760
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], 0x25d56dc5
jmp 0x40d760
cmp eax, 0xe9be5766
jg 0x40db5f
cmp eax, 0xe451ef98
jne 0x40d760
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x20]
cmp eax, dword [ecx + 0xd]
setb al
mov byte [ebp - 0xa], al
mov dword [ebp - 0x38], 0xa8d2fa01
jmp 0x40d760
cmp eax, 0xf4e410c4
jg 0x40db94
cmp eax, 0xe9be5767
jne 0x40d760
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.0040c520
mov dword [ebp - 0x38], 0x260c1726
jmp 0x40d760
cmp eax, 0x70283a3
jg 0x40dbbe
cmp eax, 0xf4e410c5
jne 0x40d760
mov eax, 0x6dd0c999
cmp dword [ebp - 0x10], 0
jne 0x40dbb6
mov eax, 0x32f40c23
mov dword [ebp - 0x38], eax
jmp 0x40d760
cmp eax, 0x120f0e3e
jg 0x40dbe3
cmp eax, 0x70283a4
jne 0x40d760
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x38], 0x25d56dc5
jmp 0x40d760
cmp eax, 0x120f0e3f
je 0x40dbfd
cmp eax, 0x260c1726
jne 0x40dc09
mov dword [ebp - 0x38], 0x505b4e4e
jmp 0x40d760
mov dword [ebp - 0x38], 0xcdc66a6b
jmp 0x40d760
cmp eax, 0x25d56dc5
jne 0x40d760
mov eax, dword [ebp - 0x14]
add esp, 0x40
pop esi
pop edi
pop ebp
ret