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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa0], eax
mov eax, dword [0x440080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
add edx, 0x76ce951c
sub edx, 1
sub edx, 0x76ce951c
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x96], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x95], al
mov dword [ebp - 0x9c], 0x3466cfb7
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa4], eax
sub eax, 0x80620331
je 0x40edd3
jmp 0x40dd94
mov eax, dword [ebp - 0xa4]
sub eax, 0x83558c3f
je 0x40f1f9
jmp 0x40ddaa
mov eax, dword [ebp - 0xa4]
sub eax, 0x8358f3fd
je 0x40f76d
jmp 0x40ddc0
mov eax, dword [ebp - 0xa4]
sub eax, 0x84a3b9f2
je 0x40f1d9
jmp 0x40ddd6
mov eax, dword [ebp - 0xa4]
sub eax, 0x8519b512
je 0x40e8dc
jmp 0x40ddec
mov eax, dword [ebp - 0xa4]
sub eax, 0x8b7ed5a1
je 0x40ee5c
jmp 0x40de02
mov eax, dword [ebp - 0xa4]
sub eax, 0x90280322
je 0x40e669
jmp 0x40de18
mov eax, dword [ebp - 0xa4]
sub eax, 0x91a5df27
je 0x40f526
jmp 0x40de2e
mov eax, dword [ebp - 0xa4]
sub eax, 0x9261b00a
je 0x40e974
jmp 0x40de44
mov eax, dword [ebp - 0xa4]
sub eax, 0x95035479
je 0x40eda1
jmp 0x40de5a
mov eax, dword [ebp - 0xa4]
sub eax, 0x95830e33
je 0x40e86e
jmp 0x40de70
mov eax, dword [ebp - 0xa4]
sub eax, 0x98cc9068
je 0x40f0ab
jmp 0x40de86
mov eax, dword [ebp - 0xa4]
sub eax, 0x9ad8baed
je 0x40ed6c
jmp 0x40de9c
mov eax, dword [ebp - 0xa4]
sub eax, 0xa2becf9d
je 0x40f7a0
jmp 0x40deb2
mov eax, dword [ebp - 0xa4]
sub eax, 0xa342fbe7
je 0x40e857
jmp 0x40dec8
mov eax, dword [ebp - 0xa4]
sub eax, 0xa909a52e
je 0x40f6c5
jmp 0x40dede
mov eax, dword [ebp - 0xa4]
sub eax, 0xaa003cb6
je 0x40e678
jmp 0x40def4
mov eax, dword [ebp - 0xa4]
sub eax, 0xae526538
je 0x40e43a
jmp 0x40df0a
mov eax, dword [ebp - 0xa4]
sub eax, 0xb2515f07
je 0x40ef87
jmp 0x40df20
mov eax, dword [ebp - 0xa4]
sub eax, 0xbaa2fda3
je 0x40e620
jmp 0x40df36
mov eax, dword [ebp - 0xa4]
sub eax, 0xbab69b5d
je 0x40f331
jmp 0x40df4c
mov eax, dword [ebp - 0xa4]
sub eax, 0xc1a0a4c4
je 0x40f7f2
jmp 0x40df62
mov eax, dword [ebp - 0xa4]
sub eax, 0xcfdfc4d9
je 0x40edba
jmp 0x40df78
mov eax, dword [ebp - 0xa4]
sub eax, 0xd0812d59
je 0x40f7be
jmp 0x40df8e
mov eax, dword [ebp - 0xa4]
sub eax, 0xd31bfa90
je 0x40f2e8
jmp 0x40dfa4
mov eax, dword [ebp - 0xa4]
sub eax, 0xd55ff7ea
je 0x40ea5f
jmp 0x40dfba
mov eax, dword [ebp - 0xa4]
sub eax, 0xdb8a1de7
je 0x40f4d5
jmp 0x40dfd0
mov eax, dword [ebp - 0xa4]
sub eax, 0xdf692a21
je 0x40f598
jmp 0x40dfe6
mov eax, dword [ebp - 0xa4]
sub eax, 0xe13f506e
je 0x40f1a2
jmp 0x40dffc
mov eax, dword [ebp - 0xa4]
sub eax, 0xe5dff87f
je 0x40e7b8
jmp 0x40e012
mov eax, dword [ebp - 0xa4]
sub eax, 0xed5d0ff4
je 0x40f6b3
jmp 0x40e028
mov eax, dword [ebp - 0xa4]
sub eax, 0xee2d0a61
je 0x40f6d7
jmp 0x40e03e
mov eax, dword [ebp - 0xa4]
sub eax, 0xf6333a0c
je 0x40ead5
jmp 0x40e054
mov eax, dword [ebp - 0xa4]
sub eax, 0xf6ced9ba
je 0x40f2d1
jmp 0x40e06a
mov eax, dword [ebp - 0xa4]
sub eax, 0xf7128109
je 0x40ee2a
jmp 0x40e080
mov eax, dword [ebp - 0xa4]
sub eax, 0xf73d2c2b
je 0x40f787
jmp 0x40e096
mov eax, dword [ebp - 0xa4]
sub eax, 0xfd31e014
je 0x40f42b
jmp 0x40e0ac
mov eax, dword [ebp - 0xa4]
sub eax, 0xffaa8e91
je 0x40e4b1
jmp 0x40e0c2
mov eax, dword [ebp - 0xa4]
sub eax, 0x4a8289c
je 0x40e4c0
jmp 0x40e0d8
mov eax, dword [ebp - 0xa4]
sub eax, 0x526b50b
je 0x40f3bd
jmp 0x40e0ee
mov eax, dword [ebp - 0xa4]
sub eax, 0x60f99f0
je 0x40f121
jmp 0x40e104
mov eax, dword [ebp - 0xa4]
sub eax, 0xa8b52bb
je 0x40f6e6
jmp 0x40e11a
mov eax, dword [ebp - 0xa4]
sub eax, 0xe3cf634
je 0x40e62f
jmp 0x40e130
mov eax, dword [ebp - 0xa4]
sub eax, 0xe862582
je 0x40f577
jmp 0x40e146
mov eax, dword [ebp - 0xa4]
sub eax, 0x12ce517d
je 0x40f1c0
jmp 0x40e15c
mov eax, dword [ebp - 0xa4]
sub eax, 0x14a62a67
je 0x40f2c2
jmp 0x40e172
mov eax, dword [ebp - 0xa4]
sub eax, 0x1ae88add
je 0x40f4c6
jmp 0x40e188
mov eax, dword [ebp - 0xa4]
sub eax, 0x213f404e
je 0x40eca7
jmp 0x40e19e
mov eax, dword [ebp - 0xa4]
sub eax, 0x22145730
je 0x40e848
jmp 0x40e1b4
mov eax, dword [ebp - 0xa4]
sub eax, 0x22514223
je 0x40f5f1
jmp 0x40e1ca
mov eax, dword [ebp - 0xa4]
sub eax, 0x291f3cd4
je 0x40e9c5
jmp 0x40e1e0
mov eax, dword [ebp - 0xa4]
sub eax, 0x2b55e11e
je 0x40f3ae
jmp 0x40e1f6
mov eax, dword [ebp - 0xa4]
sub eax, 0x2d028289
je 0x40ebd1
jmp 0x40e20c
mov eax, dword [ebp - 0xa4]
sub eax, 0x2f564192
je 0x40eed2
jmp 0x40e222
mov eax, dword [ebp - 0xa4]
sub eax, 0x324f6c05
je 0x40ec31
jmp 0x40e238
mov eax, dword [ebp - 0xa4]
sub eax, 0x3466cfb7
je 0x40e40b
jmp 0x40e24e
mov eax, dword [ebp - 0xa4]
sub eax, 0x3889ac6c
je 0x40eb53
jmp 0x40e264
mov eax, dword [ebp - 0xa4]
sub eax, 0x3f8a62a0
je 0x40ed3d
jmp 0x40e27a
mov eax, dword [ebp - 0xa4]
sub eax, 0x441a5d2c
je 0x40eb80
jmp 0x40e290
mov eax, dword [ebp - 0xa4]
sub eax, 0x48536ae6
je 0x40edf9
jmp 0x40e2a6
mov eax, dword [ebp - 0xa4]
sub eax, 0x4f50109d
je 0x40ed2e
jmp 0x40e2bc
mov eax, dword [ebp - 0xa4]
sub eax, 0x50b244ad
je 0x40e965
jmp 0x40e2d2
mov eax, dword [ebp - 0xa4]
sub eax, 0x51c40687
je 0x40f26f
jmp 0x40e2e8
mov eax, dword [ebp - 0xa4]
sub eax, 0x52d7efbf
je 0x40e6e6
jmp 0x40e2fe
mov eax, dword [ebp - 0xa4]
sub eax, 0x53bcb204
je 0x40eb62
mov al, byte [ebp - 0x96]
mov cl, byte [ebp - 0x95]
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x53d7aa48
mov ecx, 0xae526538
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
push eax
mov eax, esp
mov dword [ebp - 0x94], eax
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x8c], eax
push eax
mov eax, esp
mov dword [ebp - 0x88], eax
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
sub edx, 0xffc279f1
sub edx, 1
add edx, 0xffc279f1
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, 0x53d7aa48
mov ecx, 0xffaa8e91
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x4a8289c
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
add edx, 0x76b5d2b9
sub edx, 1
sub edx, 0x76b5d2b9
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, 0xdf692a21
mov ecx, 0x7af632c7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0xe3cf634
jmp 0x40f7fc
mov eax, dword [ebp - 0x58]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x88]
mov dword [eax], ecx
mov edx, dword [ebp - 0x88]
mov eax, 0x90280322
mov ecx, 0xaa003cb6
cmp dword [edx], 0
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0xdb8a1de7
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
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, 0x22514223
mov ecx, 0x52d7efbf
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x90]
mov edx, dword [eax]
mov eax, dword [ebp - 0x8c]
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 - 0x8c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
mov ecx, dword [ecx]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x104
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
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, 0x22514223
mov ecx, 0xe5dff87f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x570e0b3e
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0xdb8a1de7
jmp 0x40f7fc
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x9c], 0x95830e33
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
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, 0x62e48b76
mov ecx, 0x8519b512
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x50]
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 - 0x78]
mov dword [eax], ecx
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
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, 0x62e48b76
mov ecx, 0x50b244ad
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x9261b00a
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
sub edx, 0x721909bf
sub edx, 1
add edx, 0x721909bf
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, 0xed5d0ff4
mov ecx, 0x291f3cd4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x78]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x49], al
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
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, 0xed5d0ff4
mov ecx, 0x6b6d9eb0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
add edx, 0xf31bbef8
sub edx, 1
sub edx, 0xf31bbef8
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, 0xa909a52e
mov ecx, 0xf6333a0c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
sub edx, 0x66637231
sub edx, 1
add edx, 0x66637231
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, 0xa909a52e
mov ecx, 0x3889ac6c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x53bcb204
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
add edx, 0x6910bb3e
sub edx, 1
sub edx, 0x6910bb3e
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, 0xee2d0a61
mov ecx, 0x2d028289
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
add edx, 0x956a8e3f
sub edx, 1
sub edx, 0x956a8e3f
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, 0xee2d0a61
mov ecx, 0x5df5f7da
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
add edx, 0x9e36cfbc
sub edx, 1
sub edx, 0x9e36cfbc
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, 0xa8b52bb
mov ecx, 0x213f404e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x78]
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 dword [ebp - 0x44], eax
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
sub edx, 0xc8758498
sub edx, 1
add edx, 0xc8758498
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, 0xa8b52bb
mov ecx, 0x4f50109d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x3f8a62a0
jmp 0x40f7fc
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x9c], 0x9ad8baed
jmp 0x40f7fc
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov edx, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x40]
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 - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x68]
mov word [eax], 0
mov dword [ebp - 0x9c], 0x95035479
jmp 0x40f7fc
mov eax, dword [ebp - 0x68]
mov ax, word [eax]
mov word [ebp - 0x3a], ax
mov dword [ebp - 0x9c], 0xcfdfc4d9
jmp 0x40f7fc
mov ax, word [ebp - 0x3a]
movzx eax, ax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x9c], 0x80620331
jmp 0x40f7fc
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
movzx esi, word [eax + 6]
mov edx, dword [ebp - 0x38]
mov eax, 0xf6ced9ba
mov ecx, 0x48536ae6
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x18
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
add eax, 4
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x9c], 0xf7128109
jmp 0x40f7fc
mov eax, dword [ebp - 0x30]
movzx ecx, word [eax + 0x10]
mov eax, dword [ebp - 0x34]
add eax, 0xf0545e51
add eax, ecx
sub eax, 0xf0545e51
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x68]
mov ax, word [eax]
mov word [ebp - 0x28], ax
mov dword [ebp - 0x9c], 0x8b7ed5a1
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
add edx, 0x170a783a
sub edx, 1
sub edx, 0x170a783a
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, 0x61d60c24
mov ecx, 0x2f564192
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov ax, word [ebp - 0x28]
movzx eax, ax
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x999eaa10
add ecx, eax
add ecx, 0x999eaa10
mov eax, dword [ebp - 0x64]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x4390a2
call fcn.0042dab0
add esp, 8
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x25], al
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
add edx, 0xa36a3ec1
sub edx, 1
sub edx, 0xa36a3ec1
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, 0x61d60c24
mov ecx, 0x6e809303
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x60]
mov dword [eax], 0
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x84]
mov edx, dword [eax]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0x857f86e
add edx, eax
sub edx, 0x857f86e
mov eax, dword [ebp - 0x60]
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 - 0x5c]
mov byte [eax], cl
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
xor ecx, ecx
sub ecx, edx
sub eax, ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
add eax, 0x938075ed
add eax, ecx
sub eax, 0x938075ed
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x9c], 0x7564e7a6
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
add edx, 0x7921fbb6
sub edx, 1
sub edx, 0x7921fbb6
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, 0x8358f3fd
mov ecx, 0x60f99f0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov cl, byte [ebp - 0x19]
and cl, 1
mov eax, dword [ebp - 0x5c]
mov byte [eax], cl
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
sub edx, 0x65006d6
sub edx, 1
add edx, 0x65006d6
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, 0x8358f3fd
mov ecx, 0xe13f506e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x78143df7
jmp 0x40f7fc
mov eax, dword [ebp - 0x68]
mov ax, word [eax]
mov word [ebp - 0x18], ax
mov dword [ebp - 0x9c], 0x84a3b9f2
jmp 0x40f7fc
mov ax, word [ebp - 0x18]
xor ecx, ecx
sub cx, 1
sub ax, cx
mov word [ebp - 0x16], ax
mov dword [ebp - 0x9c], 0x83558c3f
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
sub edx, 0x1dfe7f96
sub edx, 1
add edx, 0x1dfe7f96
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, 0xf73d2c2b
mov ecx, 0x51c40687
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x68]
mov cx, word [ebp - 0x16]
mov word [eax], cx
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
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, 0xf73d2c2b
mov ecx, 0x14a62a67
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x95035479
jmp 0x40f7fc
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x9c], 0xd31bfa90
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
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, 0xa2becf9d
mov ecx, 0xbab69b5d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
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, 0xa2becf9d
mov ecx, 0x2b55e11e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x526b50b
jmp 0x40f7fc
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
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, 0xd0812d59
mov ecx, 0xfd31e014
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x44156c]
mov eax, dword [0x441568]
mov edx, ecx
add edx, 0xf80a6208
sub edx, 1
sub edx, 0xf80a6208
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, 0xd0812d59
mov ecx, 0x1ae88add
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0xdb8a1de7
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
add edx, 0x96d5fd51
sub edx, 1
sub edx, 0x96d5fd51
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, 0xc1a0a4c4
mov ecx, 0x91a5df27
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov eax, dword [0x44156c]
mov ecx, dword [0x441568]
mov edx, eax
add edx, 0xccf4c55f
sub edx, 1
sub edx, 0xccf4c55f
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, 0xc1a0a4c4
mov ecx, 0xe862582
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40f7fc
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00429490
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x90]
mov dword [eax], ecx
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.0042a1b0
add esp, 0xc
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x9c], 0x7af632c7
jmp 0x40f7fc
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x90]
mov edx, dword [eax]
mov eax, dword [ebp - 0x8c]
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 - 0x8c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
mov ecx, dword [ecx]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x104
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 0x9c], 0x52d7efbf
jmp 0x40f7fc
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x9c], 0x291f3cd4
jmp 0x40f7fc
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x9c], 0xf6333a0c
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x2d028289
jmp 0x40f7fc
mov eax, dword [ebp - 0x78]
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 dword [ebp - 0x9c], 0x213f404e
jmp 0x40f7fc
mov cl, byte [ebp - 0x19]
and cl, 1
mov eax, dword [ebp - 0x5c]
mov byte [eax], cl
mov dword [ebp - 0x9c], 0x60f99f0
jmp 0x40f7fc
mov eax, dword [ebp - 0x68]
mov cx, word [ebp - 0x16]
mov word [eax], cx
mov dword [ebp - 0x9c], 0x51c40687
jmp 0x40f7fc
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x9c], 0xbab69b5d
jmp 0x40f7fc
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x9c], 0xfd31e014
jmp 0x40f7fc
mov dword [ebp - 0x9c], 0x91a5df27
jmp 0x40dd78