Function at 0x409bf0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x3c
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x18]
add ecx, dword [eax + 0x11]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0x15]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x30], 0
mov eax, dword [ebp - 0x1c]
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 - 0x28], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x34], 0x510b8f14
mov edi, dword [sym.imp.ADVAPI32.dll_CryptAcquireContextA]
jmp 0x409c80
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x34], 0x3a4b058a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x34]
cmp eax, 0x94946b99
jg 0x409ca0
cmp eax, 0x90a98ada
jne 0x409c80
jmp 0x409c69
cmp eax, 0xa242a51f
jg 0x409cf0
cmp eax, 0x94946b9a
jne 0x409c80
mov eax, dword [ebp - 0x24]
inc eax
mov ecx, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x20
call fcn.00402a40
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
test al, 1
mov eax, 0xd45a2bbd
jne 0x409cdd
mov eax, 0xa242a520
mov dword [ebp - 0x34], eax
jmp 0x409c80
cmp eax, 0xa7925080
jg 0x409d1f
cmp eax, 0xa242a520
jne 0x409c80
call fcn.0040bdf0
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
test al, 3
mov eax, 0xa7925081
jne 0x409d17
mov eax, 0x743dce77
mov dword [ebp - 0x34], eax
jmp 0x409c80
cmp eax, 0xd34b1389
jg 0x409d64
cmp eax, 0xa7925081
jne 0x409c80
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
sub eax, dword [ecx + 1]
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov edx, dword [edx + 0x19]
add edx, ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.00408e80
mov dword [ebp - 0x34], 0x743dce77
jmp 0x409c80
cmp eax, 0xd45a2bbc
jg 0x409dae
cmp eax, 0xd34b138a
jne 0x409c80
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 5]
mov edx, dword [ebp - 0x28]
add edx, dword [eax + 1]
add eax, 0xd
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00402a40
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], 0xed9a39c2
jmp 0x409c80
cmp eax, 0xed9a39c1
jg 0x409de3
cmp eax, 0xd45a2bbd
jne 0x409c80
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx + 1]
add ecx, eax
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00408b40
mov dword [ebp - 0x34], 0xa242a520
jmp 0x409c80
cmp eax, 0xee875442
jg 0x409e04
cmp eax, 0xed9a39c2
jne 0x409c80
inc dword [ebp - 0x2c]
mov dword [ebp - 0x34], 0x3a4b058a
jmp 0x409c80
cmp eax, 0x2890c838
jg 0x409e22
cmp eax, 0xee875443
jne 0x409c80
mov dword [ebp - 0x34], 0x31d4320a
jmp 0x409c80
cmp eax, 0x2d4b64e5
jg 0x409e39
cmp eax, 0x2890c839
jne 0x409c80
jmp 0x409f8c
cmp eax, 0x31d43209
jg 0x409e59
cmp eax, 0x2d4b64e6
jne 0x409c80
mov esi, dword [edi]
mov dword [ebp - 0x34], 0x31d4320a
jmp 0x409c80
cmp eax, 0x3a4b0589
jg 0x409e83
cmp eax, 0x31d4320a
jne 0x409c80
mov eax, 0x744f76d7
cmp dword [ebp - 0x28], 0
jne 0x409e7b
mov eax, 0x4730ecf3
mov dword [ebp - 0x34], eax
jmp 0x409c80
cmp eax, 0x4730ecf2
jg 0x409eb2
cmp eax, 0x3a4b058a
jne 0x409c80
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
mov eax, 0xd34b138a
cmp ecx, dword [edx + 0xd]
jb 0x409eaa
mov eax, 0x94946b9a
mov dword [ebp - 0x34], eax
jmp 0x409c80
cmp eax, 0x4a47c14b
jg 0x409ed7
cmp eax, 0x4730ecf3
jne 0x409c80
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x34], 0x2890c839
jmp 0x409c80
cmp eax, 0x510b8f13
jg 0x409efb
cmp eax, 0x4a47c14c
jne 0x409c80
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x34], 0x2890c839
jmp 0x409c80
cmp eax, 0x744f76d7
je 0x409f3e
cmp eax, 0x743dce77
jne 0x409f69
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
add eax, dword [ecx + 0x11]
mov ecx, dword [ecx + 0xd]
mov edx, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00409560
test eax, eax
mov eax, 0xee875443
js 0x409f36
mov eax, 0x4a47c14c
mov dword [ebp - 0x34], eax
jmp 0x409c80
mov eax, dword [ebp - 0x28]
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 - 0x34], 0x4730ecf3
jmp 0x409c80
cmp eax, 0x510b8f14
jne 0x409c80
mov eax, 0x90a98ada
cmp dword [ebp - 0xc], 0
jne 0x409f84
mov eax, 0x2d4b64e6
mov dword [ebp - 0x34], eax
jmp 0x409c80
mov eax, dword [ebp - 0x10]
add esp, 0x3c
pop esi
pop edi
pop ebp
ret