Function at 0x40d290
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov dword [ebp - 0x3c], 0x4684bc39
jmp 0x40d2b0
mov dword [ebp - 0x3c], 0xa766352b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [ebp - 0x3c]
cmp eax, 0x75154aba
jg 0x40d300
cmp eax, 0x85422ada
jg 0x40d310
cmp eax, 0x825a1995
jne 0x40d2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [ebp - 0x3c], 0xf790b80c
jmp 0x40d2b0
cmp eax, 0x75154abb
jne 0x40d2b0
jmp 0x40d2a2
cmp eax, 0x63ed67e7
jg 0x40d369
cmp eax, 0x61ee0810
jg 0x40d440
cmp eax, 0x57499c7e
jg 0x40d478
cmp eax, 0x544beff2
jg 0x40d48f
cmp eax, 0x5058230d
jg 0x40d4af
cmp eax, 0x49f558eb
jg 0x40d4cd
cmp eax, 0x8616c9eb
jg 0x40d51b
cmp eax, 0x85422adb
jne 0x40d2b0
jmp 0x40db9d
cmp eax, 0x63ed67e8
jne 0x40d2b0
mov eax, 4
call fcn.00416160
mov eax, 4
call fcn.00416160
mov ecx, esp
mov eax, 4
call fcn.00416160
mov edx, esp
mov eax, 4
call fcn.00416160
mov esi, esp
mov eax, 4
call fcn.00416160
mov edi, esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x40], esp
mov eax, 4
call fcn.00416160
mov ebx, esp
mov eax, 4
call fcn.00416160
mov eax, 4
call fcn.00416160
mov eax, dword [ebp + 0xc]
mov dword [ecx], eax
mov eax, dword [ebp + 8]
mov ecx, eax
mov dword [edx], ecx
mov dword [esi], ecx
mov eax, dword [edx]
add eax, dword [ecx + 0x11]
mov dword [edi], eax
mov eax, dword [edx]
mov edx, dword [esi]
add eax, dword [edx + 0x15]
mov ecx, dword [ebp - 0x40]
mov dword [ecx], eax
mov dword [ebx], 0
mov dword [esp], 0
mov eax, dword [esi]
mov eax, dword [eax + 5]
sub esp, 0x10
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]
mov dword [ebx], eax
mov dword [ebp - 0x3c], 0x965424bd
jmp 0x40d2b0
cmp eax, 0x61ee0811
jne 0x40d2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
call dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [ebp - 0x3c], 0x825a1995
jmp 0x40d2b0
cmp eax, 0x57499c7f
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x232ff578
jmp 0x40d2b0
cmp eax, 0x544beff3
jne 0x40d2b0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0
mov dword [ebp - 0x3c], 0x9777120a
jmp 0x40d2b0
cmp eax, 0x5058230e
jne 0x40d2b0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov esi, dword [eax]
mov dword [ebp - 0x3c], 0x968b39e4
jmp 0x40d2b0
cmp eax, 0x49f558ec
jne 0x40d2b0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx]
sub esp, 0xc
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0x20
call fcn.00402f00
add esp, 0xc
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
movzx eax, byte [eax]
test al, 1
mov eax, 0xe2584ea0
jne 0x40d513
mov eax, 0x232ff578
mov dword [ebp - 0x3c], eax
jmp 0x40d2b0
cmp eax, 0x8d93cc1d
jg 0x40d54e
cmp eax, 0x8616c9ec
jne 0x40d2b0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x2c]
mov edx, dword [eax]
mov eax, 0xe9919818
cmp ecx, dword [edx + 0xd]
jb 0x40d546
mov eax, 0x49f558ec
mov dword [ebp - 0x3c], eax
jmp 0x40d2b0
cmp eax, 0x92328f4c
jg 0x40d56c
cmp eax, 0x8d93cc1e
jne 0x40d2b0
mov dword [ebp - 0x3c], 0xe7c84da1
jmp 0x40d2b0
cmp eax, 0x965424bc
jg 0x40d593
cmp eax, 0x92328f4d
jne 0x40d2b0
mov eax, dword [ebp - 0x38]
mov dword [eax], 0
mov dword [ebp - 0x3c], 0x1a525c5
jmp 0x40d2b0
cmp eax, 0x4684bc38
jg 0x40d6c0
cmp eax, 0x4638fad4
jg 0x40d6d7
cmp eax, 0x40fd09ac
jg 0x40d6ee
cmp eax, 0x2c8dde8b
jg 0x40d70f
cmp eax, 0x289d4e45
jg 0x40d72e
cmp eax, 0x232ff577
jg 0x40d77f
cmp eax, 0x1eddaa18
jg 0x40d7ad
cmp eax, 0x1d91b415
jg 0x40d803
cmp eax, 0x19b6f723
jg 0x40d81a
cmp eax, 0x34a8bc7
jg 0x40d831
cmp eax, 0x1a525c4
jg 0x40d891
cmp eax, 0xf790b80b
jg 0x40d8b1
cmp eax, 0xf3a15025
jg 0x40d8c8
cmp eax, 0xe9919817
jg 0x40d8e2
cmp eax, 0xe7c84da0
jg 0x40d8f9
cmp eax, 0xe2584e9f
jg 0x40d910
cmp eax, 0xd7b77091
jg 0x40d927
cmp eax, 0xb01c2702
jg 0x40d962
cmp eax, 0xafaa5fac
jg 0x40d979
cmp eax, 0xade9062a
jg 0x40d990
cmp eax, 0xa83de776
jg 0x40d9b4
cmp eax, 0xa766352a
jg 0x40da14
cmp eax, 0xa3a261d4
jg 0x40da36
cmp eax, 0x965424bd
je 0x40da71
cmp eax, 0x968b39e4
jne 0x40db7d
mov ecx, dword [ebp - 0x20]
mov eax, 0x1d91b416
cmp dword [ecx], 0
jne 0x40d6b8
mov eax, 0xafaa5fad
mov dword [ebp - 0x3c], eax
jmp 0x40d2b0
cmp eax, 0x4684bc39
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x965424bd
jmp 0x40d2b0
cmp eax, 0x4638fad5
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x968b39e4
jmp 0x40d2b0
cmp eax, 0x40fd09ad
jne 0x40d2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x38]
mov dword [ecx], eax
mov dword [ebp - 0x3c], 0xe7c84da1
jmp 0x40d2b0
cmp eax, 0x2c8dde8c
jne 0x40d2b0
mov eax, dword [ebp - 0x38]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], 0x85422adb
jmp 0x40d2b0
cmp eax, 0x289d4e46
jne 0x40d2b0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
add eax, dword [ecx + 0x11]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xd]
mov edx, dword [ebp - 0x20]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0040cb30
add esp, 0xc
test eax, eax
mov eax, 0x4638fad5
js 0x40d777
mov eax, 0x40fd09ad
mov dword [ebp - 0x3c], eax
jmp 0x40d2b0
cmp eax, 0x232ff578
jne 0x40d2b0
call fcn.0040e2a0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax]
movzx eax, byte [eax]
test al, 3
mov eax, 0x1eddaa19
jne 0x40d7a5
mov eax, 0x289d4e46
mov dword [ebp - 0x3c], eax
jmp 0x40d2b0
cmp eax, 0x1eddaa19
jne 0x40d2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
sub eax, dword [ecx + 1]
mov ecx, dword [ebp - 0x18]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx]
add eax, dword [ecx + 0x19]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x20]
mov edx, dword [edx]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.0040c650
add esp, 0xc
mov dword [ebp - 0x3c], 0x289d4e46
jmp 0x40d2b0
cmp eax, 0x1d91b416
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x825a1995
jmp 0x40d2b0
cmp eax, 0x19b6f724
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x9777120a
jmp 0x40d2b0
cmp eax, 0x34a8bc8
jne 0x40d2b0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov eax, dword [eax + 5]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
add ecx, 0xd
mov edx, dword [ebp - 0x20]
mov edx, dword [edx]
mov esi, dword [ebp - 0x28]
mov esi, dword [esi]
add edx, dword [esi + 1]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00402f00
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 5]
lea eax, [eax + ecx + 0xd]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov dword [ebp - 0x3c], 0x75154abb
jmp 0x40d2b0
cmp eax, 0x1a525c5
jne 0x40d2b0
mov eax, dword [ebp - 0x38]
mov dword [eax], 0
mov dword [ebp - 0x3c], 0x8d93cc1e
jmp 0x40d2b0
cmp eax, 0xf790b80c
jne 0x40d2b0
mov dword [ebp - 0x3c], 0xafaa5fad
jmp 0x40d2b0
cmp eax, 0xf3a15026
jne 0x40d2b0
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], 0x2c8dde8c
jmp 0x40d2b0
cmp eax, 0xe9919818
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x34a8bc8
jmp 0x40d2b0
cmp eax, 0xe7c84da1
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x2c8dde8c
jmp 0x40d2b0
cmp eax, 0xe2584ea0
jne 0x40d2b0
mov dword [ebp - 0x3c], 0xd7b77092
jmp 0x40d2b0
cmp eax, 0xd7b77092
jne 0x40d2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx]
add eax, dword [ecx + 1]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0040bf20
add esp, 8
mov dword [ebp - 0x3c], 0x57499c7f
jmp 0x40d2b0
cmp eax, 0xb01c2703
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x8616c9ec
jmp 0x40d2b0
cmp eax, 0xafaa5fad
jne 0x40d2b0
mov dword [ebp - 0x3c], 0x1a525c5
jmp 0x40d2b0
cmp eax, 0xade9062b
jne 0x40d2b0
mov al, byte [ebp - 0x11]
test al, al
mov eax, 0x19b6f724
jne 0x40d9ac
mov eax, 0x5058230e
mov dword [ebp - 0x3c], eax
jmp 0x40d2b0
cmp eax, 0xa83de777
jne 0x40d2b0
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov eax, dword [eax + 5]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
add ecx, 0xd
mov edx, dword [ebp - 0x20]
mov edx, dword [edx]
mov esi, dword [ebp - 0x28]
mov esi, dword [esi]
add edx, dword [esi + 1]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00402f00
add esp, 0xc
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 5]
lea eax, [eax + ecx + 0xd]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov dword [ebp - 0x3c], 0x34a8bc8
jmp 0x40d2b0
cmp eax, 0xa766352b
jne 0x40d2b0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 0x1c]
mov dword [ecx], eax
mov dword [ebp - 0x3c], 0x8616c9ec
jmp 0x40d2b0
cmp eax, 0xa3a261d5
jne 0x40d2b0
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x24]
mov ecx, dword [ecx]
add eax, dword [ecx + 1]
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0040bf20
add esp, 8
mov dword [ebp - 0x3c], 0xd7b77092
jmp 0x40d2b0
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x38], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x34], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x30], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x2c], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x28], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x24], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x20], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x1c], esp
mov eax, 4
call fcn.00416160
mov dword [ebp - 0x18], esp
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp + 8]
mov dword [eax], ecx
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
add eax, dword [ecx + 0x11]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx]
add eax, dword [ecx + 0x15]
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
mov dword [eax], 0
mov eax, dword [ebp - 0x18]
mov dword [eax], 0
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov eax, dword [eax + 5]
sub esp, 0x10
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]
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [ebp - 0x20]
cmp dword [eax], 0
setne byte [ebp - 0x11]
mov dword [ebp - 0x3c], 0xade9062b
jmp 0x40d2b0
cmp eax, 0x9777120a
jne 0x40d2b0
mov eax, dword [ebp - 0x1c]
mov dword [eax], 0
mov dword [ebp - 0x3c], 0xb01c2703
jmp 0x40d2b0
mov eax, dword [ebp - 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret