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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x98
mov eax, dword [0x452080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
mov edx, ecx
add edx, 0xdde6289c
sub edx, 1
sub edx, 0xdde6289c
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x76], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x75], al
mov dword [ebp - 0x7c], 0xba8c7d77
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
sub eax, 0x81335637
je 0x40f4f7
jmp 0x40eeeb
mov eax, dword [ebp - 0x80]
sub eax, 0x8528a905
je 0x40ff70
jmp 0x40eefe
mov eax, dword [ebp - 0x80]
sub eax, 0x8eaf6da4
je 0x40f47a
jmp 0x40ef11
mov eax, dword [ebp - 0x80]
sub eax, 0x9389da8d
je 0x40f6f1
jmp 0x40ef24
mov eax, dword [ebp - 0x80]
sub eax, 0x95bae636
je 0x40f57f
jmp 0x40ef37
mov eax, dword [ebp - 0x80]
sub eax, 0xa3d727cc
je 0x40fad3
jmp 0x40ef4a
mov eax, dword [ebp - 0x80]
sub eax, 0xa44d1380
je 0x40fe87
jmp 0x40ef5d
mov eax, dword [ebp - 0x80]
sub eax, 0xa865faa5
je 0x40fabd
jmp 0x40ef70
mov eax, dword [ebp - 0x80]
sub eax, 0xa9fc9668
je 0x40fb19
jmp 0x40ef83
mov eax, dword [ebp - 0x80]
sub eax, 0xaa094b51
je 0x40fbcb
jmp 0x40ef96
mov eax, dword [ebp - 0x80]
sub eax, 0xade75279
je 0x40f573
jmp 0x40efa9
mov eax, dword [ebp - 0x80]
sub eax, 0xb9b0c122
je 0x40ff06
jmp 0x40efbc
mov eax, dword [ebp - 0x80]
sub eax, 0xba8c7d77
je 0x40f20e
jmp 0x40efcf
mov eax, dword [ebp - 0x80]
sub eax, 0xc8ab34c8
je 0x40fa12
jmp 0x40efe2
mov eax, dword [ebp - 0x80]
sub eax, 0xca27c54f
je 0x40fce3
jmp 0x40eff5
mov eax, dword [ebp - 0x80]
sub eax, 0xce7b0c32
je 0x40ff58
jmp 0x40f008
mov eax, dword [ebp - 0x80]
sub eax, 0xcef66b60
je 0x40fba1
jmp 0x40f01b
mov eax, dword [ebp - 0x80]
sub eax, 0xdc86ffc6
je 0x40fb95
jmp 0x40f02e
mov eax, dword [ebp - 0x80]
sub eax, 0xea921780
je 0x40f8b2
jmp 0x40f041
mov eax, dword [ebp - 0x80]
sub eax, 0xee6d2520
je 0x40f958
jmp 0x40f054
mov eax, dword [ebp - 0x80]
sub eax, 0xf01816ae
je 0x40f5f2
jmp 0x40f067
mov eax, dword [ebp - 0x80]
sub eax, 0xf4464e8d
je 0x40f8cd
jmp 0x40f07a
mov eax, dword [ebp - 0x80]
sub eax, 0xfca7ea36
je 0x40fc56
jmp 0x40f08d
mov eax, dword [ebp - 0x80]
sub eax, 0xff272ad5
je 0x40fcd2
jmp 0x40f0a0
mov eax, dword [ebp - 0x80]
sub eax, 0x50fefe7
je 0x40faa5
jmp 0x40f0b3
mov eax, dword [ebp - 0x80]
sub eax, 0x587cf44
je 0x40f882
jmp 0x40f0c6
mov eax, dword [ebp - 0x80]
sub eax, 0x12352dc5
je 0x40fc08
jmp 0x40f0d9
mov eax, dword [ebp - 0x80]
sub eax, 0x1d84e83b
je 0x40f234
jmp 0x40f0ec
mov eax, dword [ebp - 0x80]
sub eax, 0x22dfa3c0
je 0x40f4a9
jmp 0x40f0ff
mov eax, dword [ebp - 0x80]
sub eax, 0x24536ca2
je 0x40fea5
jmp 0x40f112
mov eax, dword [ebp - 0x80]
sub eax, 0x29b4abbe
je 0x40fbb7
jmp 0x40f125
mov eax, dword [ebp - 0x80]
sub eax, 0x2bd46e9f
je 0x40f7d9
jmp 0x40f138
mov eax, dword [ebp - 0x80]
sub eax, 0x2c8b6f7c
je 0x40f67e
jmp 0x40f14b
mov eax, dword [ebp - 0x80]
sub eax, 0x35e7b8bc
je 0x40f672
jmp 0x40f15e
mov eax, dword [ebp - 0x80]
sub eax, 0x382327a8
je 0x40fe96
jmp 0x40f171
mov eax, dword [ebp - 0x80]
sub eax, 0x38cd2140
je 0x40feb8
jmp 0x40f184
mov eax, dword [ebp - 0x80]
sub eax, 0x3f7058b3
je 0x40f445
jmp 0x40f197
mov eax, dword [ebp - 0x80]
sub eax, 0x3fd82cc5
je 0x40f451
jmp 0x40f1aa
mov eax, dword [ebp - 0x80]
sub eax, 0x52fed3c6
je 0x40f770
jmp 0x40f1bd
mov eax, dword [ebp - 0x80]
sub eax, 0x5507d1ed
je 0x40f876
jmp 0x40f1d0
mov eax, dword [ebp - 0x80]
sub eax, 0x56ea9e14
je 0x40f78b
jmp 0x40f1e3
mov eax, dword [ebp - 0x80]
sub eax, 0x7089f2cc
je 0x40fab1
jmp 0x40f1f6
mov eax, dword [ebp - 0x80]
sub eax, 0x78543564
je 0x40f9c4
jmp 0x40f209
jmp 0x40ff88
mov al, byte [ebp - 0x76]
mov cl, byte [ebp - 0x75]
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xca27c54f
mov ecx, 0x1d84e83b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
push eax
mov eax, esp
mov dword [ebp - 0x74], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x84], eax
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
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 edx, eax
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x74]
mov dword [ecx], edx
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.004209e0
add esp, 0xc
lea eax, str.ntdll.dll
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov edx, eax
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x70]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x70]
mov ecx, dword [ecx]
mov edx, dword [ebp - 0x74]
mov edx, dword [edx]
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 eax, dword [ebp - 0x84]
mov ecx, dword [eax]
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 ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
mov edx, ecx
add edx, 0xa10d23ba
sub edx, 1
sub edx, 0xa10d23ba
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, 0xca27c54f
mov ecx, 0x3f7058b3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dword [ebp - 0x7c], 0x3fd82cc5
jmp 0x40ff88
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
add eax, 0x3c
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x7c], 0x8eaf6da4
jmp 0x40ff88
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x44]
sub ecx, 0x483a686e
add ecx, eax
add ecx, 0x483a686e
mov eax, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x54]
mov word [eax], 0
mov dword [ebp - 0x7c], 0x22dfa3c0
jmp 0x40ff88
mov eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
mov edx, eax
sub edx, 0x6ce5b6b3
sub edx, 1
add edx, 0x6ce5b6b3
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, 0xa44d1380
mov ecx, 0x81335637
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov eax, dword [ebp - 0x54]
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
mov edx, ecx
add edx, 0xa467957b
sub edx, 1
sub edx, 0xa467957b
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, 0xa44d1380
mov ecx, 0xade75279
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dword [ebp - 0x7c], 0x95bae636
jmp 0x40ff88
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
mov edx, ecx
add edx, 0x24070806
sub edx, 1
sub edx, 0x24070806
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, 0x382327a8
mov ecx, 0xf01816ae
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov ax, word [eax + 6]
mov word [ebp - 0x38], ax
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
mov edx, ecx
add edx, 0x97579955
sub edx, 1
sub edx, 0x97579955
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, 0x382327a8
mov ecx, 0x35e7b8bc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dword [ebp - 0x7c], 0x2c8b6f7c
jmp 0x40ff88
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
mov edx, ecx
add edx, 0x3208e8f1
sub edx, 1
sub edx, 0x3208e8f1
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, 0x24536ca2
mov ecx, 0x9389da8d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov ax, word [ebp - 0x38]
movzx ecx, ax
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
setl al
and al, 1
mov byte [ebp - 0x35], al
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
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, 0x24536ca2
mov ecx, 0x52fed3c6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dl, byte [ebp - 0x35]
mov eax, 0x29b4abbe
mov ecx, 0x56ea9e14
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
mov edx, eax
sub edx, 0x47388f66
sub edx, 1
add edx, 0x47388f66
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, 0x38cd2140
mov ecx, 0x2bd46e9f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
add ecx, 0x724dba6e
add ecx, 0x18
sub ecx, 0x724dba6e
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
movzx edx, word [eax + 0x14]
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 - 0x54]
movzx eax, word [eax]
imul eax, eax, 0x28
sub ecx, 0xb81f9283
add ecx, eax
add ecx, 0xb81f9283
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
mov edx, eax
sub edx, 0x204e7dc4
sub edx, 1
add edx, 0x204e7dc4
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, 0x38cd2140
mov ecx, 0x5507d1ed
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dword [ebp - 0x7c], 0x587cf44
jmp 0x40ff88
mov ecx, dword [ebp - 0x34]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42fd35
call fcn.004242e0
add esp, 8
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x2d], al
mov dword [ebp - 0x7c], 0xea921780
jmp 0x40ff88
mov dl, byte [ebp - 0x2d]
mov eax, 0xf4464e8d
mov ecx, 0x7089f2cc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov eax, dword [ebp - 0x4c]
mov dword [eax], 0
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x6c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub edx, 0xfdf83e84
add edx, eax
add edx, 0xfdf83e84
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 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 - 0x2c], eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x7c], 0xee6d2520
jmp 0x40ff88
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
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 - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x2c]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00420b40
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
add eax, 0xc
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x7c], 0x78543564
jmp 0x40ff88
mov eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
mov edx, eax
add edx, 0x48636a35
sub edx, 1
sub edx, 0x48636a35
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, 0xb9b0c122
mov ecx, 0xc8ab34c8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov esi, dword [ebp - 0x1c]
sub esi, 0xc7d7d55d
add esi, eax
add esi, 0xc7d7d55d
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
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 eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
mov edx, eax
add edx, 0xe9e22fc9
sub edx, 1
sub edx, 0xe9e22fc9
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, 0xb9b0c122
mov ecx, 0x50fefe7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dword [ebp - 0x7c], 0x7089f2cc
jmp 0x40ff88
mov dword [ebp - 0x7c], 0xa865faa5
jmp 0x40ff88
mov eax, dword [ebp - 0x54]
mov ax, word [eax]
mov word [ebp - 0x14], ax
mov dword [ebp - 0x7c], 0xa3d727cc
jmp 0x40ff88
mov eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
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, 0xce7b0c32
mov ecx, 0xa9fc9668
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov ax, word [ebp - 0x14]
xor ecx, ecx
sub cx, 1
sub ax, cx
mov word [ebp - 0x12], ax
mov ecx, dword [0x4535ac]
mov eax, dword [0x4535a8]
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, 0xce7b0c32
mov ecx, 0xdc86ffc6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov dword [ebp - 0x7c], 0xcef66b60
jmp 0x40ff88
mov eax, dword [ebp - 0x54]
mov cx, word [ebp - 0x12]
mov word [eax], cx
mov dword [ebp - 0x7c], 0x22dfa3c0
jmp 0x40ff88
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x7c], 0xaa094b51
jmp 0x40ff88
mov eax, dword [ebp - 0x10]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
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 dword [ebp - 0x7c], 0x12352dc5
jmp 0x40ff88
mov eax, dword [0x4535ac]
mov ecx, dword [0x4535a8]
mov edx, eax
add edx, 0xe2d6650c
sub edx, 1
sub edx, 0xe2d6650c
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, 0x8528a905
mov ecx, 0xfca7ea36
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
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 [0x4535ac]
mov eax, dword [0x4535a8]
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, 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, 0x8528a905
mov ecx, 0xff272ad5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40ff88
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0041fcd0
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
push eax
mov eax, esp
mov dword [ebp - 0x9c], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x98], eax
push eax
mov eax, esp
mov dword [ebp - 0xa0], eax
push eax
mov eax, esp
mov dword [ebp - 0x94], eax
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
push eax
mov eax, esp
mov dword [ebp - 0x88], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, dword [ebp - 0x9c]
mov edx, eax
mov eax, dword [ebp - 0x98]
mov dword [ecx], edx
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.004209e0
add esp, 0xc
lea eax, str.ntdll.dll
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x9c]
mov esi, eax
mov eax, dword [ebp - 0x98]
mov dword [ecx], esi
mov ecx, dword [ecx]
mov edx, dword [edx]
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 - 0x98]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ecx]
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 - 0x90]
mov dword [eax], ecx
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 - 0x8c]
mov dword [eax], ecx
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 - 0x88]
mov dword [eax], ecx
mov dword [ebp - 0x7c], 0x1d84e83b
jmp 0x40ff88
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x7c], 0x81335637
jmp 0x40ff88
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x7c], 0xf01816ae
jmp 0x40ff88
mov ax, word [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x7c], 0x9389da8d
jmp 0x40ff88
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
xor eax, eax
sub eax, 0x18
sub ecx, eax
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
movzx eax, word [eax + 0x14]
add ecx, 0x2641ac67
add ecx, eax
sub ecx, 0x2641ac67
mov eax, dword [ebp - 0x54]
movzx eax, word [eax]
imul eax, eax, 0x28
sub ecx, 0x603ee3ba
add ecx, eax
add ecx, 0x603ee3ba
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x7c], 0x2bd46e9f
jmp 0x40ff88
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x1c]
xor eax, eax
sub eax, ecx
sub esi, eax
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
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 - 0x7c], 0xc8ab34c8
jmp 0x40ff88
mov ax, word [ebp - 0x14]
mov ax, word [ebp - 0x14]
mov ax, word [ebp - 0x14]
mov dword [ebp - 0x7c], 0xa9fc9668
jmp 0x40ff88
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x7c], 0xfca7ea36
jmp 0x40eed5