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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x1b4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1b8], eax
mov eax, dword [0x438080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1b4], 0x36d1af36
mov eax, dword [ebp - 0x1b4]
mov dword [ebp - 0x1bc], eax
sub eax, 0x829a86ab
je 0x409119
jmp 0x407884
mov eax, dword [ebp - 0x1bc]
sub eax, 0x8309a791
je 0x4087e3
jmp 0x40789a
mov eax, dword [ebp - 0x1bc]
sub eax, 0x878cef19
je 0x408685
jmp 0x4078b0
mov eax, dword [ebp - 0x1bc]
sub eax, 0x87d2744a
je 0x408b00
jmp 0x4078c6
mov eax, dword [ebp - 0x1bc]
sub eax, 0x8899e4fd
je 0x4081e8
jmp 0x4078dc
mov eax, dword [ebp - 0x1bc]
sub eax, 0x8c1307ee
je 0x408452
jmp 0x4078f2
mov eax, dword [ebp - 0x1bc]
sub eax, 0x8d6c6d4c
je 0x408323
jmp 0x407908
mov eax, dword [ebp - 0x1bc]
sub eax, 0x90991e3d
je 0x4086df
jmp 0x40791e
mov eax, dword [ebp - 0x1bc]
sub eax, 0x95b3033a
je 0x40857f
jmp 0x407934
mov eax, dword [ebp - 0x1bc]
sub eax, 0x9692c718
je 0x407ed7
jmp 0x40794a
mov eax, dword [ebp - 0x1bc]
sub eax, 0x96f67e0d
je 0x408d09
jmp 0x407960
mov eax, dword [ebp - 0x1bc]
sub eax, 0x986ba362
je 0x40910a
jmp 0x407976
mov eax, dword [ebp - 0x1bc]
sub eax, 0x9905da68
je 0x407fd7
jmp 0x40798c
mov eax, dword [ebp - 0x1bc]
sub eax, 0x9d1728bb
je 0x408af1
jmp 0x4079a2
mov eax, dword [ebp - 0x1bc]
sub eax, 0xa1eac6f9
je 0x408570
jmp 0x4079b8
mov eax, dword [ebp - 0x1bc]
sub eax, 0xa23b23eb
je 0x408bfb
jmp 0x4079ce
mov eax, dword [ebp - 0x1bc]
sub eax, 0xa750e273
je 0x408993
jmp 0x4079e4
mov eax, dword [ebp - 0x1bc]
sub eax, 0xa98d543d
je 0x408a5f
jmp 0x4079fa
mov eax, dword [ebp - 0x1bc]
sub eax, 0xaa3c2791
je 0x408cdf
jmp 0x407a10
mov eax, dword [ebp - 0x1bc]
sub eax, 0xafaf8473
je 0x408443
jmp 0x407a26
mov eax, dword [ebp - 0x1bc]
sub eax, 0xb3a8b5d3
je 0x4083b4
jmp 0x407a3c
mov eax, dword [ebp - 0x1bc]
sub eax, 0xb676512d
je 0x408e0d
jmp 0x407a52
mov eax, dword [ebp - 0x1bc]
sub eax, 0xbb7f3a72
je 0x408d8d
jmp 0x407a68
mov eax, dword [ebp - 0x1bc]
sub eax, 0xbe114961
je 0x4085d0
jmp 0x407a7e
mov eax, dword [ebp - 0x1bc]
sub eax, 0xc0019b80
je 0x407ffe
jmp 0x407a94
mov eax, dword [ebp - 0x1bc]
sub eax, 0xc25c8537
je 0x408a0e
jmp 0x407aaa
mov eax, dword [ebp - 0x1bc]
sub eax, 0xc40db9dc
je 0x4081be
jmp 0x407ac0
mov eax, dword [ebp - 0x1bc]
sub eax, 0xcfdc1f1f
je 0x408cee
jmp 0x407ad6
mov eax, dword [ebp - 0x1bc]
sub eax, 0xd1689581
je 0x408fbd
jmp 0x407aec
mov eax, dword [ebp - 0x1bc]
sub eax, 0xe0407a46
je 0x408739
jmp 0x407b02
mov eax, dword [ebp - 0x1bc]
sub eax, 0xe2d7197c
je 0x4082f8
jmp 0x407b18
mov eax, dword [ebp - 0x1bc]
sub eax, 0xe38923fe
je 0x408d3c
jmp 0x407b2e
mov eax, dword [ebp - 0x1bc]
sub eax, 0xe6b818b3
je 0x409093
jmp 0x407b44
mov eax, dword [ebp - 0x1bc]
sub eax, 0xefbb4543
je 0x40819d
jmp 0x407b5a
mov eax, dword [ebp - 0x1bc]
sub eax, 0xf9f5f98e
je 0x407f6b
jmp 0x407b70
mov eax, dword [ebp - 0x1bc]
sub eax, 0x2600e85
je 0x408cb1
jmp 0x407b86
mov eax, dword [ebp - 0x1bc]
sub eax, 0x5eec9df
je 0x408858
jmp 0x407b9c
mov eax, dword [ebp - 0x1bc]
sub eax, 0x74ef119
je 0x409008
jmp 0x407bb2
mov eax, dword [ebp - 0x1bc]
sub eax, 0x79d4423
je 0x408b76
jmp 0x407bc8
mov eax, dword [ebp - 0x1bc]
sub eax, 0x96a69db
je 0x408434
jmp 0x407bde
mov eax, dword [ebp - 0x1bc]
sub eax, 0x9756046
je 0x408052
jmp 0x407bf4
mov eax, dword [ebp - 0x1bc]
sub eax, 0x180637a1
je 0x408867
jmp 0x407c0a
mov eax, dword [ebp - 0x1bc]
sub eax, 0x18151922
je 0x407f5c
jmp 0x407c20
mov eax, dword [ebp - 0x1bc]
sub eax, 0x1e632061
je 0x4080a3
jmp 0x407c36
mov eax, dword [ebp - 0x1bc]
sub eax, 0x1ef6b879
je 0x40870f
jmp 0x407c4c
mov eax, dword [ebp - 0x1bc]
sub eax, 0x24c99e12
je 0x4086c0
jmp 0x407c62
mov eax, dword [ebp - 0x1bc]
sub eax, 0x2defce71
je 0x409029
jmp 0x407c78
mov eax, dword [ebp - 0x1bc]
sub eax, 0x2fa83da4
je 0x408231
jmp 0x407c8e
mov eax, dword [ebp - 0x1bc]
sub eax, 0x32553b9c
je 0x408c44
jmp 0x407ca4
mov eax, dword [ebp - 0x1bc]
sub eax, 0x35fdb0d2
je 0x408f40
jmp 0x407cba
mov eax, dword [ebp - 0x1bc]
sub eax, 0x36d1af36
je 0x407e61
jmp 0x407cd0
mov eax, dword [ebp - 0x1bc]
sub eax, 0x377a51c3
je 0x408676
jmp 0x407ce6
mov eax, dword [ebp - 0x1bc]
sub eax, 0x398f43a9
je 0x4090ba
jmp 0x407cfc
mov eax, dword [ebp - 0x1bc]
sub eax, 0x3ab88297
je 0x40914f
jmp 0x407d12
mov eax, dword [ebp - 0x1bc]
sub eax, 0x3b0d6424
je 0x408bec
jmp 0x407d28
mov eax, dword [ebp - 0x1bc]
sub eax, 0x3b665baa
je 0x408f19
jmp 0x407d3e
mov eax, dword [ebp - 0x1bc]
sub eax, 0x3c0e3c91
je 0x4088ca
jmp 0x407d54
mov eax, dword [ebp - 0x1bc]
sub eax, 0x3cd34aac
je 0x408e1c
jmp 0x407d6a
mov eax, dword [ebp - 0x1bc]
sub eax, 0x41ae1273
je 0x4082e9
jmp 0x407d80
mov eax, dword [ebp - 0x1bc]
sub eax, 0x4225f693
je 0x40833e
jmp 0x407d96
mov eax, dword [ebp - 0x1bc]
sub eax, 0x5047ad0e
je 0x40912e
jmp 0x407dac
mov eax, dword [ebp - 0x1bc]
sub eax, 0x527fcf63
je 0x408e92
jmp 0x407dc2
mov eax, dword [ebp - 0x1bc]
sub eax, 0x54e7c9e1
je 0x407fc8
jmp 0x407dd8
mov eax, dword [ebp - 0x1bc]
sub eax, 0x585b828d
je 0x40876d
jmp 0x407dee
mov eax, dword [ebp - 0x1bc]
sub eax, 0x5bc94f72
je 0x408f08
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
sub edx, 0x4b5f87b9
sub edx, 1
add edx, 0x4b5f87b9
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, 0x3b665baa
mov ecx, 0x9692c718
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x1b8]
push eax
mov ecx, esp
mov dword [ebp - 0x18c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x188], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x184], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x180], ecx
mov dword [ebp - 0x190], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x194], eax
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
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, 0x3b665baa
mov ecx, 0x18151922
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0xf9f5f98e
jmp 0x409159
lea eax, [ebp - 0x11c]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00422610
add esp, 0xc
mov eax, dword [ebp - 0x190]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x198], eax
mov eax, 0x54e7c9e1
mov ecx, 0x9905da68
cmp dword [ebp - 0x198], 0
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x3cd34aac
jmp 0x409159
mov eax, dword [ebp - 0x198]
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x1b4], 0xc0019b80
jmp 0x409159
mov ecx, dword [ebp - 0x17c]
mov edx, dword [ebp - 0x178]
lea eax, [ebp - 0x11c]
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 - 0x11c]
mov dword [ebp - 0x19c], eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x174], eax
mov dword [ebp - 0x1b4], 0x9756046
jmp 0x409159
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
add edx, 0x3ea77bc4
sub edx, 1
sub edx, 0x3ea77bc4
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, 0x35fdb0d2
mov ecx, 0x1e632061
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x174]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x104
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x110]
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 - 0x1a0], eax
mov eax, 0xffffffff
cmp dword [ebp - 0x1a0], eax
sete al
and al, 1
mov byte [ebp - 0x16d], al
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
sub edx, 0x803f9103
sub edx, 1
add edx, 0x803f9103
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, 0x35fdb0d2
mov ecx, 0xefbb4543
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dl, byte [ebp - 0x16d]
mov eax, 0x68ffa063
mov ecx, 0xc40db9dc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x3cd34aac
jmp 0x409159
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
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, 0xd1689581
mov ecx, 0x2fa83da4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x16c]
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 - 0x168], eax
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
sub edx, 0x8a5b0f76
sub edx, 1
add edx, 0x8a5b0f76
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, 0xd1689581
mov ecx, 0x41ae1273
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0xe2d7197c
jmp 0x409159
mov eax, dword [ebp - 0x168]
mov dword [ebp - 0x1a4], eax
mov eax, 0x8d6c6d4c
mov ecx, 0x8c1307ee
cmp dword [ebp - 0x1a4], 0
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x1b4], 0x4225f693
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
add edx, 0x136aaf4c
sub edx, 1
sub edx, 0x136aaf4c
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, 0x74ef119
mov ecx, 0xb3a8b5d3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x164]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
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, 0x74ef119
mov ecx, 0x96a69db
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0xafaf8473
jmp 0x409159
mov dword [ebp - 0x1b4], 0x3cd34aac
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
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, 0x2defce71
mov ecx, 0x7d5a7435
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x95b3033a
jmp 0x409159
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
add edx, 0xc9902fc9
sub edx, 1
sub edx, 0xc9902fc9
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, 0x7fa10854
mov ecx, 0xbe114961
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x160]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x15c], eax
mov eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x158], eax
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
sub edx, 0x2fcc22ae
sub edx, 1
add edx, 0x2fcc22ae
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, 0x7fa10854
mov ecx, 0x377a51c3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x878cef19
jmp 0x409159
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x15c]
sub eax, 0xd81505da
add eax, ecx
add eax, 0xd81505da
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x18c]
mov word [eax], 0
mov dword [ebp - 0x1b4], 0x24c99e12
jmp 0x409159
mov eax, dword [ebp - 0x18c]
mov ax, word [eax]
mov word [ebp - 0x152], ax
mov dword [ebp - 0x1b4], 0x90991e3d
jmp 0x409159
mov ax, word [ebp - 0x152]
movzx eax, ax
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x1b0]
mov ax, word [eax + 6]
mov word [ebp - 0x14a], ax
mov dword [ebp - 0x1b4], 0x1ef6b879
jmp 0x409159
mov ax, word [ebp - 0x14a]
movzx esi, ax
mov edx, dword [ebp - 0x150]
mov eax, 0xcfdc1f1f
mov ecx, 0xe0407a46
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x1b0]
add eax, 0x20ab38e4
add eax, 0x18
sub eax, 0x20ab38e4
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x1b0]
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x1b4], 0x585b828d
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
add edx, 0xb5ae75c2
sub edx, 1
sub edx, 0xb5ae75c2
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, 0xe6b818b3
mov ecx, 0x8309a791
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x144]
movzx edx, word [eax + 0x14]
mov eax, dword [ebp - 0x148]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x140], eax
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
sub edx, 0xa0dcb7e2
sub edx, 1
add edx, 0xa0dcb7e2
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, 0xe6b818b3
mov ecx, 0x5eec9df
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x180637a1
jmp 0x409159
mov eax, dword [ebp - 0x18c]
movzx eax, word [eax]
imul eax, eax, 0x28
mov ecx, dword [ebp - 0x140]
add ecx, 0x5d3d9d13
add ecx, eax
sub ecx, 0x5d3d9d13
mov eax, dword [ebp - 0x188]
mov dword [eax], ecx
mov eax, dword [ebp - 0x188]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x431866
call fcn.00425f10
add esp, 8
mov edx, eax
mov eax, 0x3c0e3c91
mov ecx, 0x87d2744a
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x184]
mov dword [eax], 0
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 0x19c]
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub edx, 0x9a395fc5
add edx, eax
add edx, 0x9a395fc5
mov eax, dword [ebp - 0x184]
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 - 0x180]
mov byte [eax], cl
mov eax, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x188]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
add eax, 0x51033103
add eax, ecx
sub eax, 0x51033103
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x188]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
xor ecx, ecx
sub ecx, edx
sub eax, ecx
mov dword [ebp - 0x138], eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
add eax, 8
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x1b4], 0xa750e273
jmp 0x409159
mov eax, dword [ebp - 0x134]
mov eax, dword [eax]
mov edx, dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x138]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00422770
add esp, 0xc
mov eax, dword [ebp - 0x184]
mov eax, dword [eax]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x188]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x188]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
sub eax, 0xe8ebe317
add eax, ecx
add eax, 0xe8ebe317
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x1b4], 0xc25c8537
jmp 0x409159
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
add edx, 0xeed1af6a
sub edx, 1
sub edx, 0xeed1af6a
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, 0x398f43a9
mov ecx, 0xa98d543d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x128]
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 - 0x180]
mov byte [eax], cl
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
add edx, 0xf1fe0a66
sub edx, 1
sub edx, 0xf1fe0a66
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, 0x398f43a9
mov ecx, 0x9d1728bb
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x87d2744a
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
sub edx, 0xd4fcc7d5
sub edx, 1
add edx, 0xd4fcc7d5
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, 0x986ba362
mov ecx, 0x79d4423
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
add edx, 0x9f43ea3d
sub edx, 1
sub edx, 0x9f43ea3d
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, 0x986ba362
mov ecx, 0x3b0d6424
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0xa23b23eb
jmp 0x409159
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
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, 0x829a86ab
mov ecx, 0x32553b9c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x18c]
mov ax, word [eax]
add ax, 0x84fa
add ax, 1
sub ax, 0x84fa
mov word [ebp - 0x122], ax
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
add edx, 0x9d9d464d
sub edx, 1
sub edx, 0x9d9d464d
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, 0x829a86ab
mov ecx, 0x2600e85
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x5c58ccfb
jmp 0x409159
mov dword [ebp - 0x1b4], 0x24c99e12
jmp 0x409159
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x1b4], 0x96f67e0d
jmp 0x409159
mov eax, dword [ebp - 0x120]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x1a4]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x1b4], 0xe38923fe
jmp 0x409159
mov eax, dword [0x43958c]
mov ecx, dword [0x439588]
mov edx, eax
add edx, 0x302260ce
sub edx, 1
sub edx, 0x302260ce
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, 0x5047ad0e
mov ecx, 0xbb7f3a72
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x194]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
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, 0x5047ad0e
mov ecx, 0xb676512d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov dword [ebp - 0x1b4], 0x3cd34aac
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
add edx, 0x9fd5f378
sub edx, 1
sub edx, 0x9fd5f378
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, 0x3ab88297
mov ecx, 0x527fcf63
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov ecx, dword [0x43958c]
mov eax, dword [0x439588]
mov edx, ecx
add edx, 0xd364d23d
sub edx, 1
sub edx, 0xd364d23d
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, 0x3ab88297
mov ecx, 0x5bc94f72
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x1b4], eax
jmp 0x409159
mov eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x190], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x1b4], 0x9692c718
jmp 0x409159
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x174]
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x104
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [ebp - 0x110]
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 - 0x1a0], eax
mov dword [ebp - 0x1b4], 0x1e632061
jmp 0x409159
mov eax, dword [ebp - 0x16c]
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 - 0x1b4], 0x2fa83da4
jmp 0x409159
mov eax, dword [ebp - 0x164]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x1b4], 0xb3a8b5d3
jmp 0x409159
mov eax, dword [ebp - 0x1a4]
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 - 0x1b4], 0x7d5a7435
jmp 0x409159
mov eax, dword [ebp - 0x144]
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x148]
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1b4], 0x8309a791
jmp 0x409159
mov eax, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x128]
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 - 0x180]
mov byte [eax], cl
mov dword [ebp - 0x1b4], 0xa98d543d
jmp 0x409159
mov dword [ebp - 0x1b4], 0x79d4423
jmp 0x409159
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x1b4], 0x32553b9c
jmp 0x409159
mov eax, dword [ebp - 0x194]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x1b4], 0xbb7f3a72
jmp 0x409159
mov dword [ebp - 0x1b4], 0x527fcf63
jmp 0x407868