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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x8c
mov eax, dword [ebp + 8]
mov dword [ebp - 0x90], eax
mov eax, dword [0x432080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [ebp - 0x86], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x85], al
mov dword [ebp - 0x8c], 0x62aa4848
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x94], eax
sub eax, 0x83941ce4
je 0x409b8d
jmp 0x40858b
mov eax, dword [ebp - 0x94]
sub eax, 0x85033d71
je 0x4092a5
jmp 0x4085a1
mov eax, dword [ebp - 0x94]
sub eax, 0x893b475c
je 0x4092e0
jmp 0x4085b7
mov eax, dword [ebp - 0x94]
sub eax, 0x8a963c09
je 0x408fb3
jmp 0x4085cd
mov eax, dword [ebp - 0x94]
sub eax, 0x8b90ea83
je 0x409963
jmp 0x4085e3
mov eax, dword [ebp - 0x94]
sub eax, 0x8c26549a
je 0x4094ae
jmp 0x4085f9
mov eax, dword [ebp - 0x94]
sub eax, 0x8e9a3238
je 0x409032
jmp 0x40860f
mov eax, dword [ebp - 0x94]
sub eax, 0x8f56b2fe
je 0x409331
jmp 0x408625
mov eax, dword [ebp - 0x94]
sub eax, 0x90c32153
je 0x409665
jmp 0x40863b
mov eax, dword [ebp - 0x94]
sub eax, 0x91d70325
je 0x409282
jmp 0x408651
mov eax, dword [ebp - 0x94]
sub eax, 0x932d06a2
je 0x408f53
jmp 0x408667
mov eax, dword [ebp - 0x94]
sub eax, 0x9629e9e5
je 0x40956b
jmp 0x40867d
mov eax, dword [ebp - 0x94]
sub eax, 0x9a7d00ae
je 0x409a7b
jmp 0x408693
mov eax, dword [ebp - 0x94]
sub eax, 0x9db41b99
je 0x409ad5
jmp 0x4086a9
mov eax, dword [ebp - 0x94]
sub eax, 0x9e714fe8
je 0x408cc9
jmp 0x4086bf
mov eax, dword [ebp - 0x94]
sub eax, 0x9efd21e5
je 0x408e40
jmp 0x4086d5
mov eax, dword [ebp - 0x94]
sub eax, 0xa27e8ad9
je 0x409ae4
jmp 0x4086eb
mov eax, dword [ebp - 0x94]
sub eax, 0xa3efda96
je 0x408c53
jmp 0x408701
mov eax, dword [ebp - 0x94]
sub eax, 0xa8c17cd6
je 0x409a32
jmp 0x408717
mov eax, dword [ebp - 0x94]
sub eax, 0xb3ab30fc
je 0x408c44
jmp 0x40872d
mov eax, dword [ebp - 0x94]
sub eax, 0xb4961c43
je 0x40949f
jmp 0x408743
mov eax, dword [ebp - 0x94]
sub eax, 0xb5762fd4
je 0x409b13
jmp 0x408759
mov eax, dword [ebp - 0x94]
sub eax, 0xc5daf192
je 0x409133
jmp 0x40876f
mov eax, dword [ebp - 0x94]
sub eax, 0xca0481c4
je 0x408e6d
jmp 0x408785
mov eax, dword [ebp - 0x94]
sub eax, 0xca64f5e7
je 0x4098e6
jmp 0x40879b
mov eax, dword [ebp - 0x94]
sub eax, 0xcb8d9c50
je 0x4094fd
jmp 0x4087b1
mov eax, dword [ebp - 0x94]
sub eax, 0xcd119cd0
je 0x409716
jmp 0x4087c7
mov eax, dword [ebp - 0x94]
sub eax, 0xd4e2e104
je 0x408d84
jmp 0x4087dd
mov eax, dword [ebp - 0x94]
sub eax, 0xde5dc369
je 0x409a01
jmp 0x4087f3
mov eax, dword [ebp - 0x94]
sub eax, 0xe1a886e0
je 0x409c1e
jmp 0x408809
mov eax, dword [ebp - 0x94]
sub eax, 0xeaca6b28
je 0x409b04
jmp 0x40881f
mov eax, dword [ebp - 0x94]
sub eax, 0xecd6a083
je 0x4092bd
jmp 0x408835
mov eax, dword [ebp - 0x94]
sub eax, 0xeed913d3
je 0x4099e3
jmp 0x40884b
mov eax, dword [ebp - 0x94]
sub eax, 0xf1088f7f
je 0x409005
jmp 0x408861
mov eax, dword [ebp - 0x94]
sub eax, 0xf651a292
je 0x409cc2
jmp 0x408877
mov eax, dword [ebp - 0x94]
sub eax, 0xf75980ba
je 0x409023
jmp 0x40888d
mov eax, dword [ebp - 0x94]
sub eax, 0xfa162c0d
je 0x409af3
jmp 0x4088a3
mov eax, dword [ebp - 0x94]
sub eax, 0xfa33f7ad
je 0x409c0c
jmp 0x4088b9
mov eax, dword [ebp - 0x94]
sub eax, 0xfa47e759
je 0x408ec1
jmp 0x4088cf
mov eax, dword [ebp - 0x94]
sub eax, 0xff58c038
je 0x408e5e
jmp 0x4088e5
mov eax, dword [ebp - 0x94]
sub eax, 0x30c21e8
je 0x408fee
jmp 0x4088fb
mov eax, dword [ebp - 0x94]
sub eax, 0x318b2fb
je 0x408bad
jmp 0x408911
mov eax, dword [ebp - 0x94]
sub eax, 0x12569201
je 0x4097d5
jmp 0x408927
mov eax, dword [ebp - 0x94]
sub eax, 0x16b52655
je 0x40985a
jmp 0x40893d
mov eax, dword [ebp - 0x94]
sub eax, 0x196dc5c2
je 0x409656
jmp 0x408953
mov eax, dword [ebp - 0x94]
sub eax, 0x1d6f96b0
je 0x4093bc
jmp 0x408969
mov eax, dword [ebp - 0x94]
sub eax, 0x278ed896
je 0x408d3b
jmp 0x40897f
mov eax, dword [ebp - 0x94]
sub eax, 0x27dc76ef
je 0x409cd4
jmp 0x408995
mov eax, dword [ebp - 0x94]
sub eax, 0x286e40ec
je 0x4090a8
jmp 0x4089ab
mov eax, dword [ebp - 0x94]
sub eax, 0x31ee8709
je 0x409bd6
jmp 0x4089c1
mov eax, dword [ebp - 0x94]
sub eax, 0x353c39d2
je 0x409439
jmp 0x4089d7
mov eax, dword [ebp - 0x94]
sub eax, 0x38099bd9
je 0x409ced
jmp 0x4089ed
mov eax, dword [ebp - 0x94]
sub eax, 0x399fc46b
je 0x4098f5
jmp 0x408a03
mov eax, dword [ebp - 0x94]
sub eax, 0x3a67d274
je 0x4091d9
jmp 0x408a19
mov eax, dword [ebp - 0x94]
sub eax, 0x49635458
je 0x40916b
jmp 0x408a2f
mov eax, dword [ebp - 0x94]
sub eax, 0x51f5a686
je 0x408fd0
jmp 0x408a45
mov eax, dword [ebp - 0x94]
sub eax, 0x5947c92a
je 0x4093cb
jmp 0x408a5b
mov eax, dword [ebp - 0x94]
sub eax, 0x59adc5e6
je 0x408d2c
jmp 0x408a71
mov eax, dword [ebp - 0x94]
sub eax, 0x62006901
je 0x409c45
jmp 0x408a87
mov eax, dword [ebp - 0x94]
sub eax, 0x62aa4848
je 0x408b7e
jmp 0x408a9d
mov eax, dword [ebp - 0x94]
sub eax, 0x6b4ccba6
je 0x408f62
jmp 0x408ab3
mov eax, dword [ebp - 0x94]
sub eax, 0x6c008a50
je 0x409b22
jmp 0x408ac9
mov eax, dword [ebp - 0x94]
sub eax, 0x6e7d27d7
je 0x409273
jmp 0x408adf
mov eax, dword [ebp - 0x94]
sub eax, 0x6f931fc1
je 0x409cb3
jmp 0x408af5
mov eax, dword [ebp - 0x94]
sub eax, 0x70107554
je 0x4099f2
mov al, byte [ebp - 0x86]
mov cl, byte [ebp - 0x85]
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xeaca6b28
mov ecx, 0x318b2fb
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
push eax
mov eax, esp
mov dword [ebp - 0x84], eax
push eax
mov eax, esp
mov dword [ebp - 0x80], eax
sub esp, 0xc
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
sub esp, 0x104
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 [0x433594]
mov ecx, dword [0x433590]
mov edx, eax
sub edx, 0x71d34ef2
sub edx, 1
add edx, 0x71d34ef2
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, 0xeaca6b28
mov ecx, 0xb3ab30fc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0xa3efda96
jmp 0x409d08
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
add edx, 0xa698cd9f
sub edx, 1
sub edx, 0xa698cd9f
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, 0xb5762fd4
mov ecx, 0x9e714fe8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
push eax
mov eax, esp
mov dword [ebp - 0x5c], eax
push eax
mov eax, esp
mov dword [ebp - 0x58], eax
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
mov edx, eax
sub edx, 0x821b7d58
sub edx, 1
add edx, 0x821b7d58
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, 0xb5762fd4
mov ecx, 0x59adc5e6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x278ed896
jmp 0x409d08
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
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, 0x6c008a50
mov ecx, 0xd4e2e104
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov ecx, dword [ebp - 0x90]
push eax
mov eax, esp
mov dword [ebp - 0x50], eax
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x80]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.0041cd00
add esp, 0xc
mov eax, dword [ebp - 0x84]
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 - 0x78]
mov dword [eax], ecx
mov eax, dword [ebp - 0x78]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x45], al
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
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, 0x6c008a50
mov ecx, 0x9efd21e5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dl, byte [ebp - 0x45]
mov eax, 0xff58c038
mov ecx, 0xca0481c4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0xfa162c0d
jmp 0x409d08
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x80]
mov edx, dword [eax]
mov eax, dword [ebp - 0x7c]
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 - 0x7c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x8c], 0x7380f2e6
jmp 0x409d08
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x78]
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 - 0x70]
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 - 0x6c]
mov dword [eax], ecx
mov edx, dword [ebp - 0x6c]
mov esi, 0xffffffff
mov eax, 0x6b4ccba6
mov ecx, 0x932d06a2
cmp dword [edx], esi
cmove eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0xfa162c0d
jmp 0x409d08
mov eax, dword [ebp - 0x6c]
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 - 0x68]
mov dword [eax], ecx
mov dword [ebp - 0x8c], 0x8a963c09
jmp 0x409d08
mov eax, dword [ebp - 0x68]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x39], al
mov dword [ebp - 0x8c], 0x51f5a686
jmp 0x409d08
mov dl, byte [ebp - 0x39]
mov eax, 0x30c21e8
mov ecx, 0x8e9a3238
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x8c], 0xf1088f7f
jmp 0x409d08
mov eax, dword [ebp - 0x38]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x8c], 0xf75980ba
jmp 0x409d08
mov dword [ebp - 0x8c], 0xfa162c0d
jmp 0x409d08
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
add edx, 0x880b5f62
sub edx, 1
sub edx, 0x880b5f62
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, 0x83941ce4
mov ecx, 0x286e40ec
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x68]
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 - 0x64]
mov dword [eax], ecx
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
mov edx, eax
sub edx, 0xd3fa21b5
sub edx, 1
add edx, 0xd3fa21b5
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, 0x83941ce4
mov ecx, 0xc5daf192
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x72eac4f0
jmp 0x409d08
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
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, 0x31ee8709
mov ecx, 0x3a67d274
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x34]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x58]
mov word [eax], 0
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
sub edx, 0x4cc64833
sub edx, 1
add edx, 0x4cc64833
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, 0x31ee8709
mov ecx, 0x6e7d27d7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x91d70325
jmp 0x409d08
mov eax, dword [ebp - 0x58]
movzx eax, word [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
add eax, 4
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x8c], 0x85033d71
jmp 0x409d08
mov eax, dword [ebp - 0x28]
add eax, 2
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x8c], 0xecd6a083
jmp 0x409d08
mov eax, dword [ebp - 0x24]
movzx esi, word [eax]
mov edx, dword [ebp - 0x2c]
mov eax, 0xde5dc369
mov ecx, 0x893b475c
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
mov edx, eax
sub edx, 0x9eb8dd3f
sub edx, 1
add edx, 0x9eb8dd3f
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, 0xfa33f7ad
mov ecx, 0x8f56b2fe
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
add eax, 0x998659a2
add eax, 0x18
sub eax, 0x998659a2
mov dword [ebp - 0x20], eax
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
add edx, 0x96eb94bf
sub edx, 1
sub edx, 0x96eb94bf
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, 0xfa33f7ad
mov ecx, 0x1d6f96b0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x5947c92a
jmp 0x409d08
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
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, 0xe1a886e0
mov ecx, 0x353c39d2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
movzx edx, word [eax + 0x14]
mov eax, dword [ebp - 0x20]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x1c], eax
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
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, 0xe1a886e0
mov ecx, 0xb4961c43
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x8c26549a
jmp 0x409d08
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x58]
movzx eax, word [eax]
imul edx, eax, 0x28
xor eax, eax
sub eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42b961
call fcn.00420600
add esp, 8
mov edx, eax
mov eax, 0xcb8d9c50
mov ecx, 0xcd119cd0
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
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, 0x62006901
mov ecx, 0x9629e9e5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x50]
mov dword [eax], 0
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x74]
mov edx, dword [eax]
mov eax, dword [ebp - 0x54]
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 - 0x50]
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 - 0x4c]
mov byte [eax], cl
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x54]
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0xc]
sub eax, 0xa177690e
add eax, ecx
add eax, 0xa177690e
mov dword [ebp - 0x18], eax
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
sub edx, 0xda70f06f
sub edx, 1
add edx, 0xda70f06f
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, 0x62006901
mov ecx, 0x196dc5c2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x90c32153
jmp 0x409d08
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x8c], 0x7415c259
jmp 0x409d08
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
mov edx, eax
add edx, 0xdc1e398f
sub edx, 1
sub edx, 0xdc1e398f
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, 0x6f931fc1
mov ecx, 0x70326037
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x7a7a9410
jmp 0x409d08
mov eax, dword [ebp - 0x58]
mov ax, word [eax]
sub ax, 0xbeea
add ax, 1
add ax, 0xbeea
mov word [ebp - 0xe], ax
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
sub edx, 0x87c4c2cb
sub edx, 1
add edx, 0x87c4c2cb
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, 0xf651a292
mov ecx, 0xca64f5e7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x399fc46b
jmp 0x409d08
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
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, 0x27dc76ef
mov ecx, 0x8b90ea83
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov eax, dword [ebp - 0x58]
mov cx, word [ebp - 0xe]
mov word [eax], cx
mov ecx, dword [0x433594]
mov eax, dword [0x433590]
mov edx, ecx
add edx, 0x81e26f66
sub edx, 1
sub edx, 0x81e26f66
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, 0x27dc76ef
mov ecx, 0xeed913d3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0x70107554
jmp 0x409d08
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x8c], 0xa8c17cd6
jmp 0x409d08
mov eax, dword [0x433594]
mov ecx, dword [0x433590]
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, 0x38099bd9
mov ecx, 0x9a7d00ae
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
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 [0x433594]
mov ecx, dword [0x433590]
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, 0x38099bd9
mov ecx, 0x9db41b99
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x8c], eax
jmp 0x409d08
mov dword [ebp - 0x8c], 0xa27e8ad9
jmp 0x409d08
mov dword [ebp - 0x8c], 0xfa162c0d
jmp 0x409d08
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0041bfe0
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov dword [ebp - 0x8c], 0x318b2fb
jmp 0x409d08
mov dword [ebp - 0x8c], 0x9e714fe8
jmp 0x409d08
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x80]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.0041cd00
add esp, 0xc
mov eax, dword [ebp - 0x84]
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 - 0x78]
mov dword [eax], ecx
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x8c], 0xd4e2e104
jmp 0x409d08
mov eax, dword [ebp - 0x68]
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 - 0x64]
mov dword [eax], ecx
mov dword [ebp - 0x8c], 0x286e40ec
jmp 0x409d08
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x34]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x58]
mov word [eax], 0
mov dword [ebp - 0x8c], 0x3a67d274
jmp 0x409d08
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x8c], 0x8f56b2fe
jmp 0x409d08
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x8c], 0x353c39d2
jmp 0x409d08
mov eax, dword [ebp - 0x50]
mov dword [eax], 0
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x74]
mov edx, dword [eax]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub edx, 0x4a58cd7d
add edx, eax
add edx, 0x4a58cd7d
mov eax, dword [ebp - 0x50]
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 - 0x4c]
mov byte [eax], cl
mov eax, dword [ebp - 0x74]
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x8c], 0x9629e9e5
jmp 0x409d08
mov dword [ebp - 0x8c], 0x70326037
jmp 0x409d08
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x8c], 0x16b52655
jmp 0x409d08
mov eax, dword [ebp - 0x58]
mov cx, word [ebp - 0xe]
mov word [eax], cx
mov dword [ebp - 0x8c], 0x8b90ea83
jmp 0x409d08
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 - 0x8c], 0x9a7d00ae
jmp 0x40856f