Function at 0x40cd50
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 - 0x98], eax
mov eax, dword [0x43f080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x94], 0xf9ef94cd
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x9c], eax
sub eax, 0x80207a65
je 0x40d755
jmp 0x40cd95
mov eax, dword [ebp - 0x9c]
sub eax, 0x87f70a20
je 0x40e42a
jmp 0x40cdab
mov eax, dword [ebp - 0x9c]
sub eax, 0x8af80e68
je 0x40e2bb
jmp 0x40cdc1
mov eax, dword [ebp - 0x9c]
sub eax, 0x8d901024
je 0x40dd50
jmp 0x40cdd7
mov eax, dword [ebp - 0x9c]
sub eax, 0x97540506
je 0x40d3c3
jmp 0x40cded
mov eax, dword [ebp - 0x9c]
sub eax, 0x9c4a421e
je 0x40db2a
jmp 0x40ce03
mov eax, dword [ebp - 0x9c]
sub eax, 0x9ddcc106
je 0x40d850
jmp 0x40ce19
mov eax, dword [ebp - 0x9c]
sub eax, 0x9f2cf145
je 0x40e34c
jmp 0x40ce2f
mov eax, dword [ebp - 0x9c]
sub eax, 0x9feb1f03
je 0x40e472
jmp 0x40ce45
mov eax, dword [ebp - 0x9c]
sub eax, 0x9ffbadda
je 0x40d41d
jmp 0x40ce5b
mov eax, dword [ebp - 0x9c]
sub eax, 0xa592b849
je 0x40dc63
jmp 0x40ce71
mov eax, dword [ebp - 0x9c]
sub eax, 0xb098d7e9
je 0x40e0ba
jmp 0x40ce87
mov eax, dword [ebp - 0x9c]
sub eax, 0xb1f66671
je 0x40de16
jmp 0x40ce9d
mov eax, dword [ebp - 0x9c]
sub eax, 0xb2752dd1
je 0x40e2a9
jmp 0x40ceb3
mov eax, dword [ebp - 0x9c]
sub eax, 0xb29e32d2
je 0x40dd41
jmp 0x40cec9
mov eax, dword [ebp - 0x9c]
sub eax, 0xb48e6877
je 0x40e057
jmp 0x40cedf
mov eax, dword [ebp - 0x9c]
sub eax, 0xb7a483c5
je 0x40dcb4
jmp 0x40cef5
mov eax, dword [ebp - 0x9c]
sub eax, 0xb8aabe84
je 0x40de5f
jmp 0x40cf0b
mov eax, dword [ebp - 0x9c]
sub eax, 0xb8ad0fb1
je 0x40e07f
jmp 0x40cf21
mov eax, dword [ebp - 0x9c]
sub eax, 0xbc319655
je 0x40d5eb
jmp 0x40cf37
mov eax, dword [ebp - 0x9c]
sub eax, 0xbcd88e79
je 0x40e184
jmp 0x40cf4d
mov eax, dword [ebp - 0x9c]
sub eax, 0xbe17940e
je 0x40e448
jmp 0x40cf63
mov eax, dword [ebp - 0x9c]
sub eax, 0xc8613827
je 0x40e1c5
jmp 0x40cf79
mov eax, dword [ebp - 0x9c]
sub eax, 0xcc6f7656
je 0x40d47d
jmp 0x40cf8f
mov eax, dword [ebp - 0x9c]
sub eax, 0xd6b9e3e9
je 0x40dd99
jmp 0x40cfa5
mov eax, dword [ebp - 0x9c]
sub eax, 0xd6dbb31a
je 0x40d7b5
jmp 0x40cfbb
mov eax, dword [ebp - 0x9c]
sub eax, 0xdbfbc31a
je 0x40d685
jmp 0x40cfd1
mov eax, dword [ebp - 0x9c]
sub eax, 0xdf3aba3b
je 0x40d634
jmp 0x40cfe7
mov eax, dword [ebp - 0x9c]
sub eax, 0xe98fca21
je 0x40e3f4
jmp 0x40cffd
mov eax, dword [ebp - 0x9c]
sub eax, 0xeaed0f6a
je 0x40da4e
jmp 0x40d013
mov eax, dword [ebp - 0x9c]
sub eax, 0xf09e116e
je 0x40dbd7
jmp 0x40d029
mov eax, dword [ebp - 0x9c]
sub eax, 0xf16c3f93
je 0x40df3e
jmp 0x40d03f
mov eax, dword [ebp - 0x9c]
sub eax, 0xf335131a
je 0x40d5dc
jmp 0x40d055
mov eax, dword [ebp - 0x9c]
sub eax, 0xf9ef94cd
je 0x40d372
jmp 0x40d06b
mov eax, dword [ebp - 0x9c]
sub eax, 0x4a32172
je 0x40da05
jmp 0x40d081
mov eax, dword [ebp - 0x9c]
sub eax, 0x5f1afa6
je 0x40e0da
jmp 0x40d097
mov eax, dword [ebp - 0x9c]
sub eax, 0x989290c
je 0x40e2ca
jmp 0x40d0ad
mov eax, dword [ebp - 0x9c]
sub eax, 0xaf3877e
je 0x40e0ab
jmp 0x40d0c3
mov eax, dword [ebp - 0x9c]
sub eax, 0xbcc61bd
je 0x40dabd
jmp 0x40d0d9
mov eax, dword [ebp - 0x9c]
sub eax, 0xf037a92
je 0x40d5be
jmp 0x40d0ef
mov eax, dword [ebp - 0x9c]
sub eax, 0x10e378bb
je 0x40e12b
jmp 0x40d105
mov eax, dword [ebp - 0x9c]
sub eax, 0x11a6039a
je 0x40e23b
jmp 0x40d11b
mov eax, dword [ebp - 0x9c]
sub eax, 0x14d3d1b9
je 0x40e460
jmp 0x40d131
mov eax, dword [ebp - 0x9c]
sub eax, 0x17836e74
je 0x40d841
jmp 0x40d147
mov eax, dword [ebp - 0x9c]
sub eax, 0x1bb4415a
je 0x40d9b2
jmp 0x40d15d
mov eax, dword [ebp - 0x9c]
sub eax, 0x2134494a
je 0x40d8a1
jmp 0x40d173
mov eax, dword [ebp - 0x9c]
sub eax, 0x242345d9
je 0x40db49
jmp 0x40d189
mov eax, dword [ebp - 0x9c]
sub eax, 0x26b8e3c3
je 0x40d764
jmp 0x40d19f
mov eax, dword [ebp - 0x9c]
sub eax, 0x2bb174dd
je 0x40dc3f
jmp 0x40d1b5
mov eax, dword [ebp - 0x9c]
sub eax, 0x3436a11c
je 0x40d9e7
jmp 0x40d1cb
mov eax, dword [ebp - 0x9c]
sub eax, 0x3965f177
je 0x40e3d3
jmp 0x40d1e1
mov eax, dword [ebp - 0x9c]
sub eax, 0x3bc5f853
je 0x40df2f
jmp 0x40d1f7
mov eax, dword [ebp - 0x9c]
sub eax, 0x3c8d1511
je 0x40e066
jmp 0x40d20d
mov eax, dword [ebp - 0x9c]
sub eax, 0x3ffb85e1
je 0x40da97
jmp 0x40d223
mov eax, dword [ebp - 0x9c]
sub eax, 0x4115aa07
je 0x40dc30
jmp 0x40d239
mov eax, dword [ebp - 0x9c]
sub eax, 0x45b3ee50
je 0x40df92
jmp 0x40d24f
mov eax, dword [ebp - 0x9c]
sub eax, 0x49f842cf
je 0x40e403
jmp 0x40d265
mov eax, dword [ebp - 0x9c]
sub eax, 0x4b8c3732
je 0x40d92e
jmp 0x40d27b
mov eax, dword [ebp - 0x9c]
sub eax, 0x4bf30052
je 0x40d9d0
jmp 0x40d291
mov eax, dword [ebp - 0x9c]
sub eax, 0x4d3eeade
je 0x40e193
jmp 0x40d2a7
mov eax, dword [ebp - 0x9c]
sub eax, 0x50536c3a
je 0x40d8b8
jmp 0x40d2bd
mov eax, dword [ebp - 0x9c]
sub eax, 0x532f2327
je 0x40de07
jmp 0x40d2d3
mov eax, dword [ebp - 0x9c]
sub eax, 0x594e5f38
je 0x40daa6
jmp 0x40d2e9
mov eax, dword [ebp - 0x9c]
sub eax, 0x6d3968ae
je 0x40e3e2
jmp 0x40d2ff
mov eax, dword [ebp - 0x9c]
sub eax, 0x7091f2c9
je 0x40e415
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
add edx, 0xd2170332
sub edx, 1
sub edx, 0xd2170332
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, 0x8af80e68
mov ecx, 0x97540506
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
add edx, 0x9d5addbc
sub edx, 1
sub edx, 0x9d5addbc
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, 0x8af80e68
mov ecx, 0x9ffbadda
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0x70f33868
jmp 0x40e47c
mov eax, dword [ebp - 0x98]
push eax
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x88], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x84], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x80], ecx
sub esp, 0x104
mov ecx, esp
mov dword [ebp - 0x7c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x78], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x74], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x70], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x6c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x68], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x64], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x60], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x5c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x90], eax
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.004282b0
add esp, 0xc
mov eax, dword [ebp - 0x90]
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 - 0x51], al
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
mov edx, ecx
sub edx, 0x5245e2fd
sub edx, 1
add edx, 0x5245e2fd
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, 0x989290c
mov ecx, 0xf037a92
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dl, byte [ebp - 0x51]
mov eax, 0xf335131a
mov ecx, 0xbc319655
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0xc8613827
jmp 0x40e47c
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 dword [ebp - 0x50], eax
mov dword [ebp - 0x94], 0xdf3aba3b
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
sub edx, 0x1c5fe9d4
sub edx, 1
add edx, 0x1c5fe9d4
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, 0x9f2cf145
mov ecx, 0xdbfbc31a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [ebp - 0x50]
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 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 eax, dword [ebp - 0x78]
mov ecx, 0xffffffff
cmp dword [eax], ecx
sete al
and al, 1
mov byte [ebp - 0x49], al
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
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, 0x9f2cf145
mov ecx, 0x80207a65
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0x26b8e3c3
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
sub edx, 0xdf21d1d6
sub edx, 1
add edx, 0xdf21d1d6
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, 0x3965f177
mov ecx, 0xd6dbb31a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
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, 0x3965f177
mov ecx, 0x7dfb1ef2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0xc8613827
jmp 0x40e47c
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 dword [ebp - 0x94], 0x2134494a
jmp 0x40e47c
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x94], 0x50536c3a
jmp 0x40e47c
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
mov edx, ecx
sub edx, 0x8b380c52
sub edx, 1
add edx, 0x8b380c52
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, 0x6d3968ae
mov ecx, 0x4b8c3732
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [ebp - 0x48]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x41], al
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
mov edx, ecx
sub edx, 0xbdac018c
sub edx, 1
add edx, 0xbdac018c
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, 0x6d3968ae
mov ecx, 0x1bb4415a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dl, byte [ebp - 0x41]
mov eax, 0x4bf30052
mov ecx, 0x594e5f38
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x94], 0x3436a11c
jmp 0x40e47c
mov eax, dword [ebp - 0x40]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x4a32172
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
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, 0xe98fca21
mov ecx, 0xeaed0f6a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
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, 0xe98fca21
mov ecx, 0x3ffb85e1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0xc8613827
jmp 0x40e47c
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x94], 0xbcc61bd
jmp 0x40e47c
mov eax, dword [ebp - 0x3c]
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 eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x3c]
add eax, 0x7476ca59
add eax, ecx
sub eax, 0x7476ca59
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x94], 0x9c4a421e
jmp 0x40e47c
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x68]
mov dword [eax], ecx
mov eax, dword [ebp - 0x64]
mov word [eax], 0
mov dword [ebp - 0x94], 0x242345d9
jmp 0x40e47c
mov eax, dword [ebp - 0x64]
movzx eax, word [eax]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x94], 0x72c382ed
jmp 0x40e47c
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
add edx, 0xb9880e79
sub edx, 1
sub edx, 0xb9880e79
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, 0x49f842cf
mov ecx, 0x4115aa07
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0x2bb174dd
jmp 0x40e47c
mov eax, dword [ebp - 0x30]
movzx esi, word [eax + 6]
mov edx, dword [ebp - 0x34]
mov eax, 0xb098d7e9
mov ecx, 0xa592b849
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
add edx, 0xfe57c8a7
sub edx, 1
sub edx, 0xfe57c8a7
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, 0x7091f2c9
mov ecx, 0xb7a483c5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, 0x18
sub eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
mov edx, ecx
add edx, 0xadd408b9
sub edx, 1
sub edx, 0xadd408b9
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, 0x7091f2c9
mov ecx, 0xb29e32d2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0x8d901024
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
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, 0x87f70a20
mov ecx, 0xd6b9e3e9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax + 0x14]
mov eax, dword [ebp - 0x2c]
add eax, 0x4172fc27
add eax, ecx
sub eax, 0x4172fc27
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x64]
movzx eax, word [eax]
imul eax, eax, 0x28
mov dword [ebp - 0x20], eax
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
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, 0x87f70a20
mov ecx, 0x532f2327
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0xb1f66671
jmp 0x40e47c
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
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], 0x437e5e
call fcn.0042bbb0
add esp, 8
mov edx, eax
mov eax, 0xb8aabe84
mov ecx, 0xb48e6877
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
sub edx, 0x47623ec
sub edx, 1
add edx, 0x47623ec
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, 0xbe17940e
mov ecx, 0x70cec8f6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0xf16c3f93
jmp 0x40e47c
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
xor eax, eax
sub eax, edx
xor edx, edx
sub edx, esi
add eax, edx
xor edx, edx
sub edx, eax
mov eax, dword [ebp - 0x5c]
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]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x94], 0x45b3ee50
jmp 0x40e47c
mov eax, dword [ebp - 0x1c]
cmp eax, 0
setne cl
and cl, 1
mov eax, dword [ebp - 0x58]
mov byte [eax], cl
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0x955374ec
add edx, eax
sub edx, 0x955374ec
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x60]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add ecx, 0x7d20f034
add ecx, eax
sub ecx, 0x7d20f034
mov eax, dword [ebp - 0x60]
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.00428410
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 - 0x94], 0xb48e6877
jmp 0x40e47c
mov dword [ebp - 0x94], 0x3c8d1511
jmp 0x40e47c
mov eax, dword [ebp - 0x64]
mov ax, word [eax]
mov word [ebp - 0x16], ax
mov dword [ebp - 0x94], 0xb8ad0fb1
jmp 0x40e47c
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 dword [ebp - 0x94], 0xaf3877e
jmp 0x40e47c
mov dword [ebp - 0x94], 0x242345d9
jmp 0x40e47c
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x5f1afa6
jmp 0x40e47c
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
sub edx, 0xe730baa0
sub edx, 1
add edx, 0xe730baa0
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, 0x14d3d1b9
mov ecx, 0x10e378bb
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [0x44053c]
mov ecx, dword [0x440538]
mov edx, eax
add edx, 0x78445d61
sub edx, 1
sub edx, 0x78445d61
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, 0x14d3d1b9
mov ecx, 0xbcd88e79
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov dword [ebp - 0x94], 0x4d3eeade
jmp 0x40e47c
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 - 0x94], 0xc8613827
jmp 0x40e47c
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
mov edx, ecx
sub edx, 0x4098038f
sub edx, 1
add edx, 0x4098038f
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, 0x9feb1f03
mov ecx, 0x11a6039a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov ecx, dword [0x44053c]
mov eax, dword [0x440538]
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, 0x9feb1f03
mov ecx, 0xb2752dd1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40e47c
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004275c0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x94], 0x97540506
jmp 0x40e47c
mov eax, dword [ebp - 0x98]
push eax
sub esp, 8
mov ecx, esp
mov dword [ebp - 0xa4], ecx
push eax
mov ecx, esp
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x90], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, eax
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x8c]
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.004282b0
add esp, 0xc
mov eax, dword [ebp - 0x90]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0xa0]
mov dword [eax], ecx
mov dword [ebp - 0x94], 0xcc6f7656
jmp 0x40e47c
mov eax, dword [ebp - 0x50]
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 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 eax, dword [ebp - 0x78]
mov dword [ebp - 0x94], 0xdbfbc31a
jmp 0x40e47c
mov dword [ebp - 0x94], 0xd6dbb31a
jmp 0x40e47c
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x94], 0x4b8c3732
jmp 0x40e47c
mov dword [ebp - 0x94], 0xeaed0f6a
jmp 0x40e47c
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x94], 0xf09e116e
jmp 0x40e47c
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x94], 0xd6b9e3e9
jmp 0x40e47c
mov eax, dword [ebp - 0x5c]
mov dword [eax], 0
mov dword [ebp - 0x94], 0x70cec8f6
jmp 0x40e47c
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x94], 0x10e378bb
jmp 0x40e47c
mov dword [ebp - 0x94], 0x11a6039a
jmp 0x40cd79