Function at 0x40b780
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], 0xa39dfa45
mov edi, dword [sym.imp.ADVAPI32.dll_CryptDuplicateKey]
jmp 0x40b820
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.0040a6e0
mov dword [ebp - 0x34], 0xfffd455a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x34]
cmp eax, 0x76684c15
jg 0x40b860
cmp eax, 0x6c4ad618
jg 0x40b870
cmp eax, 0x91221c56
jg 0x40b887
cmp eax, 0x8ec25602
jne 0x40b820
mov eax, 0x55749b7e
cmp dword [ebp - 0x28], 0
jne 0x40b84f
mov eax, 0x9b28df31
mov dword [ebp - 0x34], eax
jmp 0x40b820
cmp eax, 0x76684c16
jne 0x40b820
jmp 0x40b7f9
cmp eax, 0x6c4ad619
jne 0x40b820
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x34], 0x91221c57
jmp 0x40b820
cmp eax, 0x9b28df30
jg 0x40b89e
cmp eax, 0x91221c57
jne 0x40b820
mov dword [ebp - 0x34], 0xbcee88f5
jmp 0x40b820
cmp eax, 0xa39dfa44
jg 0x40b8bc
cmp eax, 0x9b28df31
jne 0x40b820
mov dword [ebp - 0x34], 0x6c4ad619
jmp 0x40b820
cmp eax, 0xad5b87d9
jg 0x40b8e6
cmp eax, 0xa39dfa45
jne 0x40b820
mov eax, 0x3c79576a
cmp dword [ebp - 0xc], 0
jne 0x40b8de
mov eax, 0xe61631ef
mov dword [ebp - 0x34], eax
jmp 0x40b820
cmp eax, 0xaf159fc2
jg 0x40b923
cmp eax, 0xad5b87da
jne 0x40b820
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], 0xbbc026
jmp 0x40b820
cmp eax, 0xbcee88f4
jg 0x40b96d
cmp eax, 0xaf159fc3
jne 0x40b820
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.00402770
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x34], 0xc6abc166
jmp 0x40b820
cmp eax, 0xc6abc165
jg 0x40b984
cmp eax, 0xbcee88f5
jne 0x40b820
jmp 0x40bc20
cmp eax, 0x55749b7d
jg 0x40b9ef
cmp eax, 0x54400700
jg 0x40ba06
cmp eax, 0x41fa0d72
jg 0x40ba50
cmp eax, 0x3c795769
jg 0x40ba6e
cmp eax, 0x13775558
jg 0x40ba8c
cmp eax, 0xc1022f9
jg 0x40bab4
cmp eax, 0xc7790aa4
jg 0x40bafe
cmp eax, 0xc6abc166
jne 0x40b820
xor eax, eax
sub eax, dword [ebp - 0x2c]
mov ecx, 1
sub ecx, eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], 0x13775559
jmp 0x40b820
cmp eax, 0x55749b7e
jne 0x40b820
mov dword [ebp - 0x34], 0xbbc026
jmp 0x40b820
cmp eax, 0x54400701
jne 0x40b820
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
mov edx, 0xc76a83aa
sub edx, dword [ecx + 1]
lea eax, [edx + eax + 0x38957c56]
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.0040aad0
mov dword [ebp - 0x34], 0xe72f7413
jmp 0x40b820
cmp eax, 0x41fa0d73
jne 0x40b820
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x34], 0x6c4ad619
jmp 0x40b820
cmp eax, 0x3c79576a
jne 0x40b820
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x34], 0x13775559
jmp 0x40b820
cmp eax, 0x13775559
jne 0x40b820
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x1c]
mov eax, 0xaf159fc3
cmp ecx, dword [edx + 0xd]
jb 0x40baac
mov eax, 0xc1022fa
mov dword [ebp - 0x34], eax
jmp 0x40b820
cmp eax, 0xc1022fa
jne 0x40b820
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.00402770
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
mov ecx, eax
xor ecx, 0xfe
test eax, ecx
mov eax, 0x76684c16
jne 0x40baf6
mov eax, 0xfffd455a
mov dword [ebp - 0x34], eax
jmp 0x40b820
cmp eax, 0xe362ae93
jg 0x40bb1c
cmp eax, 0xc7790aa5
jne 0x40b820
mov dword [ebp - 0x34], 0x8ec25602
jmp 0x40b820
cmp eax, 0xe61631ee
jg 0x40bb3a
cmp eax, 0xe362ae94
jne 0x40b820
mov dword [ebp - 0x34], 0x9b28df31
jmp 0x40b820
cmp eax, 0xe72f7412
jg 0x40bb5a
cmp eax, 0xe61631ef
jne 0x40b820
mov esi, dword [edi]
mov dword [ebp - 0x34], 0x8ec25602
jmp 0x40b820
cmp eax, 0xfd142219
jg 0x40bba1
cmp eax, 0xe72f7413
jne 0x40b820
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.0040b0c0
test eax, eax
mov eax, 0xc7790aa5
js 0x40bb99
mov eax, 0xfd14221a
mov dword [ebp - 0x34], eax
jmp 0x40b820
cmp eax, 0xfd14221a
je 0x40bbd8
cmp eax, 0xfffd455a
jne 0x40bbea
call fcn.0040e5e0
mov eax, dword [ebp - 0x24]
movzx eax, byte [eax]
mov ecx, eax
xor ecx, 0xfc
test eax, ecx
mov eax, 0x54400701
jne 0x40bbd0
mov eax, 0xe72f7413
mov dword [ebp - 0x34], eax
jmp 0x40b820
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x34], 0xbcee88f5
jmp 0x40b820
cmp eax, 0xbbc026
jne 0x40b820
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], 0xe362ae94
jmp 0x40b820
mov eax, dword [ebp - 0x10]
add esp, 0x3c
pop esi
pop edi
pop ebp
ret