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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov eax, dword [ebp + 8]
mov dword [ebp - 0x98], eax
mov eax, dword [0x43b080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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 - 0x8e], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [ebp - 0x8d], al
mov dword [ebp - 0x94], 0x183eaea2
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x9c], eax
sub eax, 0x8985b2ed
je 0x40ac63
jmp 0x40a43c
mov eax, dword [ebp - 0x9c]
sub eax, 0x8dcb8204
je 0x40ac11
jmp 0x40a452
mov eax, dword [ebp - 0x9c]
sub eax, 0x900318ac
je 0x40aeca
jmp 0x40a468
mov eax, dword [ebp - 0x9c]
sub eax, 0x90370fa7
je 0x40b937
jmp 0x40a47e
mov eax, dword [ebp - 0x9c]
sub eax, 0x9041f71d
je 0x40acb4
jmp 0x40a494
mov eax, dword [ebp - 0x9c]
sub eax, 0x93f8a1d6
je 0x40aa41
jmp 0x40a4aa
mov eax, dword [ebp - 0x9c]
sub eax, 0x99d0a8d5
je 0x40afc8
jmp 0x40a4c0
mov eax, dword [ebp - 0x9c]
sub eax, 0x9a40725e
je 0x40afe7
jmp 0x40a4d6
mov eax, dword [ebp - 0x9c]
sub eax, 0x9a47cd45
je 0x40b2a1
jmp 0x40a4ec
mov eax, dword [ebp - 0x9c]
sub eax, 0x9e7b5393
je 0x40bb7a
jmp 0x40a502
mov eax, dword [ebp - 0x9c]
sub eax, 0xa83d953b
je 0x40b2b0
jmp 0x40a518
mov eax, dword [ebp - 0x9c]
sub eax, 0xa8d77e70
je 0x40baff
jmp 0x40a52e
mov eax, dword [ebp - 0x9c]
sub eax, 0xa946b558
je 0x40ae79
jmp 0x40a544
mov eax, dword [ebp - 0x9c]
sub eax, 0xb6eeac25
je 0x40b0b0
jmp 0x40a55a
mov eax, dword [ebp - 0x9c]
sub eax, 0xb821189d
je 0x40b9ad
jmp 0x40a570
mov eax, dword [ebp - 0x9c]
sub eax, 0xc0a856ac
je 0x40ad8c
jmp 0x40a586
mov eax, dword [ebp - 0x9c]
sub eax, 0xc16748ad
je 0x40b135
jmp 0x40a59c
mov eax, dword [ebp - 0x9c]
sub eax, 0xc71f347c
je 0x40b2ee
jmp 0x40a5b2
mov eax, dword [ebp - 0x9c]
sub eax, 0xc8412442
je 0x40ab98
jmp 0x40a5c8
mov eax, dword [ebp - 0x9c]
sub eax, 0xd01de58e
je 0x40ada1
jmp 0x40a5de
mov eax, dword [ebp - 0x9c]
sub eax, 0xd0cfae22
je 0x40b476
jmp 0x40a5f4
mov eax, dword [ebp - 0x9c]
sub eax, 0xd4206932
je 0x40b5e8
jmp 0x40a60a
mov eax, dword [ebp - 0x9c]
sub eax, 0xd5b65e68
je 0x40b871
jmp 0x40a620
mov eax, dword [ebp - 0x9c]
sub eax, 0xd6286a33
je 0x40b1a3
jmp 0x40a636
mov eax, dword [ebp - 0x9c]
sub eax, 0xd852646c
je 0x40ac54
jmp 0x40a64c
mov eax, dword [ebp - 0x9c]
sub eax, 0xd9645a18
je 0x40b408
jmp 0x40a662
mov eax, dword [ebp - 0x9c]
sub eax, 0xe6cc07c0
je 0x40ad7d
jmp 0x40a678
mov eax, dword [ebp - 0x9c]
sub eax, 0xe7ef834e
je 0x40b6c6
jmp 0x40a68e
mov eax, dword [ebp - 0x9c]
sub eax, 0xee78bc6b
je 0x40b9c2
jmp 0x40a6a4
mov eax, dword [ebp - 0x9c]
sub eax, 0xf091bd69
je 0x40b6dd
jmp 0x40a6ba
mov eax, dword [ebp - 0x9c]
sub eax, 0xf1aefff1
je 0x40b3ea
jmp 0x40a6d0
mov eax, dword [ebp - 0x9c]
sub eax, 0xf53f6ae2
je 0x40b880
jmp 0x40a6e6
mov eax, dword [ebp - 0x9c]
sub eax, 0xf61b8b9d
je 0x40b8d4
jmp 0x40a6fc
mov eax, dword [ebp - 0x9c]
sub eax, 0xf9620d75
je 0x40afb9
jmp 0x40a712
mov eax, dword [ebp - 0x9c]
sub eax, 0xfc6637b0
je 0x40baea
jmp 0x40a728
mov eax, dword [ebp - 0x9c]
sub eax, 0x642c3f4
je 0x40b862
jmp 0x40a73e
mov eax, dword [ebp - 0x9c]
sub eax, 0x662062c
je 0x40b364
jmp 0x40a754
mov eax, dword [ebp - 0x9c]
sub eax, 0xffc1b86
je 0x40b521
jmp 0x40a76a
mov eax, dword [ebp - 0x9c]
sub eax, 0x11350b66
je 0x40b530
jmp 0x40a780
mov eax, dword [ebp - 0x9c]
sub eax, 0x14a11175
je 0x40ba3b
jmp 0x40a796
mov eax, dword [ebp - 0x9c]
sub eax, 0x16fe4c0d
je 0x40b126
jmp 0x40a7ac
mov eax, dword [ebp - 0x9c]
sub eax, 0x183eaea2
je 0x40a9ed
jmp 0x40a7c2
mov eax, dword [ebp - 0x9c]
sub eax, 0x1f7db7a2
je 0x40b597
jmp 0x40a7d8
mov eax, dword [ebp - 0x9c]
sub eax, 0x206ad3d5
je 0x40aed9
jmp 0x40a7ee
mov eax, dword [ebp - 0x9c]
sub eax, 0x214e611e
je 0x40b899
jmp 0x40a804
mov eax, dword [ebp - 0x9c]
sub eax, 0x2d04e820
je 0x40ba85
jmp 0x40a81a
mov eax, dword [ebp - 0x9c]
sub eax, 0x2d588b3b
je 0x40b914
jmp 0x40a830
mov eax, dword [ebp - 0x9c]
sub eax, 0x3355edf2
je 0x40b6b7
jmp 0x40a846
mov eax, dword [ebp - 0x9c]
sub eax, 0x34293c36
je 0x40b579
jmp 0x40a85c
mov eax, dword [ebp - 0x9c]
sub eax, 0x375f8995
je 0x40b8c5
jmp 0x40a872
mov eax, dword [ebp - 0x9c]
sub eax, 0x3dbf1ccf
je 0x40bb17
jmp 0x40a888
mov eax, dword [ebp - 0x9c]
sub eax, 0x434009da
je 0x40af2a
jmp 0x40a89e
mov eax, dword [ebp - 0x9c]
sub eax, 0x4697ffd0
je 0x40b949
jmp 0x40a8b4
mov eax, dword [ebp - 0x9c]
sub eax, 0x4c4aee9e
je 0x40b274
jmp 0x40a8ca
mov eax, dword [ebp - 0x9c]
sub eax, 0x500f2a0d
je 0x40ac20
jmp 0x40a8e0
mov eax, dword [ebp - 0x9c]
sub eax, 0x55171be5
je 0x40b2d5
jmp 0x40a8f6
mov eax, dword [ebp - 0x9c]
sub eax, 0x566fa323
je 0x40b265
jmp 0x40a90c
mov eax, dword [ebp - 0x9c]
sub eax, 0x5dfd9473
je 0x40ba94
jmp 0x40a922
mov eax, dword [ebp - 0x9c]
sub eax, 0x667d21aa
je 0x40b8f4
jmp 0x40a938
mov eax, dword [ebp - 0x9c]
sub eax, 0x67216082
je 0x40b753
jmp 0x40a94e
mov eax, dword [ebp - 0x9c]
sub eax, 0x6a210ded
je 0x40ab38
jmp 0x40a964
mov eax, dword [ebp - 0x9c]
sub eax, 0x6ee568bc
je 0x40ba2c
jmp 0x40a97a
mov eax, dword [ebp - 0x9c]
sub eax, 0x71791bdd
je 0x40b005
jmp 0x40a990
mov eax, dword [ebp - 0x9c]
sub eax, 0x73de4d81
je 0x40ae0b
jmp 0x40a9a6
mov eax, dword [ebp - 0x9c]
sub eax, 0x74a8d907
je 0x40b03a
mov bl, byte [ebp - 0x8e]
mov dh, byte [ebp - 0x8d]
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, 0x4697ffd0
mov ecx, 0x93f8a1d6
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov ecx, dword [ebp - 0x98]
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
push eax
mov eax, esp
mov dword [ebp - 0x88], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x84], eax
push eax
mov eax, esp
mov dword [ebp - 0x80], eax
push eax
mov eax, esp
mov dword [ebp - 0x7c], eax
sub esp, 0x104
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
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 [ebp - 0x8c]
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, eax
mov eax, dword [ebp - 0x88]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00425940
add esp, 0xc
mov eax, dword [0x43c554]
mov ecx, dword [0x43c550]
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, 0x4697ffd0
mov ecx, 0x6a210ded
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x7f839531
jmp 0x40bc23
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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, 0xb821189d
mov ecx, 0x8dcb8204
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x500f2a0d
jmp 0x40bc23
mov eax, dword [ebp - 0x50]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, eax
mov eax, dword [ebp - 0x80]
mov dword [eax], ecx
mov edx, dword [ebp - 0x80]
mov eax, 0xd852646c
mov ecx, 0x8985b2ed
cmp dword [edx], 0
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x90370fa7
jmp 0x40bc23
mov eax, dword [0x43c554]
mov ecx, dword [0x43c550]
mov edx, eax
sub edx, 0xe00ea654
sub edx, 1
add edx, 0xe00ea654
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, 0xee78bc6b
mov ecx, 0x9041f71d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
mov eax, dword [ebp - 0x84]
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 - 0x84]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x7c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x80]
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 ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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, 0xee78bc6b
mov ecx, 0xe6cc07c0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0xc0a856ac
jmp 0x40bc23
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x94], 0xd01de58e
jmp 0x40bc23
mov eax, dword [ebp - 0x4c]
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 - 0x74]
mov dword [eax], ecx
mov edx, dword [ebp - 0x74]
mov esi, 0xffffffff
mov eax, 0x206ad3d5
mov ecx, 0x73de4d81
cmp dword [edx], esi
cmove eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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, 0x6ee568bc
mov ecx, 0xa946b558
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [0x43c554]
mov ecx, dword [0x43c550]
mov edx, eax
sub edx, 0xc7fbbb00
sub edx, 1
add edx, 0xc7fbbb00
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, 0x6ee568bc
mov ecx, 0x900318ac
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x90370fa7
jmp 0x40bc23
mov eax, dword [0x43c554]
mov ecx, dword [0x43c550]
mov edx, eax
sub edx, 0xbfb34b06
sub edx, 1
add edx, 0xbfb34b06
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, 0x14a11175
mov ecx, 0x434009da
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x74]
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 - 0x48], eax
mov eax, dword [0x43c554]
mov ecx, dword [0x43c550]
mov edx, eax
sub edx, 0x50b191b7
sub edx, 1
add edx, 0x50b191b7
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, 0x14a11175
mov ecx, 0xf9620d75
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x99d0a8d5
jmp 0x40bc23
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x48]
mov dword [eax], ecx
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x94], 0x9a40725e
jmp 0x40bc23
mov edx, dword [ebp - 0x44]
mov eax, 0x71791bdd
mov ecx, 0xc16748ad
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x94], 0x7791570c
jmp 0x40bc23
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
add edx, 0xb7c944d2
sub edx, 1
sub edx, 0xb7c944d2
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, 0x2d04e820
mov ecx, 0x16fe4c0d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x90370fa7
jmp 0x40bc23
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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, 0x5dfd9473
mov ecx, 0xd6286a33
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x70]
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 - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x68]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
sub edx, 0xbd9dd92
sub edx, 1
add edx, 0xbd9dd92
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, 0x5dfd9473
mov ecx, 0x566fa323
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x4c4aee9e
jmp 0x40bc23
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov edx, dword [eax + 0x3c]
mov ecx, dword [ebp - 0x3c]
xor eax, eax
sub eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x64]
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
mov word [eax], 0
mov dword [ebp - 0x94], 0x9a47cd45
jmp 0x40bc23
mov dword [ebp - 0x94], 0xa83d953b
jmp 0x40bc23
mov eax, dword [ebp - 0x60]
movzx eax, word [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov ax, word [eax + 6]
mov word [ebp - 0x32], ax
mov dword [ebp - 0x94], 0x55171be5
jmp 0x40bc23
mov ax, word [ebp - 0x32]
movzx eax, ax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x94], 0xc71f347c
jmp 0x40bc23
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
add edx, 0x98a2e57c
sub edx, 1
sub edx, 0x98a2e57c
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, 0xfc6637b0
mov ecx, 0x662062c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x30]
cmp eax, ecx
setl al
and al, 1
mov byte [ebp - 0x29], al
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
add edx, 0xf195966a
sub edx, 1
sub edx, 0xf195966a
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, 0xfc6637b0
mov ecx, 0xf1aefff1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dl, byte [ebp - 0x29]
mov eax, 0xf61b8b9d
mov ecx, 0xd9645a18
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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, 0xa8d77e70
mov ecx, 0xd0cfae22
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
sub eax, 0xabcd86ab
add eax, 0x18
add eax, 0xabcd86ab
mov ecx, dword [ebp - 0x64]
mov ecx, dword [ecx]
movzx edx, word [ecx + 0x14]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x60]
movzx eax, word [eax]
mov dword [ebp - 0x24], eax
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
add edx, 0x9167f755
sub edx, 1
sub edx, 0x9167f755
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, 0xa8d77e70
mov ecx, 0xffc1b86
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0x11350b66
jmp 0x40bc23
mov eax, dword [ebp - 0x24]
imul edx, eax, 0x28
mov ecx, dword [ebp - 0x28]
xor eax, eax
sub eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x434903
call fcn.00429250
add esp, 8
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x1d], al
mov dword [ebp - 0x94], 0x34293c36
jmp 0x40bc23
mov dl, byte [ebp - 0x1d]
mov eax, 0x1f7db7a2
mov ecx, 0xd5b65e68
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [0x43c554]
mov ecx, dword [0x43c550]
mov edx, eax
add edx, 0x93ca4fce
sub edx, 1
sub edx, 0x93ca4fce
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, 0x3dbf1ccf
mov ecx, 0xd4206932
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x58]
mov dword [eax], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub edx, 0x3d133ee3
add edx, eax
add edx, 0x3d133ee3
mov eax, dword [ebp - 0x58]
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 - 0x54]
mov byte [eax], cl
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
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, 0x3dbf1ccf
mov ecx, 0x3355edf2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0xe7ef834e
jmp 0x40bc23
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x94], 0xf091bd69
jmp 0x40bc23
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
sub edx, 0x425cb859
sub edx, 1
add edx, 0x425cb859
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, 0x9e7b5393
mov ecx, 0x67216082
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 0x1c]
add edx, 0xa62b3734
add edx, eax
sub edx, 0xa62b3734
mov eax, dword [ebp - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
sub ecx, eax
mov eax, dword [ebp - 0x5c]
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.00425aa0
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x7c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub esi, 0xe3d2d733
add esi, eax
add esi, 0xe3d2d733
mov eax, dword [ebp - 0x58]
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 - 0x54]
mov byte [eax], cl
mov ecx, dword [0x43c554]
mov eax, dword [0x43c550]
mov edx, ecx
add edx, 0x64cee3db
sub edx, 1
sub edx, 0x64cee3db
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, 0x9e7b5393
mov ecx, 0x642c3f4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x40bc23
mov dword [ebp - 0x94], 0xd5b65e68
jmp 0x40bc23
mov dword [ebp - 0x94], 0xf53f6ae2
jmp 0x40bc23
mov eax, dword [ebp - 0x60]
mov ax, word [eax]
mov word [ebp - 0x12], ax
mov dword [ebp - 0x94], 0x214e611e
jmp 0x40bc23
mov cx, word [ebp - 0x12]
xor eax, eax
sub ax, cx
xor ecx, ecx
sub cx, 1
add ax, cx
xor ecx, ecx
sub cx, ax
mov eax, dword [ebp - 0x60]
mov word [eax], cx
mov dword [ebp - 0x94], 0x375f8995
jmp 0x40bc23
mov dword [ebp - 0x94], 0xa83d953b
jmp 0x40bc23
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x667d21aa
jmp 0x40bc23
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x2d588b3b
jmp 0x40bc23
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x90370fa7
jmp 0x40bc23
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00424c50
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x98]
push eax
mov eax, esp
push eax
mov edx, esp
mov dword [ebp - 0xa4], edx
sub esp, 0xc
mov edx, esp
mov dword [ebp - 0xa0], edx
mov dword [eax], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov ecx, dword [ebp - 0xa4]
mov edx, eax
mov eax, dword [ebp - 0xa0]
mov dword [ecx], edx
xor ecx, ecx
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0xc
call fcn.00425940
add esp, 0xc
mov dword [ebp - 0x94], 0x93f8a1d6
jmp 0x40bc23
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x94], 0xc8412442
jmp 0x40bc23
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
mov eax, dword [ebp - 0x84]
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 - 0x84]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x7c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x80]
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 dword [ebp - 0x94], 0x9041f71d
jmp 0x40bc23
mov dword [ebp - 0x94], 0xa946b558
jmp 0x40bc23
mov eax, dword [ebp - 0x74]
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 - 0x94], 0x434009da
jmp 0x40bc23
mov dword [ebp - 0x94], 0xb6eeac25
jmp 0x40bc23
mov eax, dword [ebp - 0x70]
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 - 0x6c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x68]
mov dword [eax], ecx
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x94], 0xd6286a33
jmp 0x40bc23
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x94], 0x662062c
jmp 0x40bc23
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x94], 0xd0cfae22
jmp 0x40bc23
mov eax, dword [ebp - 0x58]
mov dword [eax], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [ebp - 0x7c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
xor eax, eax
sub eax, esi
sub edx, eax
mov eax, dword [ebp - 0x58]
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 - 0x54]
mov byte [eax], cl
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x94], 0xd4206932
jmp 0x40bc23
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
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 - 0x6c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
sub ecx, 0x54bb66e5
add ecx, eax
add ecx, 0x54bb66e5
mov eax, dword [ebp - 0x5c]
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.00425aa0
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 0x7c]
mov esi, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
xor eax, eax
sub eax, edi
sub esi, eax
mov eax, dword [ebp - 0x58]
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 - 0x54]
mov byte [eax], cl
mov dword [ebp - 0x94], 0x67216082
jmp 0x40a420