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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x9c
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa4], eax
mov eax, dword [0x436080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
sub edx, 0x16aa3f09
sub edx, 1
add edx, 0x16aa3f09
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x9a], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x99], al
mov dword [ebp - 0xa0], 0x7ff9b481
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xa8], eax
sub eax, 0x81f80607
je 0x4099dc
jmp 0x4086a4
mov eax, dword [ebp - 0xa8]
sub eax, 0x8660df9e
je 0x409e68
jmp 0x4086ba
mov eax, dword [ebp - 0xa8]
sub eax, 0x898c78a1
je 0x409a66
jmp 0x4086d0
mov eax, dword [ebp - 0xa8]
sub eax, 0x8bbbc1ba
je 0x409ae3
jmp 0x4086e6
mov eax, dword [ebp - 0xa8]
sub eax, 0x8f0ea92c
je 0x409fd0
jmp 0x4086fc
mov eax, dword [ebp - 0xa8]
sub eax, 0x920af970
je 0x409a75
jmp 0x408712
mov eax, dword [ebp - 0xa8]
sub eax, 0x95f3df8c
je 0x409d34
jmp 0x408728
mov eax, dword [ebp - 0xa8]
sub eax, 0x9874ce5f
je 0x4090fb
jmp 0x40873e
mov eax, dword [ebp - 0xa8]
sub eax, 0x9da0b321
je 0x40a0b0
jmp 0x408754
mov eax, dword [ebp - 0xa8]
sub eax, 0x9f7734c6
je 0x4091c9
jmp 0x40876a
mov eax, dword [ebp - 0xa8]
sub eax, 0xa5e5d529
je 0x40967c
jmp 0x408780
mov eax, dword [ebp - 0xa8]
sub eax, 0xa6ff9ad9
je 0x408f87
jmp 0x408796
mov eax, dword [ebp - 0xa8]
sub eax, 0xa77fe101
je 0x409912
jmp 0x4087ac
mov eax, dword [ebp - 0xa8]
sub eax, 0xa9868c48
je 0x409d25
jmp 0x4087c2
mov eax, dword [ebp - 0xa8]
sub eax, 0xab28ced0
je 0x409827
jmp 0x4087d8
mov eax, dword [ebp - 0xa8]
sub eax, 0xac40dc60
je 0x40a092
jmp 0x4087ee
mov eax, dword [ebp - 0xa8]
sub eax, 0xade6db40
je 0x40958b
jmp 0x408804
mov eax, dword [ebp - 0xa8]
sub eax, 0xaf939cab
je 0x4091a6
jmp 0x40881a
mov eax, dword [ebp - 0xa8]
sub eax, 0xaff89627
je 0x409955
jmp 0x408830
mov eax, dword [ebp - 0xa8]
sub eax, 0xb103d648
je 0x409482
jmp 0x408846
mov eax, dword [ebp - 0xa8]
sub eax, 0xb3ff7b36
je 0x409d85
jmp 0x40885c
mov eax, dword [ebp - 0xa8]
sub eax, 0xb6b2b681
je 0x409386
jmp 0x408872
mov eax, dword [ebp - 0xa8]
sub eax, 0xb8eed7b1
je 0x408f96
jmp 0x408888
mov eax, dword [ebp - 0xa8]
sub eax, 0xbd963c85
je 0x409722
jmp 0x40889e
mov eax, dword [ebp - 0xa8]
sub eax, 0xc3214a6e
je 0x409d65
jmp 0x4088b4
mov eax, dword [ebp - 0xa8]
sub eax, 0xcb269516
je 0x409085
jmp 0x4088ca
mov eax, dword [ebp - 0xa8]
sub eax, 0xcf945c05
je 0x40a003
jmp 0x4088e0
mov eax, dword [ebp - 0xa8]
sub eax, 0xcfa4d6ae
je 0x409f6e
jmp 0x4088f6
mov eax, dword [ebp - 0xa8]
sub eax, 0xd364b904
je 0x40a1a3
jmp 0x40890c
mov eax, dword [ebp - 0xa8]
sub eax, 0xd69b7084
je 0x40946b
jmp 0x408922
mov eax, dword [ebp - 0xa8]
sub eax, 0xd86c274f
je 0x409f5c
jmp 0x408938
mov eax, dword [ebp - 0xa8]
sub eax, 0xda0b73f1
je 0x4096fd
jmp 0x40894e
mov eax, dword [ebp - 0xa8]
sub eax, 0xe00788df
je 0x408ebc
jmp 0x408964
mov eax, dword [ebp - 0xa8]
sub eax, 0xe6b5ed0c
je 0x40a132
jmp 0x40897a
mov eax, dword [ebp - 0xa8]
sub eax, 0xe81edc46
je 0x409818
jmp 0x408990
mov eax, dword [ebp - 0xa8]
sub eax, 0xe95bde4a
je 0x409309
jmp 0x4089a6
mov eax, dword [ebp - 0xa8]
sub eax, 0xe9648b22
je 0x4096ee
jmp 0x4089bc
mov eax, dword [ebp - 0xa8]
sub eax, 0xe9ea7705
je 0x409067
jmp 0x4089d2
mov eax, dword [ebp - 0xa8]
sub eax, 0xeb6b4673
je 0x40944d
jmp 0x4089e8
mov eax, dword [ebp - 0xa8]
sub eax, 0xf56b7fab
je 0x4095ec
jmp 0x4089fe
mov eax, dword [ebp - 0xa8]
sub eax, 0xf600cfe2
je 0x408e3f
jmp 0x408a14
mov eax, dword [ebp - 0xa8]
sub eax, 0xfb9545c6
je 0x409369
jmp 0x408a2a
mov eax, dword [ebp - 0xa8]
sub eax, 0xfbfaf3e2
je 0x40a012
jmp 0x408a40
mov eax, dword [ebp - 0xa8]
sub eax, 0xffd0c13b
je 0x408e4e
jmp 0x408a56
mov eax, dword [ebp - 0xa8]
sub eax, 0x9c95c88
je 0x40a0ef
jmp 0x408a6c
mov eax, dword [ebp - 0xa8]
sub eax, 0xc01f5ec
je 0x4094a0
jmp 0x408a82
mov eax, dword [ebp - 0xa8]
sub eax, 0xfb6b7fa
je 0x40950e
jmp 0x408a98
mov eax, dword [ebp - 0xa8]
sub eax, 0x11425a29
je 0x408fe7
jmp 0x408aae
mov eax, dword [ebp - 0xa8]
sub eax, 0x1181de58
je 0x409e77
jmp 0x408ac4
mov eax, dword [ebp - 0xa8]
sub eax, 0x12b81a50
je 0x409318
jmp 0x408ada
mov eax, dword [ebp - 0xa8]
sub eax, 0x13a06bd8
je 0x40957c
jmp 0x408af0
mov eax, dword [ebp - 0xa8]
sub eax, 0x15feb053
je 0x4093d7
jmp 0x408b06
mov eax, dword [ebp - 0xa8]
sub eax, 0x175d81cc
je 0x409dfb
jmp 0x408b1c
mov eax, dword [ebp - 0xa8]
sub eax, 0x201029e9
je 0x40921a
jmp 0x408b32
mov eax, dword [ebp - 0xa8]
sub eax, 0x21ae1fa6
je 0x409f4d
jmp 0x408b48
mov eax, dword [ebp - 0xa8]
sub eax, 0x221aefb3
je 0x409bed
jmp 0x408b5e
mov eax, dword [ebp - 0xa8]
sub eax, 0x244ed632
je 0x40a0a1
jmp 0x408b74
mov eax, dword [ebp - 0xa8]
sub eax, 0x28128872
je 0x4092eb
jmp 0x408b8a
mov eax, dword [ebp - 0xa8]
sub eax, 0x32ec36a3
je 0x40914c
jmp 0x408ba0
mov eax, dword [ebp - 0xa8]
sub eax, 0x35d5afd4
je 0x40a102
jmp 0x408bb6
mov eax, dword [ebp - 0xa8]
sub eax, 0x39518169
je 0x40a1db
jmp 0x408bcc
mov eax, dword [ebp - 0xa8]
sub eax, 0x39768d8d
je 0x409f7d
jmp 0x408be2
mov eax, dword [ebp - 0xa8]
sub eax, 0x3f3d34dd
je 0x409eed
jmp 0x408bf8
mov eax, dword [ebp - 0xa8]
sub eax, 0x44285b81
je 0x40998b
jmp 0x408c0e
mov eax, dword [ebp - 0xa8]
sub eax, 0x45b21677
je 0x409d56
mov dword [ebp - 0xa0], 0xffd0c13b
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
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, 0x39768d8d
mov ecx, 0xe00788df
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov ecx, dword [ebp - 0xa4]
push eax
mov eax, esp
mov dword [ebp - 0x80], eax
push eax
mov eax, esp
mov dword [ebp - 0x7c], eax
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
mov eax, dword [ebp - 0x98]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
mov eax, dword [ebp - 0x90]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.004210a0
add esp, 0xc
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
add edx, 0x8c4726b6
sub edx, 1
sub edx, 0x8c4726b6
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, 0x39768d8d
mov ecx, 0xa6ff9ad9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xb8eed7b1
jmp 0x40a1f4
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
add edx, 0x87e4b5c1
sub edx, 1
sub edx, 0x87e4b5c1
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, 0x8f0ea92c
mov ecx, 0x11425a29
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x98]
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 - 0x8c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x8c]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x59], al
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
sub edx, 0xacf59f45
sub edx, 1
add edx, 0xacf59f45
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, 0x8f0ea92c
mov ecx, 0xe9ea7705
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dl, byte [ebp - 0x59]
mov eax, 0xcb269516
mov ecx, 0x58585d90
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
sub edx, 0x126f5be3
sub edx, 1
add edx, 0x126f5be3
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, 0xcf945c05
mov ecx, 0x9874ce5f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
sub edx, 0x4aa69dac
sub edx, 1
add edx, 0x4aa69dac
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, 0xcf945c05
mov ecx, 0x32ec36a3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xd86c274f
jmp 0x40a1f4
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xa0], 0x9f7734c6
jmp 0x40a1f4
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
add edx, 0x186ad095
sub edx, 1
sub edx, 0x186ad095
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, 0xfbfaf3e2
mov ecx, 0x201029e9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x54]
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 - 0x84]
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 - 0x80]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov ecx, 0xffffffff
cmp dword [eax], ecx
sete al
and al, 1
mov byte [ebp - 0x4e], al
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
add edx, 0x60f02f8a
sub edx, 1
sub edx, 0x60f02f8a
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, 0xfbfaf3e2
mov ecx, 0x28128872
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dl, byte [ebp - 0x4e]
mov eax, 0x12b81a50
mov ecx, 0xe95bde4a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xd86c274f
jmp 0x40a1f4
mov eax, dword [ebp - 0x80]
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 - 0x7c]
mov dword [eax], ecx
mov dword [ebp - 0xa0], 0xfb9545c6
jmp 0x40a1f4
mov eax, dword [ebp - 0x7c]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x4d], al
mov dword [ebp - 0xa0], 0xb6b2b681
jmp 0x40a1f4
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
sub edx, 0xf3bc3da7
sub edx, 1
add edx, 0xf3bc3da7
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, 0xac40dc60
mov ecx, 0x15feb053
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
sub edx, 0xe445e077
sub edx, 1
add edx, 0xe445e077
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, 0xac40dc60
mov ecx, 0xeb6b4673
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dl, byte [ebp - 0x4d]
mov eax, 0xd69b7084
mov ecx, 0xade6db40
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0xa0], 0xb103d648
jmp 0x40a1f4
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa0], 0xc01f5ec
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
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, 0x244ed632
mov ecx, 0xfb6b7fa
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
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, 0x244ed632
mov ecx, 0x13a06bd8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xd86c274f
jmp 0x40a1f4
mov eax, dword [ebp - 0x7c]
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 - 0x78]
mov dword [eax], ecx
mov eax, dword [ebp - 0x88]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x74]
mov dword [eax], ecx
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0xa0], 0xf56b7fab
jmp 0x40a1f4
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xa0], 0x4e3ce7ad
jmp 0x40a1f4
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
add ecx, 0x5e1a2a1d
add ecx, eax
sub ecx, 0x5e1a2a1d
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov word [eax], 0
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
sub edx, 0x141e6884
sub edx, 1
add edx, 0x141e6884
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, 0x9da0b321
mov ecx, 0xe9648b22
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xda0b73f1
jmp 0x40a1f4
mov eax, dword [ebp - 0x6c]
movzx eax, word [eax]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov ax, word [eax + 6]
mov word [ebp - 0x3a], ax
mov dword [ebp - 0xa0], 0xbd963c85
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
add edx, 0xb65463df
sub edx, 1
sub edx, 0xb65463df
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, 0x9c95c88
mov ecx, 0x4c753fc9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xab28ced0
jmp 0x40a1f4
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x38]
mov eax, 0xc3214a6e
mov ecx, 0x49b0db61
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x30]
movzx eax, word [eax + 0x10]
mov ecx, dword [ebp - 0x34]
add ecx, 0xe158ca1b
add ecx, eax
sub ecx, 0xe158ca1b
mov eax, dword [ebp - 0x6c]
movzx eax, word [eax]
imul edx, eax, 0x28
xor eax, eax
sub eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x68]
mov dword [eax], ecx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0xa0], 0xaff89627
jmp 0x40a1f4
mov ecx, dword [ebp - 0x2c]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42f85e
call fcn.004249a0
add esp, 8
mov edx, eax
mov eax, 0x44285b81
mov ecx, 0x6932c59f
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
add edx, 0x4cf815f6
sub edx, 1
sub edx, 0x4cf815f6
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, 0x628a94b5
mov ecx, 0x81f80607
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x64]
mov dword [eax], 0
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
add eax, 8
mov dword [ebp - 0x28], eax
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
sub edx, 0x3aa99131
sub edx, 1
add edx, 0x3aa99131
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, 0x628a94b5
mov ecx, 0x898c78a1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0x920af970
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
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, 0xe6b5ed0c
mov ecx, 0x8bbbc1ba
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0x9b04ee7a
add edx, eax
sub edx, 0x9b04ee7a
mov eax, dword [ebp - 0x64]
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 - 0x60]
mov byte [eax], cl
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
sub eax, 0x845029d6
add eax, ecx
add eax, 0x845029d6
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x68]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0xc]
xor ecx, ecx
sub ecx, edx
sub eax, ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
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, 0xe6b5ed0c
mov ecx, 0x496790b5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00421200
add esp, 0xc
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x88]
mov esi, dword [eax]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
xor eax, eax
sub eax, edi
sub esi, eax
mov eax, dword [ebp - 0x64]
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 - 0x60]
mov byte [eax], cl
mov dword [ebp - 0xa0], 0x6932c59f
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0x95f3df8c
jmp 0x40a1f4
mov cx, word [ebp - 0x16]
xor eax, eax
sub ax, 1
sub cx, ax
mov eax, dword [ebp - 0x6c]
mov word [eax], cx
mov dword [ebp - 0xa0], 0x45b21677
jmp 0x40a1f4
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], 0xb3ff7b36
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
add edx, 0x3396855a
sub edx, 1
sub edx, 0x3396855a
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, 0x75634472
mov ecx, 0x175d81cc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
add edx, 0x89d6d71f
sub edx, 1
sub edx, 0x89d6d71f
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, 0x75634472
mov ecx, 0x8660df9e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0x1181de58
jmp 0x40a1f4
mov ecx, dword [0x43754c]
mov eax, dword [0x437548]
mov edx, ecx
add edx, 0x20f9c769
sub edx, 1
sub edx, 0x20f9c769
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, 0x39518169
mov ecx, 0x3f3d34dd
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x43754c]
mov ecx, dword [0x437548]
mov edx, eax
sub edx, 0x71113a83
sub edx, 1
add edx, 0x71113a83
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, 0x39518169
mov ecx, 0x21ae1fa6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa0], eax
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xd86c274f
jmp 0x40a1f4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004203b0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0xa0], 0x6a2ed6eb
jmp 0x40a1f4
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x98]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x94]
mov dword [eax], ecx
mov eax, dword [ebp - 0x90]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.004210a0
add esp, 0xc
mov dword [ebp - 0xa0], 0xe00788df
jmp 0x40a1f4
mov eax, dword [ebp - 0x98]
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 - 0x8c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], 0x11425a29
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0x9874ce5f
jmp 0x40a1f4
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x54]
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 - 0x84]
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 - 0x80]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0xa0], 0x201029e9
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0x15feb053
jmp 0x40a1f4
mov dword [ebp - 0xa0], 0xfb6b7fa
jmp 0x40a1f4
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
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 - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov word [eax], 0
mov dword [ebp - 0xa0], 0xa5e5d529
jmp 0x40a1f4
mov ax, word [ebp - 0x3a]
mov dword [ebp - 0xa0], 0x4c753fc9
jmp 0x40a1f4
mov eax, dword [ebp - 0x70]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0xa0], 0x4c9669b1
jmp 0x40a1f4
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
add edx, 0x2ff3fe5
add edx, eax
sub edx, 0x2ff3fe5
mov eax, dword [ebp - 0x64]
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 - 0x60]
mov byte [eax], cl
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x78]
mov eax, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xa0], 0x8bbbc1ba
jmp 0x40a1f4
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0xa0], 0x7e43c1f3
jmp 0x40a1f4
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa0], 0x3f3d34dd
jmp 0x408688