Function at 0x40b5d0
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], 0x74e37e8
mov edi, dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
jmp 0x40b650
mov dword [ebp - 0x38], eax
nop
nop
nop
nop
mov eax, dword [ebp - 0x38]
cmp eax, 0x7bcbda19
jg 0x40b7b0
cmp eax, 0x786e6c5d
jg 0x40b7c0
cmp eax, 0x72846fc5
jg 0x40b7e5
cmp eax, 0x6e9885e6
jg 0x40b803
cmp eax, 0x60aa0d11
jg 0x40b81a
cmp eax, 0x39682fce
jg 0x40b850
cmp eax, 0x369b3704
jg 0x40b867
cmp eax, 0x3474616e
jg 0x40b88f
cmp eax, 0x335383d5
jg 0x40b8a6
cmp eax, 0x2b368e68
jg 0x40b8bd
cmp eax, 0x2254c66a
jg 0x40b8fd
cmp eax, 0x86191bc
jg 0x40b91b
cmp eax, 0x74e37e7
jg 0x40b949
cmp eax, 0x39406d8
jg 0x40b96c
cmp eax, 0xfad91253
jg 0x40b9af
cmp eax, 0xf9cf9da7
jg 0x40b9db
cmp eax, 0xf6903898
jg 0x40b9f8
cmp eax, 0xed9fa32f
jg 0x40ba3b
cmp eax, 0xd9cc9038
jg 0x40ba5a
cmp eax, 0xc7c1bc81
jg 0x40ba74
cmp eax, 0xc6ceeb8a
jg 0x40ba8b
cmp eax, 0xbcc41494
jg 0x40baa4
cmp eax, 0xb2eb68d1
jg 0x40bae0
cmp eax, 0xafcef953
jg 0x40baf7
cmp eax, 0xa16757e3
jg 0x40bb0e
cmp eax, 0x8abdda47
jg 0x40bb32
cmp eax, 0x8a78e48f
jne 0x40b650
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.0040a870
mov dword [ebp - 0x38], 0x2b368e69
jmp 0x40b650
cmp eax, 0x7bcbda1a
jne 0x40b650
jmp 0x40bb8a
cmp eax, 0x786e6c5e
jne 0x40b650
mov al, byte [ebp - 0xa]
test al, al
mov eax, 0x86191bd
jne 0x40b649
mov eax, 0xfad91254
jmp 0x40b649
cmp eax, 0x72846fc6
jne 0x40b650
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], 0x369b3705
jmp 0x40b650
cmp eax, 0x6e9885e7
jne 0x40b650
mov dword [ebp - 0x38], 0x39682fcf
jmp 0x40b650
cmp eax, 0x60aa0d12
jne 0x40b650
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], 0x2254c66b
jmp 0x40b650
cmp eax, 0x39682fcf
jne 0x40b650
mov dword [ebp - 0x38], 0xed9fa330
jmp 0x40b650
cmp eax, 0x369b3705
jne 0x40b650
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x20]
mov eax, 0x335383d6
cmp ecx, dword [edx + 0xd]
jb 0x40b887
mov eax, 0xafcef954
mov dword [ebp - 0x38], eax
jmp 0x40b650
cmp eax, 0x3474616f
jne 0x40b650
mov dword [ebp - 0x38], 0x9dc62e6d
jmp 0x40b650
cmp eax, 0x335383d6
jne 0x40b650
mov dword [ebp - 0x38], 0x39406d9
jmp 0x40b650
cmp eax, 0x2b368e69
jne 0x40b650
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.0040afa0
test eax, eax
mov eax, 0xc7c1bc82
js 0x40b8f5
mov eax, 0xf9cf9da8
mov dword [ebp - 0x38], eax
jmp 0x40b650
cmp eax, 0x2254c66b
jne 0x40b650
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x38], 0x7bcbda1a
jmp 0x40b650
cmp eax, 0x86191bd
jne 0x40b650
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.0040a340
mov dword [ebp - 0x38], 0xfad91254
jmp 0x40b650
cmp eax, 0x74e37e8
jne 0x40b650
mov eax, 0x72846fc6
cmp dword [ebp - 0x10], 0
jne 0x40b964
mov eax, 0xc6ceeb8b
mov dword [ebp - 0x38], eax
jmp 0x40b650
cmp eax, 0x39406d9
jne 0x40b650
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.00403110
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], 0xb2eb68d2
jmp 0x40b650
cmp eax, 0xfad91254
jne 0x40b650
call fcn.0040e7f0
mov eax, dword [ebp - 0x28]
movzx eax, byte [eax]
test al, 3
mov eax, 0x8a78e48f
jne 0x40b9d3
mov eax, 0x2b368e69
mov dword [ebp - 0x38], eax
jmp 0x40b650
cmp eax, 0xf9cf9da8
jne 0x40b650
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x38], 0x7bcbda1a
jmp 0x40b650
cmp eax, 0xf6903899
jne 0x40b650
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.00403110
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 5]
lea eax, [eax + ecx + 0xd]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x38], 0x39406d9
jmp 0x40b650
cmp eax, 0xed9fa330
jne 0x40b650
cmp dword [ebp - 0x2c], 0
setne byte [ebp - 9]
mov dword [ebp - 0x38], 0xa16757e4
jmp 0x40b650
cmp eax, 0xd9cc9039
jne 0x40b650
inc dword [ebp - 0x30]
mov dword [ebp - 0x38], 0x369b3705
jmp 0x40b650
cmp eax, 0xc7c1bc82
jne 0x40b650
mov dword [ebp - 0x38], 0x9dc62e6d
jmp 0x40b650
cmp eax, 0xc6ceeb8b
jne 0x40b650
mov esi, dword [edi]
mov dword [ebp - 0x38], 0x39682fcf
jmp 0x40b650
cmp eax, 0xbcc41495
jne 0x40b650
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.00403110
mov eax, dword [ebp - 0x28]
mov al, byte [eax]
and al, 1
mov byte [ebp - 0xa], al
mov dword [ebp - 0x38], 0x786e6c5e
jmp 0x40b650
cmp eax, 0xb2eb68d2
jne 0x40b650
mov dword [ebp - 0x38], 0xd9cc9039
jmp 0x40b650
cmp eax, 0xafcef954
jne 0x40b650
mov dword [ebp - 0x38], 0xbcc41495
jmp 0x40b650
cmp eax, 0xa16757e4
jne 0x40b650
mov al, byte [ebp - 9]
test al, al
mov eax, 0x60aa0d12
jne 0x40bb2a
mov eax, 0x2254c66b
mov dword [ebp - 0x38], eax
jmp 0x40b650
cmp eax, 0x8abdda48
je 0x40bb67
cmp eax, 0x9da50408
jne 0x40bb73
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.00403110
mov dword [ebp - 0x38], 0xbcc41495
jmp 0x40b650
mov dword [ebp - 0x38], 0xed9fa330
jmp 0x40b650
cmp eax, 0x9dc62e6d
jne 0x40b650
mov dword [ebp - 0x38], 0x6e9885e7
jmp 0x40b650
mov eax, dword [ebp - 0x14]
add esp, 0x40
pop esi
pop edi
pop ebp
ret