Function at 0x403e70
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
mov dword [ebp - 0x18], ecx
jmp 0x403f79
jmp 0x404174
mov eax, eax
mov eax, eax
jmp 0x404081
nop
jmp 0x404132
jmp 0x4042db
jmp 0x40408a
pop esi
pop ebx
jmp 0x404313
mov ebx, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
mov edx, dword [ebx + 0x100]
lea eax, [ebp - 4]
push eax
mov eax, dword [ebx + 0x104]
push ecx
push edx
add eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov ecx, dword [str.w78U]
mov edx, dword [0x47f18c]
sub esp, 0x14
mov eax, esp
mov dword [eax], ecx
jmp 0x4040d0
push 0
jmp 0x4042dc
mov dword [ebp - 8], eax
test esi, esi
je 0x403f34
lea ebx, [eax - 8]
shr ebx, 1
mov dword [ebp - 0x14], ebx
mov edi, edi
xor ecx, ecx
test ebx, ebx
jbe 0x4042fc
jmp 0x403fe1
movzx eax, word [edx + ecx*2 + 8]
and eax, 0xfff
add eax, esi
cmp eax, dword [0x47f19c]
jb 0x4042f0
cmp eax, dword [0x47f1a0]
jmp 0x4042e1
jmp 0x4040bb
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
jmp 0x40410c
jmp 0x403eb4
cmp dword [0x47f1a0], eax
je 0x403f34
mov edx, dword [ebx + 0xa0]
add edx, edi
jmp 0x4041f0
jmp 0x4040fa
mov ecx, dword [0x47f190]
mov dword [eax + 4], edx
mov edx, dword [0x47f194]
mov dword [eax + 8], ecx
mov ecx, dword [0x47f198]
jmp 0x40405c
jmp 0x4041e3
call 0x403d10
mov esi, dword [ebp - 0x18]
add esp, 0x14
mov dword [esi], eax
test eax, eax
je 0x403e9b
mov ecx, esi
call fcn.00403e60
jmp 0x403e9b
nop
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
jmp 0x4041cd
jmp 0x40402a
jmp 0x404325
jmp 0x404152
jmp 0x40423c
shr ebx, 1
mov dword [ebp - 0x10], ebx
jmp 0x404185
xor ecx, ecx
test ebx, ebx
jbe 0x4041bd
movzx eax, word [edx + ecx*2 + 8]
and eax, 0xfff
add eax, esi
cmp eax, dword [0x47f19c]
jb 0x4041b5
cmp eax, dword [0x47f1a0]
jae 0x4041b5
mov ebx, 0x400000
sub ebx, edi
add eax, edi
add dword [eax], ebx
mov ebx, dword [ebp - 0x10]
inc ecx
cmp ecx, ebx
jb 0x40418b
mov eax, dword [ebp - 8]
mov esi, dword [edx + eax]
jmp 0x404241
pop edi
mov eax, esi
jmp 0x403efa
jmp 0x40416c
jmp 0x40430e
pop ebp
jmp 0x40422b
cmp edi, edx
jmp 0x4042b3
mov ecx, dword [ebx + 0x100]
mov edx, dword [ebx + 0x104]
lea eax, [ebp - 4]
push eax
push 0x40
push ecx
add edx, edi
push edx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, 0x42424242
cmp dword [0x47f19c], eax
jne 0x404096
jmp 0x403ef3
jmp 0x4041db
jmp 0x40431a
push 0x28
jmp 0x40415d
jmp 0x4042d1
add edx, eax
test esi, esi
jne 0x404185
mov ebx, dword [ebp - 0xc]
push 0
mov eax, dword [ebp - 0x14]
mov esi, dword [0x47f19c]
mov ecx, dword [0x47f19c]
cmp ecx, dword [0x47f1a0]
jae 0x404278
mov edx, dword [eax + ecx]
xor edx, dword [0x47f1a4]
mov dword [eax + ecx], edx
add ecx, 4
jmp 0x40425f
mov edx, dword [ebx + 0xa0]
add edx, edi
cmp edx, edi
je 0x403f34
mov esi, dword [edx]
mov eax, dword [edx + 4]
jmp 0x403fb8
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edi, eax
mov eax, dword [edi + 0x3c]
add eax, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0x1e8480
mov edi, edi
jmp 0x404235
je 0x40424e
mov esi, dword [edx]
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
test esi, esi
je 0x40424e
lea ebx, [eax - 8]
jmp 0x40417b
jmp 0x403ece
jmp 0x403e85
ret
jmp 0x404292
jae 0x4042f0
lea ebx, [edi - 0x400000]
add eax, edi
add dword [eax], ebx
mov ebx, dword [ebp - 0x14]
inc ecx
cmp ecx, ebx
jb 0x403fe1
mov eax, dword [ebp - 8]
mov esi, dword [edx + eax]
add edx, eax
test esi, esi
jne 0x403fcd
jmp 0x403f31
jmp 0x404230
mov esp, ebp
jmp 0x40431f
jmp 0x4042d6
jmp 0x4041e9
call fcn.004043be
push 0x28
mov esi, eax
call fcn.004043be
mov ebx, eax
mov dword [esi], 1
push esi
mov dword [ebx], 1
call fcn.004043b3
push ebx
call fcn.004043b3
add esp, 0x10
sub dword [ebp - 8], 1
jne 0x404235
mov ebx, dword [ebp - 0xc]
jmp 0x4041f8