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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa0
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x436080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
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 - 0x9e], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x9d], al
mov dword [ebp - 0xa4], 0xd562d4e8
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xac], eax
sub eax, 0x8044f5ef
je 0x40736d
jmp 0x405b3c
mov eax, dword [ebp - 0xac]
sub eax, 0x85b35867
je 0x406484
jmp 0x405b52
mov eax, dword [ebp - 0xac]
sub eax, 0x8a56925c
je 0x4070f0
jmp 0x405b68
mov eax, dword [ebp - 0xac]
sub eax, 0x8ce22095
je 0x40615e
jmp 0x405b7e
mov eax, dword [ebp - 0xac]
sub eax, 0x9359194c
je 0x40636e
jmp 0x405b94
mov eax, dword [ebp - 0xac]
sub eax, 0x94f77f4b
je 0x406f5a
jmp 0x405baa
mov eax, dword [ebp - 0xac]
sub eax, 0x9f523137
je 0x406a59
jmp 0x405bc0
mov eax, dword [ebp - 0xac]
sub eax, 0xa6c55b6d
je 0x40680d
jmp 0x405bd6
mov eax, dword [ebp - 0xac]
sub eax, 0xaa2b05b3
je 0x406fb0
jmp 0x405bec
mov eax, dword [ebp - 0xac]
sub eax, 0xac2cce54
je 0x406f7d
jmp 0x405c02
mov eax, dword [ebp - 0xac]
sub eax, 0xb19a99a6
je 0x406b9e
jmp 0x405c18
mov eax, dword [ebp - 0xac]
sub eax, 0xb52c8348
je 0x406fd6
jmp 0x405c2e
mov eax, dword [ebp - 0xac]
sub eax, 0xb64d6f92
je 0x406d7d
jmp 0x405c44
mov eax, dword [ebp - 0xac]
sub eax, 0xb9aba7a5
je 0x40728d
jmp 0x405c5a
mov eax, dword [ebp - 0xac]
sub eax, 0xba087d1f
je 0x406475
jmp 0x405c70
mov eax, dword [ebp - 0xac]
sub eax, 0xba960097
je 0x407008
jmp 0x405c86
mov eax, dword [ebp - 0xac]
sub eax, 0xbab7e290
je 0x406deb
jmp 0x405c9c
mov eax, dword [ebp - 0xac]
sub eax, 0xbd22bd45
je 0x406a78
jmp 0x405cb2
mov eax, dword [ebp - 0xac]
sub eax, 0xc9e67c49
je 0x406a9b
jmp 0x405cc8
mov eax, dword [ebp - 0xac]
sub eax, 0xca492051
je 0x40688a
jmp 0x405cde
mov eax, dword [ebp - 0xac]
sub eax, 0xcbd7a5d2
je 0x4067b7
jmp 0x405cf4
mov eax, dword [ebp - 0xac]
sub eax, 0xcf3512b0
je 0x406f96
jmp 0x405d0a
mov eax, dword [ebp - 0xac]
sub eax, 0xd3a1617a
je 0x4067a8
jmp 0x405d20
mov eax, dword [ebp - 0xac]
sub eax, 0xd562d4e8
je 0x40612f
jmp 0x405d36
mov eax, dword [ebp - 0xac]
sub eax, 0xd6a58089
je 0x4065bc
jmp 0x405d4c
mov eax, dword [ebp - 0xac]
sub eax, 0xd6addf16
je 0x4069ba
jmp 0x405d62
mov eax, dword [ebp - 0xac]
sub eax, 0xde21ea7a
je 0x406350
jmp 0x405d78
mov eax, dword [ebp - 0xac]
sub eax, 0xe829f3a8
je 0x4071d8
jmp 0x405d8e
mov eax, dword [ebp - 0xac]
sub eax, 0xeacb4398
je 0x4063c6
jmp 0x405da4
mov eax, dword [ebp - 0xac]
sub eax, 0xf3218400
je 0x40730a
jmp 0x405dba
mov eax, dword [ebp - 0xac]
sub eax, 0xf3f44004
je 0x40707e
jmp 0x405dd0
mov eax, dword [ebp - 0xac]
sub eax, 0xfa3d455e
je 0x407260
jmp 0x405de6
mov eax, dword [ebp - 0xac]
sub eax, 0xfbd124c7
je 0x406ad9
jmp 0x405dfc
mov eax, dword [ebp - 0xac]
sub eax, 0xfc4fccd4
je 0x407152
jmp 0x405e12
mov eax, dword [ebp - 0xac]
sub eax, 0xff7241b4
je 0x406d6e
jmp 0x405e28
mov eax, dword [ebp - 0xac]
sub eax, 0x4da0588
je 0x4062a8
jmp 0x405e3e
mov eax, dword [ebp - 0xac]
sub eax, 0x79e7230
je 0x406699
jmp 0x405e54
mov eax, dword [ebp - 0xac]
sub eax, 0x947df63
je 0x406b16
jmp 0x405e6a
mov eax, dword [ebp - 0xac]
sub eax, 0xbe3b7b5
je 0x407201
jmp 0x405e80
mov eax, dword [ebp - 0xac]
sub eax, 0x11aad906
je 0x40681c
jmp 0x405e96
mov eax, dword [ebp - 0xac]
sub eax, 0x11b6ccf6
je 0x4071e7
jmp 0x405eac
mov eax, dword [ebp - 0xac]
sub eax, 0x125c41ce
je 0x406c38
jmp 0x405ec2
mov eax, dword [ebp - 0xac]
sub eax, 0x1280509d
je 0x4070e1
jmp 0x405ed8
mov eax, dword [ebp - 0xac]
sub eax, 0x1467adcf
je 0x406749
jmp 0x405eee
mov eax, dword [ebp - 0xac]
sub eax, 0x163b149d
je 0x406ccc
jmp 0x405f04
mov eax, dword [ebp - 0xac]
sub eax, 0x180901e9
je 0x406ab5
jmp 0x405f1a
mov eax, dword [ebp - 0xac]
sub eax, 0x191649ef
je 0x4067ef
jmp 0x405f30
mov eax, dword [ebp - 0xac]
sub eax, 0x1df40bfc
je 0x406a4a
jmp 0x405f46
mov eax, dword [ebp - 0xac]
sub eax, 0x24e079a1
je 0x4064e5
jmp 0x405f5c
mov eax, dword [ebp - 0xac]
sub eax, 0x270622e0
je 0x406c56
jmp 0x405f72
mov eax, dword [ebp - 0xac]
sub eax, 0x2e3b0287
je 0x40695a
jmp 0x405f88
mov eax, dword [ebp - 0xac]
sub eax, 0x3010acd0
je 0x4062f1
jmp 0x405f9e
mov eax, dword [ebp - 0xac]
sub eax, 0x33397c10
je 0x406650
jmp 0x405fb4
mov eax, dword [ebp - 0xac]
sub eax, 0x37ce231b
je 0x406f41
jmp 0x405fca
mov eax, dword [ebp - 0xac]
sub eax, 0x3cb21617
je 0x4065da
jmp 0x405fe0
mov eax, dword [ebp - 0xac]
sub eax, 0x3f28b183
je 0x406b4d
jmp 0x405ff6
mov eax, dword [ebp - 0xac]
sub eax, 0x42792303
je 0x4066a8
jmp 0x40600c
mov eax, dword [ebp - 0xac]
sub eax, 0x4865ee2b
je 0x407102
jmp 0x406022
mov eax, dword [ebp - 0xac]
sub eax, 0x532daae7
je 0x406e59
jmp 0x406038
mov eax, dword [ebp - 0xac]
sub eax, 0x563b22f3
je 0x4070cf
jmp 0x40604e
mov eax, dword [ebp - 0xac]
sub eax, 0x56d125da
je 0x406f23
jmp 0x406064
mov eax, dword [ebp - 0xac]
sub eax, 0x5b8da69d
je 0x4061cd
jmp 0x40607a
mov eax, dword [ebp - 0xac]
sub eax, 0x633a2626
je 0x40637d
jmp 0x406090
mov eax, dword [ebp - 0xac]
sub eax, 0x6598206d
je 0x4072b5
jmp 0x4060a6
mov eax, dword [ebp - 0xac]
sub eax, 0x6e0e5b89
je 0x4061dc
mov al, byte [ebp - 0x9e]
mov cl, byte [ebp - 0x9d]
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x1280509d
mov ecx, 0x8ce22095
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
push eax
mov eax, esp
mov dword [ebp - 0x9c], eax
push eax
mov eax, esp
mov dword [ebp - 0x98], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x94], eax
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
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, 0x1280509d
mov ecx, 0x5b8da69d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0x6e0e5b89
jmp 0x407377
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
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, 0x8a56925c
mov ecx, 0x3010acd0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov eax, dword [ebp - 0x60]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x59], al
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
mov edx, eax
add edx, 0x3cd9a549
sub edx, 1
sub edx, 0x3cd9a549
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, 0x8a56925c
mov ecx, 0xde21ea7a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dl, byte [ebp - 0x59]
mov eax, 0x9359194c
mov ecx, 0x633a2626
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0xba960097
jmp 0x407377
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
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, 0x4865ee2b
mov ecx, 0xeacb4398
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x98]
mov edx, dword [eax]
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 ecx, dword [0x437574]
mov eax, dword [0x437570]
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, 0x4865ee2b
mov ecx, 0xba087d1f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0x85b35867
jmp 0x407377
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0xa4], 0x726827c2
jmp 0x407377
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x58]
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 ecx, eax
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov ecx, 0xffffffff
cmp dword [eax], ecx
sete al
and al, 1
mov byte [ebp - 0x51], al
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
mov edx, eax
sub edx, 0x2429441a
sub edx, 1
add edx, 0x2429441a
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, 0xfc4fccd4
mov ecx, 0xd6a58089
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dl, byte [ebp - 0x51]
mov eax, 0x42792303
mov ecx, 0x3cb21617
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
sub edx, 0x552ac9e9
sub edx, 1
add edx, 0x552ac9e9
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, 0xe829f3a8
mov ecx, 0x33397c10
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
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, 0xe829f3a8
mov ecx, 0x79e7230
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0xba960097
jmp 0x407377
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 - 0x50], eax
mov dword [ebp - 0xa4], 0x7b8d4b12
jmp 0x407377
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x50]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x49], al
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
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, 0x11b6ccf6
mov ecx, 0xd3a1617a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0xcbd7a5d2
jmp 0x407377
mov dl, byte [ebp - 0x49]
mov eax, 0x7386a9bd
mov ecx, 0x11aad906
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa4], 0xa6c55b6d
jmp 0x407377
mov dword [ebp - 0xa4], 0xba960097
jmp 0x407377
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
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, 0xbe3b7b5
mov ecx, 0xca492051
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
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 - 0x44], eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
add edx, 0x41c21257
sub edx, 1
sub edx, 0x41c21257
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, 0xbe3b7b5
mov ecx, 0x2e3b0287
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0x7a15c3a7
jmp 0x407377
mov eax, dword [ebp - 0x40]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x3c], eax
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
add edx, 0x2276bb89
sub edx, 1
sub edx, 0x2276bb89
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, 0xfa3d455e
mov ecx, 0x1df40bfc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0x9f523137
jmp 0x407377
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x3c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x70]
mov word [eax], 0
mov dword [ebp - 0xa4], 0xbd22bd45
jmp 0x407377
mov eax, dword [ebp - 0x70]
movzx eax, word [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
add eax, 4
mov dword [ebp - 0x34], eax
mov dword [ebp - 0xa4], 0xc9e67c49
jmp 0x407377
mov eax, dword [ebp - 0x34]
mov ax, word [eax + 2]
mov word [ebp - 0x2e], ax
mov dword [ebp - 0xa4], 0x180901e9
jmp 0x407377
mov ax, word [ebp - 0x2e]
movzx esi, ax
mov edx, dword [ebp - 0x38]
mov eax, 0xcf3512b0
mov ecx, 0xfbd124c7
cmp edx, esi
cmovl eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
xor ecx, ecx
sub ecx, 0x18
sub eax, ecx
mov ecx, dword [ebp - 0x74]
mov ecx, dword [ecx]
movzx ecx, word [ecx + 0x14]
sub eax, 0xab6b0734
add eax, ecx
add eax, 0xab6b0734
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x70]
mov ax, word [eax]
mov word [ebp - 0x26], ax
mov dword [ebp - 0xa4], 0x947df63
jmp 0x407377
mov ax, word [ebp - 0x26]
movzx eax, ax
imul edx, eax, 0x28
mov ecx, dword [ebp - 0x2c]
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 eax, dword [eax]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xa4], 0x3f28b183
jmp 0x407377
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
mov edx, eax
add edx, 0x357b0798
sub edx, 1
sub edx, 0x357b0798
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, 0xb9aba7a5
mov ecx, 0xb19a99a6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov ecx, dword [ebp - 0x24]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42f54b
call fcn.00423c30
add esp, 8
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x1e], al
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
sub edx, 0xfa5fc989
sub edx, 1
add edx, 0xfa5fc989
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, 0xb9aba7a5
mov ecx, 0x125c41ce
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dl, byte [ebp - 0x1e]
mov eax, 0x270622e0
mov ecx, 0x7164e836
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
add edx, 0xac563324
sub edx, 1
sub edx, 0xac563324
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, 0x6598206d
mov ecx, 0x163b149d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
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 esi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
sub edx, eax
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 al
and al, 1
mov byte [ebp - 0x1d], al
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
mov edx, eax
sub edx, 0x9f13fd4e
sub edx, 1
add edx, 0x9f13fd4e
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, 0x6598206d
mov ecx, 0xff7241b4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0xb64d6f92
jmp 0x407377
mov eax, dword [ebp - 0x64]
mov cl, byte [ebp - 0x1d]
mov byte [eax], cl
mov eax, dword [ebp - 0x8c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, edx
add eax, ecx
xor edx, edx
sub edx, eax
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub ecx, 0x4108499e
add ecx, eax
add ecx, 0x4108499e
mov eax, dword [ebp - 0x6c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00420490
add esp, 0xc
mov dword [ebp - 0xa4], 0xbab7e290
jmp 0x407377
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
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, 0xf3218400
mov ecx, 0x532daae7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
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 edi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
xor esi, esi
sub esi, edi
add eax, esi
xor esi, esi
sub esi, eax
mov eax, dword [ebp - 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 ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
sub edx, 0x7f1ff9d1
sub edx, 1
add edx, 0x7f1ff9d1
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, 0xf3218400
mov ecx, 0x56d125da
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov dword [ebp - 0xa4], 0x7164e836
jmp 0x407377
mov eax, dword [ebp - 0x70]
mov ax, word [eax]
mov word [ebp - 0x1c], ax
mov dword [ebp - 0xa4], 0x94f77f4b
jmp 0x407377
mov ax, word [ebp - 0x1c]
add ax, 0x69ef
add ax, 1
sub ax, 0x69ef
mov word [ebp - 0x1a], ax
mov dword [ebp - 0xa4], 0xac2cce54
jmp 0x407377
mov eax, dword [ebp - 0x70]
mov cx, word [ebp - 0x1a]
mov word [eax], cx
mov dword [ebp - 0xa4], 0xbd22bd45
jmp 0x407377
mov eax, dword [ebp - 0x84]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xa4], 0xaa2b05b3
jmp 0x407377
mov eax, dword [ebp - 0x18]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0xa4], 0xb52c8348
jmp 0x407377
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x98]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0xa4], 0xba960097
jmp 0x407377
mov ecx, dword [0x437574]
mov eax, dword [0x437570]
mov edx, ecx
sub edx, 0x390bd262
sub edx, 1
add edx, 0x390bd262
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, 0x8044f5ef
mov ecx, 0xf3f44004
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov eax, dword [0x437574]
mov ecx, dword [0x437570]
mov edx, eax
add edx, 0xa6a715b4
sub edx, 1
sub edx, 0xa6a715b4
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, 0x8044f5ef
mov ecx, 0x563b22f3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0xa4], eax
jmp 0x407377
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041f610
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0xa4], 0x8ce22095
jmp 0x407377
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xa4], 0x3010acd0
jmp 0x407377
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x98]
mov edx, dword [eax]
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 dword [ebp - 0xa4], 0xeacb4398
jmp 0x407377
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x58]
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 ecx, eax
mov eax, dword [ebp - 0x84]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0xa4], 0x24e079a1
jmp 0x407377
mov dword [ebp - 0xa4], 0x33397c10
jmp 0x407377
mov eax, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x50]
mov dword [eax], ecx
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0xa4], 0x1467adcf
jmp 0x407377
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 [ebp - 0x78]
mov dword [ebp - 0xa4], 0xca492051
jmp 0x407377
mov eax, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xa4], 0xd6addf16
jmp 0x407377
mov ecx, dword [ebp - 0x24]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x42f54b
call fcn.00423c30
add esp, 8
mov dword [ebp - 0xa4], 0xb19a99a6
jmp 0x407377
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 esi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
sub edx, eax
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]
mov dword [ebp - 0xa4], 0x163b149d
jmp 0x407377
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, 0x47a34327
add esi, eax
sub esi, 0x47a34327
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 - 0xa4], 0x532daae7
jmp 0x407377
mov dword [ebp - 0xa4], 0xf3f44004
jmp 0x405b20