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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x94
mov eax, dword [ebp + 8]
mov dword [ebp - 0x9c], eax
mov eax, dword [0x43e080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0x690d758f
sub edx, 1
add edx, 0x690d758f
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x92], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x91], al
mov dword [ebp - 0x98], 0x5bf060f3
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xa0], eax
sub eax, 0x839f48b8
je 0x40d8bc
jmp 0x40c964
mov eax, dword [ebp - 0xa0]
sub eax, 0x83d4a7e7
je 0x40d9b0
jmp 0x40c97a
mov eax, dword [ebp - 0xa0]
sub eax, 0x84562d10
je 0x40e259
jmp 0x40c990
mov eax, dword [ebp - 0xa0]
sub eax, 0x84d88f7a
je 0x40e391
jmp 0x40c9a6
mov eax, dword [ebp - 0xa0]
sub eax, 0x868b7934
je 0x40d372
jmp 0x40c9bc
mov eax, dword [ebp - 0xa0]
sub eax, 0x880ea4b7
je 0x40d83e
jmp 0x40c9d2
mov eax, dword [ebp - 0xa0]
sub eax, 0x88243a0c
je 0x40d941
jmp 0x40c9e8
mov eax, dword [ebp - 0xa0]
sub eax, 0x8989e071
je 0x40e727
jmp 0x40c9fe
mov eax, dword [ebp - 0xa0]
sub eax, 0x8e27f1af
je 0x40e6a6
jmp 0x40ca14
mov eax, dword [ebp - 0xa0]
sub eax, 0x90f51414
je 0x40e58a
jmp 0x40ca2a
mov eax, dword [ebp - 0xa0]
sub eax, 0x923d8f9b
je 0x40e6b5
jmp 0x40ca40
mov eax, dword [ebp - 0xa0]
sub eax, 0x94945530
je 0x40da9c
jmp 0x40ca56
mov eax, dword [ebp - 0xa0]
sub eax, 0x95dd49ab
je 0x40e306
jmp 0x40ca6c
mov eax, dword [ebp - 0xa0]
sub eax, 0x97b8df3c
je 0x40d1e2
jmp 0x40ca82
mov eax, dword [ebp - 0xa0]
sub eax, 0x9bce4899
je 0x40d137
jmp 0x40ca98
mov eax, dword [ebp - 0xa0]
sub eax, 0xa7445c54
je 0x40dfb6
jmp 0x40caae
mov eax, dword [ebp - 0xa0]
sub eax, 0xa8f5cedc
je 0x40e063
jmp 0x40cac4
mov eax, dword [ebp - 0xa0]
sub eax, 0xaa35d519
je 0x40d648
jmp 0x40cada
mov eax, dword [ebp - 0xa0]
sub eax, 0xaac1c83d
je 0x40d639
jmp 0x40caf0
mov eax, dword [ebp - 0xa0]
sub eax, 0xae282cba
je 0x40dd6e
jmp 0x40cb06
mov eax, dword [ebp - 0xa0]
sub eax, 0xb3969086
je 0x40d253
jmp 0x40cb1c
mov eax, dword [ebp - 0xa0]
sub eax, 0xb55c29bc
je 0x40e763
jmp 0x40cb32
mov eax, dword [ebp - 0xa0]
sub eax, 0xb6006760
je 0x40de7c
jmp 0x40cb48
mov eax, dword [ebp - 0xa0]
sub eax, 0xb7603b7f
je 0x40d45e
jmp 0x40cb5e
mov eax, dword [ebp - 0xa0]
sub eax, 0xb9d14c3f
je 0x40dda0
jmp 0x40cb74
mov eax, dword [ebp - 0xa0]
sub eax, 0xbabe3980
je 0x40d4ce
jmp 0x40cb8a
mov eax, dword [ebp - 0xa0]
sub eax, 0xc919c1f2
je 0x40d44f
jmp 0x40cba0
mov eax, dword [ebp - 0xa0]
sub eax, 0xccc022e3
je 0x40e528
jmp 0x40cbb6
mov eax, dword [ebp - 0xa0]
sub eax, 0xd0d1992b
je 0x40e147
jmp 0x40cbcc
mov eax, dword [ebp - 0xa0]
sub eax, 0xd0ea1820
je 0x40d8cb
jmp 0x40cbe2
mov eax, dword [ebp - 0xa0]
sub eax, 0xd397af9c
je 0x40de8b
jmp 0x40cbf8
mov eax, dword [ebp - 0xa0]
sub eax, 0xd675b9cb
je 0x40d78d
jmp 0x40cc0e
mov eax, dword [ebp - 0xa0]
sub eax, 0xd9e3a33a
je 0x40d390
jmp 0x40cc24
mov eax, dword [ebp - 0xa0]
sub eax, 0xdb64b50d
je 0x40e610
jmp 0x40cc3a
mov eax, dword [ebp - 0xa0]
sub eax, 0xe01c7785
je 0x40e537
jmp 0x40cc50
mov eax, dword [ebp - 0xa0]
sub eax, 0xe1013cc8
je 0x40e4aa
jmp 0x40cc66
mov eax, dword [ebp - 0xa0]
sub eax, 0xe2a99204
je 0x40e708
jmp 0x40cc7c
mov eax, dword [ebp - 0xa0]
sub eax, 0xe2ba3cf1
je 0x40e57b
jmp 0x40cc92
mov eax, dword [ebp - 0xa0]
sub eax, 0xe322c3a8
je 0x40dbae
jmp 0x40cca8
mov eax, dword [ebp - 0xa0]
sub eax, 0xe327588d
je 0x40e290
jmp 0x40ccbe
mov eax, dword [ebp - 0xa0]
sub eax, 0xe9c29b58
je 0x40daab
jmp 0x40ccd4
mov eax, dword [ebp - 0xa0]
sub eax, 0xebec70ed
je 0x40d6be
jmp 0x40ccea
mov eax, dword [ebp - 0xa0]
sub eax, 0xed75011a
je 0x40e0c0
jmp 0x40cd00
mov eax, dword [ebp - 0xa0]
sub eax, 0xee6085ef
je 0x40e751
jmp 0x40cd16
mov eax, dword [ebp - 0xa0]
sub eax, 0xf6fde49c
je 0x40df56
jmp 0x40cd2c
mov eax, dword [ebp - 0xa0]
sub eax, 0xf9339142
je 0x40e198
jmp 0x40cd42
mov eax, dword [ebp - 0xa0]
sub eax, 0x182f73
je 0x40e7ce
jmp 0x40cd58
mov eax, dword [ebp - 0xa0]
sub eax, 0x4a11fa
je 0x40e569
jmp 0x40cd6e
mov eax, dword [ebp - 0xa0]
sub eax, 0x9e2422
je 0x40e081
jmp 0x40cd84
mov eax, dword [ebp - 0xa0]
sub eax, 0xd56a29
je 0x40d9a1
jmp 0x40cd9a
mov eax, dword [ebp - 0xa0]
sub eax, 0x1604055
je 0x40e3af
jmp 0x40cdb0
mov eax, dword [ebp - 0xa0]
sub eax, 0x294af97
je 0x40e268
jmp 0x40cdc6
mov eax, dword [ebp - 0xa0]
sub eax, 0x2ec4ae8
je 0x40dc56
jmp 0x40cddc
mov eax, dword [ebp - 0xa0]
sub eax, 0x57cf0a7
je 0x40e676
jmp 0x40cdf2
mov eax, dword [ebp - 0xa0]
sub eax, 0x87258b3
je 0x40e3f8
jmp 0x40ce08
mov eax, dword [ebp - 0xa0]
sub eax, 0x916c1c2
je 0x40dcbe
jmp 0x40ce1e
mov eax, dword [ebp - 0xa0]
sub eax, 0x9f4e3a4
je 0x40d61b
jmp 0x40ce34
mov eax, dword [ebp - 0xa0]
sub eax, 0xcb99ab3
je 0x40d77e
jmp 0x40ce4a
mov eax, dword [ebp - 0xa0]
sub eax, 0x141cf5f8
je 0x40e84d
jmp 0x40ce60
mov eax, dword [ebp - 0xa0]
sub eax, 0x14b60c59
je 0x40dbbd
jmp 0x40ce76
mov eax, dword [ebp - 0xa0]
sub eax, 0x155594ca
je 0x40e8a4
jmp 0x40ce8c
mov eax, dword [ebp - 0xa0]
sub eax, 0x16b31686
je 0x40d7c8
jmp 0x40cea2
mov eax, dword [ebp - 0xa0]
sub eax, 0x1aa01390
je 0x40d7aa
jmp 0x40ceb8
mov eax, dword [ebp - 0xa0]
sub eax, 0x1c85690b
je 0x40e601
jmp 0x40cece
mov eax, dword [ebp - 0xa0]
sub eax, 0x230a021d
je 0x40e277
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x88], eax
push eax
mov eax, esp
mov dword [ebp - 0x84], eax
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0x103a2c1f
sub edx, 1
add edx, 0x103a2c1f
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, 0xe2ba3cf1
mov ecx, 0x2ed0976b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
push eax
mov eax, esp
mov dword [ebp - 0x80], eax
sub esp, 0x104
mov eax, esp
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x98], 0x4fdc44dc
jmp 0x40e8b1
mov ecx, dword [ebp - 0x9c]
push eax
mov eax, esp
mov dword [ebp - 0x78], eax
push eax
mov eax, esp
mov dword [ebp - 0x74], 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
mov eax, dword [ebp - 0x90]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x88]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00427b50
add esp, 0xc
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x52], al
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0xef2d6abe
sub edx, 1
add edx, 0xef2d6abe
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, 0x90f51414
mov ecx, 0x868b7934
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dl, byte [ebp - 0x52]
mov eax, 0xd9e3a33a
mov ecx, 0xb7603b7f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
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, 0x1c85690b
mov ecx, 0x47daf9d6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x4a11fa
jmp 0x40e8b1
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x88]
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 - 0x88]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x80]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x84]
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 - 0x98], 0xbabe3980
jmp 0x40e8b1
mov eax, dword [ebp - 0x7c]
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 - 0x78]
mov dword [eax], ecx
mov dword [ebp - 0x98], 0x758301b0
jmp 0x40e8b1
mov dl, byte [ebp - 0x51]
mov eax, 0xaa35d519
mov ecx, 0xaac1c83d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x4a11fa
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0xaa01bbac
sub edx, 1
add edx, 0xaa01bbac
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, 0x7bd3a3e1
mov ecx, 0xebec70ed
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov eax, dword [ebp - 0x78]
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 - 0x74]
mov dword [eax], ecx
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0x9b8171a4
sub edx, 1
add edx, 0x9b8171a4
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, 0x7bd3a3e1
mov ecx, 0xcb99ab3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0xd675b9cb
jmp 0x40e8b1
mov eax, dword [ebp - 0x50]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x49], al
mov dword [ebp - 0x98], 0x1aa01390
jmp 0x40e8b1
mov dl, byte [ebp - 0x49]
mov eax, 0x16b31686
mov ecx, 0xe9c29b58
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
add edx, 0xded84d59
sub edx, 1
sub edx, 0xded84d59
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, 0x57cf0a7
mov ecx, 0x880ea4b7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
add edx, 0xce2b4965
sub edx, 1
sub edx, 0xce2b4965
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, 0x57cf0a7
mov ecx, 0x839f48b8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0xd0ea1820
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
add edx, 0xbd5439a1
sub edx, 1
sub edx, 0xbd5439a1
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, 0x6c869c68
mov ecx, 0x88243a0c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
mov edx, eax
sub edx, 0x92eb0567
sub edx, 1
add edx, 0x92eb0567
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, 0x6c869c68
mov ecx, 0xd56a29
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x83d4a7e7
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0xfbb89b6c
sub edx, 1
add edx, 0xfbb89b6c
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, 0x8e27f1af
mov ecx, 0x3fc2ba32
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x4a11fa
jmp 0x40e8b1
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
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, 0x923d8f9b
mov ecx, 0x65934b8a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x14b60c59
jmp 0x40e8b1
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x3c]
sub eax, 0xec8bd941
add eax, ecx
add eax, 0xec8bd941
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x98], 0x494c69e1
jmp 0x40e8b1
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
mov word [eax], 0
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
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, 0xe2a99204
mov ecx, 0x7f86207d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
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, 0x8989e071
mov ecx, 0x62cc4c8d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x3935f9f2
jmp 0x40e8b1
mov dl, byte [ebp - 0x39]
mov eax, 0x1604055
mov ecx, 0x3d83416a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0xd397af9c
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
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, 0xee6085ef
mov ecx, 0x69c33592
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x513b3415
jmp 0x40e8b1
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
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 - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x436e5e
call fcn.0042b450
add esp, 8
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x2d], al
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
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, 0xb55c29bc
mov ecx, 0xa8f5cedc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dl, byte [ebp - 0x2d]
mov eax, 0x9e2422
mov ecx, 0x294af97
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov eax, dword [ebp - 0x5c]
mov dword [eax], 0
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
add eax, 0xd3d820dd
add eax, ecx
sub eax, 0xd3d820dd
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x98], 0xed75011a
jmp 0x40e8b1
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x2c]
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 - 0x58]
mov byte [eax], cl
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x60]
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 eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x60]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
sub eax, 0x925cf517
add eax, ecx
add eax, 0x925cf517
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x98], 0xd0d1992b
jmp 0x40e8b1
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
mov edx, eax
sub edx, 0xd9e1b04e
sub edx, 1
add edx, 0xd9e1b04e
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, 0x182f73
mov ecx, 0xf9339142
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00427cb0
add esp, 0xc
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x80]
mov esi, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub esi, 0xd94b7d4c
add esi, eax
add esi, 0xd94b7d4c
mov eax, dword [ebp - 0x5c]
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 - 0x58]
mov byte [eax], cl
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
mov edx, eax
add edx, 0xf17d5d9c
sub edx, 1
sub edx, 0xf17d5d9c
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, 0x182f73
mov ecx, 0x84562d10
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x294af97
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x230a021d
jmp 0x40e8b1
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0x53ba8c1d
sub edx, 1
add edx, 0x53ba8c1d
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, 0x141cf5f8
mov ecx, 0x95dd49ab
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov cx, word [ebp - 0x16]
xor eax, eax
sub ax, cx
xor ecx, ecx
sub cx, 1
add ax, cx
xor ecx, ecx
sub cx, ax
mov eax, dword [ebp - 0x64]
mov word [eax], cx
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
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, 0x141cf5f8
mov ecx, 0x84d88f7a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x2cbf1da4
jmp 0x40e8b1
mov eax, dword [0x43f574]
mov ecx, dword [0x43f570]
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, 0x2ddeacb3
mov ecx, 0x87258b3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
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 [0x43f574]
mov ecx, dword [0x43f570]
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, 0x2ddeacb3
mov ecx, 0x2522348d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov ecx, dword [0x43f574]
mov eax, dword [0x43f570]
mov edx, ecx
sub edx, 0x6ddd71df
sub edx, 1
add edx, 0x6ddd71df
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, 0x155594ca
mov ecx, 0xccc022e3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x98], eax
jmp 0x40e8b1
mov dword [ebp - 0x98], 0xe01c7785
jmp 0x40e8b1
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x98], 0x4a11fa
jmp 0x40e8b1
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00426e60
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x98], 0x9bce4899
jmp 0x40e8b1
mov ecx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x90]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x88]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00427b50
add esp, 0xc
mov eax, dword [ebp - 0x90]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x98], 0xb3969086
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x47daf9d6
jmp 0x40e8b1
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x98], 0x79499c3f
jmp 0x40e8b1
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x98], 0x880ea4b7
jmp 0x40e8b1
mov dword [ebp - 0x98], 0x3fc2ba32
jmp 0x40e8b1
mov eax, dword [ebp - 0x74]
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 - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov dword [eax], ecx
mov dword [ebp - 0x98], 0x65934b8a
jmp 0x40e8b1
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x44]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
mov word [eax], 0
mov dword [ebp - 0x98], 0x2ec4ae8
jmp 0x40e8b1
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x98], 0x62cc4c8d
jmp 0x40e8b1
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x98], 0x69c33592
jmp 0x40e8b1
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
xor eax, eax
sub eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x60]
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x436e5e
call fcn.0042b450
add esp, 8
mov dword [ebp - 0x98], 0xa7445c54
jmp 0x40e8b1
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00427cb0
add esp, 0xc
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x80]
mov esi, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
xor esi, esi
sub esi, edi
add eax, esi
xor esi, esi
sub esi, eax
mov eax, dword [ebp - 0x5c]
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 - 0x58]
mov byte [eax], cl
mov dword [ebp - 0x98], 0xf9339142
jmp 0x40e8b1
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]
add cx, 0x7643
add cx, 1
sub cx, 0x7643
mov eax, dword [ebp - 0x64]
mov word [eax], cx
mov dword [ebp - 0x98], 0x95dd49ab
jmp 0x40e8b1
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x98], 0xe1013cc8
jmp 0x40c948