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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x7c
mov eax, dword [0x481480]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
add edx, 0xffa318a9
sub edx, 1
sub edx, 0xffa318a9
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], 0x60db7805
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x80], eax
sub eax, 0x82ba8649
je 0x40ecbf
jmp 0x40e728
mov eax, dword [ebp - 0x80]
sub eax, 0x9c0128dc
je 0x40f5e4
jmp 0x40e73b
mov eax, dword [ebp - 0x80]
sub eax, 0xa004a8fd
je 0x40eead
jmp 0x40e74e
mov eax, dword [ebp - 0x80]
sub eax, 0xa3d68e32
je 0x40f602
jmp 0x40e761
mov eax, dword [ebp - 0x80]
sub eax, 0xa82c09a2
je 0x40f55b
jmp 0x40e774
mov eax, dword [ebp - 0x80]
sub eax, 0xa94175d9
je 0x40f330
jmp 0x40e787
mov eax, dword [ebp - 0x80]
sub eax, 0xb1d94f66
je 0x40f42b
jmp 0x40e79a
mov eax, dword [ebp - 0x80]
sub eax, 0xb4bee616
je 0x40ee3e
jmp 0x40e7ad
mov eax, dword [ebp - 0x80]
sub eax, 0xbd29ab12
je 0x40ee03
jmp 0x40e7c0
mov eax, dword [ebp - 0x80]
sub eax, 0xbef77f45
je 0x40eefb
jmp 0x40e7d3
mov eax, dword [ebp - 0x80]
sub eax, 0xbff044cc
je 0x40f2bd
jmp 0x40e7e6
mov eax, dword [ebp - 0x80]
sub eax, 0xc13ee596
je 0x40f33c
jmp 0x40e7f9
mov eax, dword [ebp - 0x80]
sub eax, 0xcc1cad74
je 0x40f5b8
jmp 0x40e80c
mov eax, dword [ebp - 0x80]
sub eax, 0xcfb31898
je 0x40f5f0
jmp 0x40e81f
mov eax, dword [ebp - 0x80]
sub eax, 0xd21af6a0
je 0x40f352
jmp 0x40e832
mov eax, dword [ebp - 0x80]
sub eax, 0xd2541b01
je 0x40ed7d
jmp 0x40e845
mov eax, dword [ebp - 0x80]
sub eax, 0xe158f22d
je 0x40eaaa
jmp 0x40e858
mov eax, dword [ebp - 0x80]
sub eax, 0xe3d1c430
je 0x40ee0f
jmp 0x40e86b
mov eax, dword [ebp - 0x80]
sub eax, 0xe61c3fa4
je 0x40ed12
jmp 0x40e87e
mov eax, dword [ebp - 0x80]
sub eax, 0xe865320f
je 0x40eb0c
jmp 0x40e891
mov eax, dword [ebp - 0x80]
sub eax, 0xec0d2d02
je 0x40f751
jmp 0x40e8a4
mov eax, dword [ebp - 0x80]
sub eax, 0xee6e9474
je 0x40f14b
jmp 0x40e8b7
mov eax, dword [ebp - 0x80]
sub eax, 0xf23ef3a4
je 0x40f515
jmp 0x40e8ca
mov eax, dword [ebp - 0x80]
sub eax, 0xff18874c
je 0x40ee2a
jmp 0x40e8dd
mov eax, dword [ebp - 0x80]
sub eax, 0x59bf98a
je 0x40f491
jmp 0x40e8f0
mov eax, dword [ebp - 0x80]
sub eax, 0x69f2665
je 0x40f509
jmp 0x40e903
mov eax, dword [ebp - 0x80]
sub eax, 0x9384500
je 0x40f6e4
jmp 0x40e916
mov eax, dword [ebp - 0x80]
sub eax, 0xf5f41ae
je 0x40ef7c
jmp 0x40e929
mov eax, dword [ebp - 0x80]
sub eax, 0x168e4fc1
je 0x40f088
jmp 0x40e93c
mov eax, dword [ebp - 0x80]
sub eax, 0x1da3c4b1
je 0x40f611
jmp 0x40e94f
mov eax, dword [ebp - 0x80]
sub eax, 0x21d1b328
je 0x40f24a
jmp 0x40e962
mov eax, dword [ebp - 0x80]
sub eax, 0x2361306a
je 0x40f3a0
jmp 0x40e975
mov eax, dword [ebp - 0x80]
sub eax, 0x2890ec0b
je 0x40f5c4
jmp 0x40e988
mov eax, dword [ebp - 0x80]
sub eax, 0x3852bf80
je 0x40eb18
jmp 0x40e99b
mov eax, dword [ebp - 0x80]
sub eax, 0x3b21710f
je 0x40f00a
jmp 0x40e9ae
mov eax, dword [ebp - 0x80]
sub eax, 0x3c2dc3d7
je 0x40f62f
jmp 0x40e9c1
mov eax, dword [ebp - 0x80]
sub eax, 0x46b694c0
je 0x40f437
jmp 0x40e9d4
mov eax, dword [ebp - 0x80]
sub eax, 0x4d01c991
je 0x40f0d8
jmp 0x40e9e7
mov eax, dword [ebp - 0x80]
sub eax, 0x53248fb8
je 0x40f23e
jmp 0x40e9fa
mov eax, dword [ebp - 0x80]
sub eax, 0x60db7805
je 0x40ea84
jmp 0x40ea0d
mov eax, dword [ebp - 0x80]
sub eax, 0x69f274bb
je 0x40f443
jmp 0x40ea20
mov eax, dword [ebp - 0x80]
sub eax, 0x6c4d8788
je 0x40ecef
jmp 0x40ea33
mov eax, dword [ebp - 0x80]
sub eax, 0x6c4d90e7
je 0x40ef97
jmp 0x40ea46
mov eax, dword [ebp - 0x80]
sub eax, 0x6f987322
je 0x40f720
jmp 0x40ea59
mov eax, dword [ebp - 0x80]
sub eax, 0x74c2073b
je 0x40f07c
jmp 0x40ea6c
mov eax, dword [ebp - 0x80]
sub eax, 0x7ad0d2b0
je 0x40f6d8
jmp 0x40ea7f
jmp 0x40f76a
mov al, byte [ebp - 0x76]
mov cl, byte [ebp - 0x75]
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x9c0128dc
mov ecx, 0xe158f22d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
push eax
mov eax, esp
mov dword [ebp - 0x74], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x70], eax
push eax
mov eax, esp
mov dword [ebp - 0x6c], eax
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
add edx, 0xa48f38e1
sub edx, 1
sub edx, 0xa48f38e1
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, 0x9c0128dc
mov ecx, 0xe865320f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0x3852bf80
jmp 0x40f76a
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 - 0x84], 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 ecx, eax
mov eax, dword [ebp - 0x74]
mov dword [eax], ecx
mov eax, dword [ebp - 0x70]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.0041f3f0
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 - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x74]
mov edx, dword [eax]
mov eax, dword [ebp - 0x70]
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 - 0x70]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x68]
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 - 0x64]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
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 - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
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 edx, eax
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx]
mov dword [ebp - 0x44], ecx
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x7c], 0x82ba8649
jmp 0x40f76a
mov eax, dword [ebp - 0x40]
mov eax, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x44]
sub ecx, 0xa3f661b2
add ecx, eax
add ecx, 0xa3f661b2
mov eax, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x54]
mov word [eax], 0
mov dword [ebp - 0x7c], 0x6c4d8788
jmp 0x40f76a
mov eax, dword [ebp - 0x54]
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
add eax, 4
add eax, 2
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x7c], 0xe61c3fa4
jmp 0x40f76a
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
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, 0xcfb31898
mov ecx, 0xd2541b01
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x38]
movzx ecx, word [eax]
mov eax, dword [ebp - 0x3c]
cmp eax, ecx
setl al
and al, 1
mov byte [ebp - 0x31], al
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
sub edx, 0x3f51a6a2
sub edx, 1
add edx, 0x3f51a6a2
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, 0xcfb31898
mov ecx, 0xbd29ab12
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0xe3d1c430
jmp 0x40f76a
mov dl, byte [ebp - 0x31]
mov eax, 0x69f274bb
mov ecx, 0xff18874c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x7c], 0xb4bee616
jmp 0x40f76a
mov ecx, dword [ebp - 0x30]
add ecx, 0xf94f5033
add ecx, 0x18
sub ecx, 0xf94f5033
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
movzx eax, word [eax + 0x14]
sub ecx, 0x91284e3d
add ecx, eax
add ecx, 0x91284e3d
mov eax, dword [ebp - 0x54]
movzx eax, word [eax]
imul eax, eax, 0x28
add ecx, 0xd1fc98ad
add ecx, eax
sub ecx, 0xd1fc98ad
mov eax, dword [ebp - 0x50]
mov dword [eax], ecx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42dcb1
call fcn.00422cf0
add esp, 8
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x7c], 0xa004a8fd
jmp 0x40f76a
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
add edx, 0xa7e694
sub edx, 1
sub edx, 0xa7e694
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, 0xa3d68e32
mov ecx, 0xbef77f45
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x2c]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x25], al
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
add edx, 0x10acea5
sub edx, 1
sub edx, 0x10acea5
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, 0xa3d68e32
mov ecx, 0xf5f41ae
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dl, byte [ebp - 0x25]
mov eax, 0x6c4d90e7
mov ecx, 0x21d1b328
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
add edx, 0xd3e28c0
sub edx, 1
sub edx, 0xd3e28c0
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, 0x1da3c4b1
mov ecx, 0x3b21710f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x4c]
mov dword [eax], 0
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
add edx, 0x15e34ffd
sub edx, 1
sub edx, 0x15e34ffd
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, 0x1da3c4b1
mov ecx, 0x74c2073b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0x168e4fc1
jmp 0x40f76a
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x20]
add edx, 0x9f95813f
add edx, eax
sub edx, 0x9f95813f
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
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 al
and al, 1
mov byte [ebp - 0x17], al
mov dword [ebp - 0x7c], 0x4d01c991
jmp 0x40f76a
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
add edx, 0xc1567706
sub edx, 1
sub edx, 0xc1567706
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, 0x3c2dc3d7
mov ecx, 0xee6e9474
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x48]
mov cl, byte [ebp - 0x17]
mov byte [eax], cl
mov eax, dword [ebp - 0x68]
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 - 0x5c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub ecx, 0xc302de8f
add ecx, eax
add ecx, 0xc302de8f
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.0041f550
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add esi, 0x9d760a41
add esi, eax
sub esi, 0x9d760a41
mov eax, dword [ebp - 0x4c]
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 [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
sub edx, 0xda101b36
sub edx, 1
add edx, 0xda101b36
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, 0x3c2dc3d7
mov ecx, 0x53248fb8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0x21d1b328
jmp 0x40f76a
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
add edx, 0x48384973
sub edx, 1
sub edx, 0x48384973
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, 0x7ad0d2b0
mov ecx, 0xbff044cc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
sub edx, 0x312660e5
sub edx, 1
add edx, 0x312660e5
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, 0x7ad0d2b0
mov ecx, 0xa94175d9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0xc13ee596
jmp 0x40f76a
mov eax, dword [ebp - 0x54]
mov ax, word [eax]
mov word [ebp - 0x16], ax
mov dword [ebp - 0x7c], 0xd21af6a0
jmp 0x40f76a
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
add edx, 0x16c41817
sub edx, 1
sub edx, 0x16c41817
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, 0x9384500
mov ecx, 0x2361306a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov cx, word [ebp - 0x16]
sub cx, 0x4788
add cx, 1
add cx, 0x4788
mov eax, dword [ebp - 0x54]
mov word [eax], cx
mov ecx, dword [0x482984]
mov eax, dword [0x482980]
mov edx, ecx
add edx, 0x200380e6
sub edx, 1
sub edx, 0x200380e6
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, 0x9384500
mov ecx, 0xb1d94f66
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0x46b694c0
jmp 0x40f76a
mov dword [ebp - 0x7c], 0x6c4d8788
jmp 0x40f76a
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
sub edx, 0xc9959e28
sub edx, 1
add edx, 0xc9959e28
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, 0x6f987322
mov ecx, 0x59bf98a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x74]
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 eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
mov edx, eax
sub edx, 0xbae513c2
sub edx, 1
add edx, 0xbae513c2
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, 0x6f987322
mov ecx, 0x69f2665
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0xf23ef3a4
jmp 0x40f76a
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
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, 0xec0d2d02
mov ecx, 0xa82c09a2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [0x482984]
mov ecx, dword [0x482980]
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, 0xec0d2d02
mov ecx, 0xcc1cad74
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x7c], eax
jmp 0x40f76a
mov dword [ebp - 0x7c], 0x2890ec0b
jmp 0x40f76a
mov eax, dword [ebp - 0x10]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0041e700
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov dword [ebp - 0x7c], 0xe158f22d
jmp 0x40f76a
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x7c], 0xd2541b01
jmp 0x40f76a
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x7c], 0xbef77f45
jmp 0x40f76a
mov eax, dword [ebp - 0x4c]
mov dword [eax], 0
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x7c], 0x3b21710f
jmp 0x40f76a
mov eax, dword [ebp - 0x48]
mov cl, byte [ebp - 0x17]
mov byte [eax], cl
mov eax, dword [ebp - 0x68]
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 - 0x5c]
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.0041f550
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x68]
mov esi, dword [eax]
mov eax, dword [ebp - 0x50]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add esi, 0xbada02b3
add esi, eax
sub esi, 0xbada02b3
mov eax, dword [ebp - 0x4c]
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], 0xee6e9474
jmp 0x40f76a
mov dword [ebp - 0x7c], 0xbff044cc
jmp 0x40f76a
mov ax, word [ebp - 0x16]
mov ax, word [ebp - 0x16]
mov ax, word [ebp - 0x16]
mov ax, word [ebp - 0x16]
mov ax, word [ebp - 0x16]
mov ax, word [ebp - 0x16]
mov cx, word [ebp - 0x16]
sub cx, 0x89d7
add cx, 1
add cx, 0x89d7
mov eax, dword [ebp - 0x54]
mov word [eax], cx
mov dword [ebp - 0x7c], 0x2361306a
jmp 0x40f76a
mov eax, dword [ebp - 0x74]
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 eax, dword [ebp - 0x60]
mov dword [ebp - 0x7c], 0x59bf98a
jmp 0x40f76a
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x7c], 0xa82c09a2
jmp 0x40e712