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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0xa0
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa4], eax
mov eax, dword [0x43f080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xa0], 0x4a7383e8
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa8], eax
sub eax, 0x80c4e624
je 0x40d5d1
jmp 0x40cb34
mov eax, dword [ebp - 0xa8]
sub eax, 0x82fe7db7
je 0x40da80
jmp 0x40cb4a
mov eax, dword [ebp - 0xa8]
sub eax, 0x902bf6ac
je 0x40d6ad
jmp 0x40cb60
mov eax, dword [ebp - 0xa8]
sub eax, 0x99969d2f
je 0x40db85
jmp 0x40cb76
mov eax, dword [ebp - 0xa8]
sub eax, 0x9c7ed3c1
je 0x40d0ec
jmp 0x40cb8c
mov eax, dword [ebp - 0xa8]
sub eax, 0xa1ac0c31
je 0x40d9d0
jmp 0x40cba2
mov eax, dword [ebp - 0xa8]
sub eax, 0xa35c0cc7
je 0x40d279
jmp 0x40cbb8
mov eax, dword [ebp - 0xa8]
sub eax, 0xa5859dd1
je 0x40dcea
jmp 0x40cbce
mov eax, dword [ebp - 0xa8]
sub eax, 0xa9332c66
je 0x40d589
jmp 0x40cbe4
mov eax, dword [ebp - 0xa8]
sub eax, 0xac662142
je 0x40d817
jmp 0x40cbfa
mov eax, dword [ebp - 0xa8]
sub eax, 0xad96f135
je 0x40db76
jmp 0x40cc10
mov eax, dword [ebp - 0xa8]
sub eax, 0xc86b5c27
je 0x40dd82
jmp 0x40cc26
mov eax, dword [ebp - 0xa8]
sub eax, 0xcb865ab5
je 0x40dc64
jmp 0x40cc3c
mov eax, dword [ebp - 0xa8]
sub eax, 0xcfc15d5a
je 0x40d6e0
jmp 0x40cc52
mov eax, dword [ebp - 0xa8]
sub eax, 0xd0cc9aac
je 0x40dcc3
jmp 0x40cc68
mov eax, dword [ebp - 0xa8]
sub eax, 0xd4ff0482
je 0x40d4e4
jmp 0x40cc7e
mov eax, dword [ebp - 0xa8]
sub eax, 0xd579c243
je 0x40dad4
jmp 0x40cc94
mov eax, dword [ebp - 0xa8]
sub eax, 0xd9ad0d5b
je 0x40d0fb
jmp 0x40ccaa
mov eax, dword [ebp - 0xa8]
sub eax, 0xe617cf71
je 0x40dbf9
jmp 0x40ccc0
mov eax, dword [ebp - 0xa8]
sub eax, 0xe7c2de54
je 0x40d5a1
jmp 0x40ccd6
mov eax, dword [ebp - 0xa8]
sub eax, 0xec5a053a
je 0x40dcb1
jmp 0x40ccec
mov eax, dword [ebp - 0xa8]
sub eax, 0xec8c1bc8
je 0x40db25
jmp 0x40cd02
mov eax, dword [ebp - 0xa8]
sub eax, 0xed0f4927
je 0x40d4f3
jmp 0x40cd18
mov eax, dword [ebp - 0xa8]
sub eax, 0xf1672aed
je 0x40d308
jmp 0x40cd2e
mov eax, dword [ebp - 0xa8]
sub eax, 0xf500a073
je 0x40da8f
jmp 0x40cd44
mov eax, dword [ebp - 0xa8]
sub eax, 0xf71d3702
je 0x40dd91
jmp 0x40cd5a
mov eax, dword [ebp - 0xa8]
sub eax, 0xfd6bea7e
je 0x40d5e9
jmp 0x40cd70
mov eax, dword [ebp - 0xa8]
sub eax, 0x27cd4e8
je 0x40d43f
jmp 0x40cd86
mov eax, dword [ebp - 0xa8]
sub eax, 0x7fe4459
je 0x40d877
jmp 0x40cd9c
mov eax, dword [ebp - 0xa8]
sub eax, 0xc84cb12
je 0x40d2a9
jmp 0x40cdb2
mov eax, dword [ebp - 0xa8]
sub eax, 0xdd3eb23
je 0x40d327
jmp 0x40cdc8
mov eax, dword [ebp - 0xa8]
sub eax, 0xe88a071
je 0x40d1a9
jmp 0x40cdde
mov eax, dword [ebp - 0xa8]
sub eax, 0xec5af03
je 0x40d6bc
jmp 0x40cdf4
mov eax, dword [ebp - 0xa8]
sub eax, 0x137e6250
je 0x40d421
jmp 0x40ce0a
mov eax, dword [ebp - 0xa8]
sub eax, 0x15725b4f
je 0x40dc91
jmp 0x40ce20
mov eax, dword [ebp - 0xa8]
sub eax, 0x1614c48a
je 0x40dc73
jmp 0x40ce36
mov eax, dword [ebp - 0xa8]
sub eax, 0x173f6e03
je 0x40d70c
jmp 0x40ce4c
mov eax, dword [ebp - 0xa8]
sub eax, 0x1d447bf1
je 0x40dca2
jmp 0x40ce62
mov eax, dword [ebp - 0xa8]
sub eax, 0x2b43cc7e
je 0x40dba8
jmp 0x40ce78
mov eax, dword [ebp - 0xa8]
sub eax, 0x2ba06d03
je 0x40dd08
jmp 0x40ce8e
mov eax, dword [ebp - 0xa8]
sub eax, 0x2df12d0c
je 0x40d782
jmp 0x40cea4
mov eax, dword [ebp - 0xa8]
sub eax, 0x30b59137
je 0x40d19a
jmp 0x40ceba
mov eax, dword [ebp - 0xa8]
sub eax, 0x33c4e320
je 0x40d9e8
jmp 0x40ced0
mov eax, dword [ebp - 0xa8]
sub eax, 0x3f074f1e
je 0x40d2b8
jmp 0x40cee6
mov eax, dword [ebp - 0xa8]
sub eax, 0x3f44dca5
je 0x40d511
jmp 0x40cefc
mov eax, dword [ebp - 0xa8]
sub eax, 0x3f5c7222
je 0x40dcd8
jmp 0x40cf12
mov eax, dword [ebp - 0xa8]
sub eax, 0x4a7383e8
je 0x40d009
jmp 0x40cf28
mov eax, dword [ebp - 0xa8]
sub eax, 0x503c2890
je 0x40d05a
jmp 0x40cf3e
mov eax, dword [ebp - 0xa8]
sub eax, 0x54923bd8
je 0x40d39d
jmp 0x40cf54
mov eax, dword [ebp - 0xa8]
sub eax, 0x5a49f329
je 0x40d200
jmp 0x40cf6a
mov eax, dword [ebp - 0xa8]
sub eax, 0x5e1aae3a
je 0x40d632
jmp 0x40cf80
mov eax, dword [ebp - 0xa8]
sub eax, 0x60a591a1
je 0x40d520
jmp 0x40cf96
mov eax, dword [ebp - 0xa8]
sub eax, 0x6313c382
je 0x40d9c1
jmp 0x40cfac
mov eax, dword [ebp - 0xa8]
sub eax, 0x68a4ee2c
je 0x40d826
jmp 0x40cfc2
mov eax, dword [ebp - 0xa8]
sub eax, 0x6e0c2efd
je 0x40d490
jmp 0x40cfd8
mov eax, dword [ebp - 0xa8]
sub eax, 0x708146d0
je 0x40d8e5
jmp 0x40cfee
mov eax, dword [ebp - 0xa8]
sub eax, 0x7af96d2a
je 0x40daa8
jmp 0x40d004
jmp 0x40ddac
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
add edx, 0x9aad40dc
sub edx, 1
sub edx, 0x9aad40dc
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, 0x1d447bf1
mov ecx, 0x503c2890
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
push eax
sub esp, 8
mov eax, esp
mov dword [ebp - 0x94], eax
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
sub esp, 0x104
mov eax, esp
mov dword [ebp - 0x88], eax
push eax
mov eax, esp
mov dword [ebp - 0x84], eax
push eax
mov eax, esp
mov dword [ebp - 0x80], eax
push eax
mov eax, esp
mov dword [ebp - 0x7c], eax
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
add edx, 0xccd08d9b
sub edx, 1
sub edx, 0xccd08d9b
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, 0x1d447bf1
mov ecx, 0x9c7ed3c1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0xd9ad0d5b
jmp 0x40ddac
mov eax, dword [ebp - 0xa4]
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
mov dword [ebp - 0x98], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x94]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00428cd0
add esp, 0xc
mov eax, dword [ebp - 0x98]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x90]
mov dword [eax], ecx
mov edx, dword [ebp - 0x90]
mov eax, 0x30b59137
mov ecx, 0xe88a071
cmp dword [edx], 0
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0x15725b4f
jmp 0x40ddac
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x94]
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 - 0x94]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x8c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xa0], 0x5a49f329
jmp 0x40ddac
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x60]
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 - 0x88]
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 dword [ebp - 0x5c], eax
mov dword [ebp - 0xa0], 0xa35c0cc7
jmp 0x40ddac
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x5c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x84]
mov esi, 0xffffffff
mov eax, 0x3f074f1e
mov ecx, 0xc84cb12
cmp dword [edx], esi
cmove eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0x15725b4f
jmp 0x40ddac
mov eax, dword [ebp - 0x84]
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 dword [ebp - 0x58], eax
mov dword [ebp - 0xa0], 0xf1672aed
jmp 0x40ddac
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xa0], 0xdd3eb23
jmp 0x40ddac
mov ecx, dword [0x44057c]
mov eax, dword [0x440578]
mov edx, ecx
sub edx, 0x495686a2
sub edx, 1
add edx, 0x495686a2
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, 0xec5a053a
mov ecx, 0x54923bd8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x54]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x4d], al
mov ecx, dword [0x44057c]
mov eax, dword [0x440578]
mov edx, ecx
add edx, 0x1e693efa
sub edx, 1
sub edx, 0x1e693efa
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, 0xec5a053a
mov ecx, 0x137e6250
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dl, byte [ebp - 0x4d]
mov eax, 0x27cd4e8
mov ecx, 0x60a591a1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
add edx, 0xda0af66c
sub edx, 1
sub edx, 0xda0af66c
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, 0xd0cc9aac
mov ecx, 0x6e0c2efd
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
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, 0xd0cc9aac
mov ecx, 0xd4ff0482
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0xed0f4927
jmp 0x40ddac
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa0], 0x3f44dca5
jmp 0x40ddac
mov dword [ebp - 0xa0], 0x15725b4f
jmp 0x40ddac
mov eax, dword [ebp - 0x80]
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 - 0x7c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x78]
mov dword [eax], ecx
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xa0], 0xa9332c66
jmp 0x40ddac
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xa0], 0xe7c2de54
jmp 0x40ddac
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x40]
add ecx, 0x59abd4d1
add ecx, eax
sub ecx, 0x59abd4d1
mov eax, dword [ebp - 0x74]
mov dword [eax], ecx
mov eax, dword [ebp - 0x70]
mov word [eax], 0
mov dword [ebp - 0xa0], 0x80c4e624
jmp 0x40ddac
mov eax, dword [ebp - 0x70]
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0xa0], 0xfd6bea7e
jmp 0x40ddac
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
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, 0x3f5c7222
mov ecx, 0x5e1aae3a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov ax, word [eax + 6]
mov word [ebp - 0x36], ax
mov ecx, dword [0x44057c]
mov eax, dword [0x440578]
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, 0x3f5c7222
mov ecx, 0x902bf6ac
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0xec5af03
jmp 0x40ddac
mov ax, word [ebp - 0x36]
movzx esi, ax
mov edx, dword [ebp - 0x3c]
mov eax, 0x99969d2f
mov ecx, 0xcfc15d5a
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
add eax, 0x985fc86d
add eax, 0x18
sub eax, 0x985fc86d
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xa0], 0x173f6e03
jmp 0x40ddac
mov ecx, dword [0x44057c]
mov eax, dword [0x440578]
mov edx, ecx
add edx, 0xaf834adf
sub edx, 1
sub edx, 0xaf834adf
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, 0xa5859dd1
mov ecx, 0x2df12d0c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x30]
movzx edx, word [eax + 0x14]
mov eax, dword [ebp - 0x34]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x70]
movzx eax, word [eax]
imul eax, eax, 0x28
mov dword [ebp - 0x28], eax
mov ecx, dword [0x44057c]
mov eax, dword [0x440578]
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, 0xa5859dd1
mov ecx, 0xac662142
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0x68a4ee2c
jmp 0x40ddac
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
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 - 0x6c]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x437e4e
call fcn.0042c5d0
add esp, 8
mov edx, eax
mov eax, 0x7fe4459
mov ecx, 0x82fe7db7
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov ecx, dword [0x44057c]
mov eax, dword [0x440578]
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, 0x2ba06d03
mov ecx, 0x708146d0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x68]
mov dword [eax], 0
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0xe62b9efe
add edx, eax
sub edx, 0xe62b9efe
mov eax, dword [ebp - 0x68]
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 - 0x64]
mov byte [eax], cl
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x6c]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
sub eax, 0x6c04cfec
add eax, ecx
add eax, 0x6c04cfec
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
add edx, 0xe61520e8
sub edx, 1
sub edx, 0xe61520e8
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, 0x2ba06d03
mov ecx, 0x6313c382
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0xa1ac0c31
jmp 0x40ddac
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xa0], 0x33c4e320
jmp 0x40ddac
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
sub ecx, 0x582f5198
add ecx, eax
add ecx, 0x582f5198
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x24]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00428e30
add esp, 0xc
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x8c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add esi, 0xef361a37
add esi, eax
sub esi, 0xef361a37
mov eax, dword [ebp - 0x68]
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 - 0x64]
mov byte [eax], cl
mov dword [ebp - 0xa0], 0x82fe7db7
jmp 0x40ddac
mov dword [ebp - 0xa0], 0xf500a073
jmp 0x40ddac
mov eax, dword [ebp - 0x70]
mov ax, word [eax]
mov word [ebp - 0x12], ax
mov dword [ebp - 0xa0], 0x7af96d2a
jmp 0x40ddac
mov cx, word [ebp - 0x12]
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 - 0x70]
mov word [eax], cx
mov dword [ebp - 0xa0], 0xd579c243
jmp 0x40ddac
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
sub edx, 0x35e6e3fd
sub edx, 1
add edx, 0x35e6e3fd
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, 0xc86b5c27
mov ecx, 0xec8c1bc8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
add edx, 0x908d319a
sub edx, 1
sub edx, 0x908d319a
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, 0xc86b5c27
mov ecx, 0xad96f135
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0x80c4e624
jmp 0x40ddac
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa0], 0x2b43cc7e
jmp 0x40ddac
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
sub edx, 0xdf5569a0
sub edx, 1
add edx, 0xdf5569a0
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, 0xf71d3702
mov ecx, 0xe617cf71
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x10], eax
mov eax, dword [0x44057c]
mov ecx, dword [0x440578]
mov edx, eax
add edx, 0x1c00c9e5
sub edx, 1
sub edx, 0x1c00c9e5
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, 0xf71d3702
mov ecx, 0xcb865ab5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40ddac
mov dword [ebp - 0xa0], 0x1614c48a
jmp 0x40ddac
mov eax, dword [ebp - 0x10]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa0], 0x15725b4f
jmp 0x40ddac
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00427fe0
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov dword [ebp - 0xa0], 0x503c2890
jmp 0x40ddac
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0xa0], 0x54923bd8
jmp 0x40ddac
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xa0], 0x6e0c2efd
jmp 0x40ddac
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xa0], 0x5e1aae3a
jmp 0x40ddac
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0xa0], 0x2df12d0c
jmp 0x40ddac
mov eax, dword [ebp - 0x68]
mov dword [eax], 0
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x8c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0xb4c33f0
add edx, eax
sub edx, 0xb4c33f0
mov eax, dword [ebp - 0x68]
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 - 0x64]
mov byte [eax], cl
mov eax, dword [ebp - 0x8c]
mov eax, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xa0], 0x708146d0
jmp 0x40ddac
mov dword [ebp - 0xa0], 0xec8c1bc8
jmp 0x40ddac
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa0], 0xe617cf71
jmp 0x40cb18