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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x9c
mov eax, dword [ebp + 8]
mov dword [ebp - 0xa0], eax
mov eax, dword [0x43d080]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x9c], 0x7e31eee
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xa4], eax
sub eax, 0x82b93ab4
je 0x40da3d
jmp 0x40c954
mov eax, dword [ebp - 0xa4]
sub eax, 0x8b86771c
je 0x40e27e
jmp 0x40c96a
mov eax, dword [ebp - 0xa4]
sub eax, 0x8d4e8643
je 0x40d7f1
jmp 0x40c980
mov eax, dword [ebp - 0xa4]
sub eax, 0x8d5e449a
je 0x40dae5
jmp 0x40c996
mov eax, dword [ebp - 0xa4]
sub eax, 0x8d9717c4
je 0x40e206
jmp 0x40c9ac
mov eax, dword [ebp - 0xa4]
sub eax, 0x90204151
je 0x40dda2
jmp 0x40c9c2
mov eax, dword [ebp - 0xa4]
sub eax, 0x95a47bab
je 0x40e28d
jmp 0x40c9d8
mov eax, dword [ebp - 0xa4]
sub eax, 0x9662718f
je 0x40d181
jmp 0x40c9ee
mov eax, dword [ebp - 0xa4]
sub eax, 0x99e7d7d4
je 0x40e130
jmp 0x40ca04
mov eax, dword [ebp - 0xa4]
sub eax, 0x9a7cabe9
je 0x40e04d
jmp 0x40ca1a
mov eax, dword [ebp - 0xa4]
sub eax, 0x9b590680
je 0x40e464
jmp 0x40ca30
mov eax, dword [ebp - 0xa4]
sub eax, 0x9c14dfb9
je 0x40d447
jmp 0x40ca46
mov eax, dword [ebp - 0xa4]
sub eax, 0x9d914003
je 0x40d967
jmp 0x40ca5c
mov eax, dword [ebp - 0xa4]
sub eax, 0x9e521489
je 0x40d301
jmp 0x40ca72
mov eax, dword [ebp - 0xa4]
sub eax, 0x9e76794f
je 0x40e390
jmp 0x40ca88
mov eax, dword [ebp - 0xa4]
sub eax, 0xa26fc0e5
je 0x40d800
jmp 0x40ca9e
mov eax, dword [ebp - 0xa4]
sub eax, 0xa41a2dfe
je 0x40e3a2
jmp 0x40cab4
mov eax, dword [ebp - 0xa4]
sub eax, 0xa4e96327
je 0x40db25
jmp 0x40caca
mov eax, dword [ebp - 0xa4]
sub eax, 0xa62c4aa3
je 0x40d9d0
jmp 0x40cae0
mov eax, dword [ebp - 0xa4]
sub eax, 0xa72c06fe
je 0x40e2f9
jmp 0x40caf6
mov eax, dword [ebp - 0xa4]
sub eax, 0xac33373e
je 0x40d26d
jmp 0x40cb0c
mov eax, dword [ebp - 0xa4]
sub eax, 0xaca32079
je 0x40e357
jmp 0x40cb22
mov eax, dword [ebp - 0xa4]
sub eax, 0xadd46216
je 0x40d465
jmp 0x40cb38
mov eax, dword [ebp - 0xa4]
sub eax, 0xae92c234
je 0x40d91e
jmp 0x40cb4e
mov eax, dword [ebp - 0xa4]
sub eax, 0xb55ea812
je 0x40d377
jmp 0x40cb64
mov eax, dword [ebp - 0xa4]
sub eax, 0xb83020df
je 0x40dbda
jmp 0x40cb7a
mov eax, dword [ebp - 0xa4]
sub eax, 0xba690bb4
je 0x40d0cd
jmp 0x40cb90
mov eax, dword [ebp - 0xa4]
sub eax, 0xbb2fe6cb
je 0x40d6b9
jmp 0x40cba6
mov eax, dword [ebp - 0xa4]
sub eax, 0xbf50dc62
je 0x40e13f
jmp 0x40cbbc
mov eax, dword [ebp - 0xa4]
sub eax, 0xc2356820
je 0x40d5a7
jmp 0x40cbd2
mov eax, dword [ebp - 0xa4]
sub eax, 0xc45f4578
je 0x40e476
jmp 0x40cbe8
mov eax, dword [ebp - 0xa4]
sub eax, 0xc5624b70
je 0x40e0c4
jmp 0x40cbfe
mov eax, dword [ebp - 0xa4]
sub eax, 0xc58722c0
je 0x40d666
jmp 0x40cc14
mov eax, dword [ebp - 0xa4]
sub eax, 0xc9ead1ab
je 0x40d19f
jmp 0x40cc2a
mov eax, dword [ebp - 0xa4]
sub eax, 0xd02abc60
je 0x40d20d
jmp 0x40cc40
mov eax, dword [ebp - 0xa4]
sub eax, 0xd1da0233
je 0x40d9ec
jmp 0x40cc56
mov eax, dword [ebp - 0xa4]
sub eax, 0xd26d82ec
je 0x40dcb8
jmp 0x40cc6c
mov eax, dword [ebp - 0xa4]
sub eax, 0xd31fe2af
je 0x40dca9
jmp 0x40cc82
mov eax, dword [ebp - 0xa4]
sub eax, 0xd478095e
je 0x40df77
jmp 0x40cc98
mov eax, dword [ebp - 0xa4]
sub eax, 0xd8c5cdf3
je 0x40d54a
jmp 0x40ccae
mov eax, dword [ebp - 0xa4]
sub eax, 0xde0547dc
je 0x40dac7
jmp 0x40ccc4
mov eax, dword [ebp - 0xa4]
sub eax, 0xe143e2d8
je 0x40d9c1
jmp 0x40ccda
mov eax, dword [ebp - 0xa4]
sub eax, 0xf0f0f06e
je 0x40e455
jmp 0x40ccf0
mov eax, dword [ebp - 0xa4]
sub eax, 0xfe10a489
je 0x40ddbb
jmp 0x40cd06
mov eax, dword [ebp - 0xa4]
sub eax, 0x2064ce5
je 0x40d69b
jmp 0x40cd1c
mov eax, dword [ebp - 0xa4]
sub eax, 0x305845d
je 0x40dcf6
jmp 0x40cd32
mov eax, dword [ebp - 0xa4]
sub eax, 0x3f24ecf
je 0x40e073
jmp 0x40cd48
mov eax, dword [ebp - 0xa4]
sub eax, 0x522d7f2
je 0x40de29
jmp 0x40cd5e
mov eax, dword [ebp - 0xa4]
sub eax, 0x6a563ec
je 0x40dd93
jmp 0x40cd74
mov eax, dword [ebp - 0xa4]
sub eax, 0x7e31eee
je 0x40cff7
jmp 0x40cd8a
mov eax, dword [ebp - 0xa4]
sub eax, 0xea9d3bf
je 0x40d474
jmp 0x40cda0
mov eax, dword [ebp - 0xa4]
sub eax, 0x10167b2d
je 0x40dafc
jmp 0x40cdb6
mov eax, dword [ebp - 0xa4]
sub eax, 0x1362499a
je 0x40e1b5
jmp 0x40cdcc
mov eax, dword [ebp - 0xa4]
sub eax, 0x1456046f
je 0x40d615
jmp 0x40cde2
mov eax, dword [ebp - 0xa4]
sub eax, 0x16e2213c
je 0x40dec6
jmp 0x40cdf8
mov eax, dword [ebp - 0xa4]
sub eax, 0x1ad8b1ea
je 0x40d07c
jmp 0x40ce0e
mov eax, dword [ebp - 0xa4]
sub eax, 0x1f9e9088
je 0x40d82d
jmp 0x40ce24
mov eax, dword [ebp - 0xa4]
sub eax, 0x20321780
je 0x40df17
jmp 0x40ce3a
mov eax, dword [ebp - 0xa4]
sub eax, 0x22f9b948
je 0x40e4a8
jmp 0x40ce50
mov eax, dword [ebp - 0xa4]
sub eax, 0x2312c0c8
je 0x40e2e7
jmp 0x40ce66
mov eax, dword [ebp - 0xa4]
sub eax, 0x27cfc413
je 0x40db91
jmp 0x40ce7c
mov eax, dword [ebp - 0xa4]
sub eax, 0x2f9a4522
je 0x40e217
jmp 0x40ce92
mov eax, dword [ebp - 0xa4]
sub eax, 0x3091be16
je 0x40d287
jmp 0x40cea8
mov eax, dword [ebp - 0xa4]
sub eax, 0x336c36c0
je 0x40dfed
jmp 0x40cebe
mov eax, dword [ebp - 0xa4]
sub eax, 0x3a0d4a20
je 0x40d4e2
mov eax, dword [ebp - 0xa0]
push eax
mov ecx, esp
mov dword [ebp - 0x94], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x90], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x8c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x88], ecx
sub esp, 0x104
mov ecx, esp
mov dword [ebp - 0x84], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x80], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x7c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x78], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x74], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x70], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x6c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x68], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x64], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x9c], 0x1ad8b1ea
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0xa917c630
sub edx, 1
sub edx, 0xa917c630
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, 0x2f9a4522
mov ecx, 0xba690bb4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
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.00426cf0
add esp, 0xc
mov eax, dword [ebp - 0x98]
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 [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0x33f07fce
sub edx, 1
sub edx, 0x33f07fce
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, 0x2f9a4522
mov ecx, 0x9662718f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dl, byte [ebp - 0x59]
mov eax, 0xc9ead1ab
mov ecx, 0xac33373e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 0x8b86771c
mov ecx, 0xd02abc60
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0x3629b24b
sub edx, 1
sub edx, 0x3629b24b
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, 0x8b86771c
mov ecx, 0x5e37f3ff
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x9c], 0x3091be16
jmp 0x40e4b2
mov eax, dword [ebp - 0x94]
mov edx, dword [eax]
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x58]
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 - 0x90]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x88]
mov dword [eax], ecx
mov eax, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x8c]
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 - 0x84]
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x9c], 0x9e521489
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
sub edx, 0xdf9b9238
sub edx, 1
add edx, 0xdf9b9238
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, 0x95a47bab
mov ecx, 0xb55ea812
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x54]
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 - 0x4d], al
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
add edx, 0x1629a7eb
sub edx, 1
sub edx, 0x1629a7eb
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, 0x95a47bab
mov ecx, 0x9c14dfb9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dl, byte [ebp - 0x4d]
mov eax, 0xea9d3bf
mov ecx, 0xadd46216
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xbf50dc62
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 0x2312c0c8
mov ecx, 0x3a0d4a20
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x4c]
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 eax, dword [ebp - 0x7c]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x45], al
mov dword [ebp - 0x9c], 0xc2356820
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 0xa72c06fe
mov ecx, 0x1456046f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0x56caa488
sub edx, 1
sub edx, 0x56caa488
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, 0xa72c06fe
mov ecx, 0xc58722c0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dl, byte [ebp - 0x45]
mov eax, 0x694e8f37
mov ecx, 0x74611846
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x44]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x9c], 0xbb2fe6cb
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xbf50dc62
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xa26fc0e5
jmp 0x40e4b2
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x40]
mov dword [eax], ecx
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
add eax, 0x3c
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x9c], 0x1f9e9088
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
sub edx, 0x5df7dccf
sub edx, 1
add edx, 0x5df7dccf
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, 0xaca32079
mov ecx, 0x66d6e144
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
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, 0x9e76794f
mov ecx, 0x9d914003
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x6c]
movzx eax, word [eax]
mov dword [ebp - 0x34], eax
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
sub edx, 0x5367579d
sub edx, 1
add edx, 0x5367579d
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, 0x9e76794f
mov ecx, 0xe143e2d8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xa62c4aa3
jmp 0x40e4b2
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov ax, word [eax + 6]
mov word [ebp - 0x30], ax
mov dword [ebp - 0x9c], 0xd1da0233
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
sub edx, 0xaf98a9d9
sub edx, 1
add edx, 0xaf98a9d9
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, 0xa41a2dfe
mov ecx, 0x82b93ab4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov ax, word [ebp - 0x30]
movzx ecx, ax
mov eax, dword [ebp - 0x34]
cmp eax, ecx
setl al
and al, 1
mov byte [ebp - 0x2d], al
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
add edx, 0x1a1fffad
sub edx, 1
sub edx, 0x1a1fffad
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, 0xa41a2dfe
mov ecx, 0xde0547dc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dl, byte [ebp - 0x2d]
mov eax, 0xd478095e
mov ecx, 0x8d5e449a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x9c], 0x10167b2d
jmp 0x40e4b2
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
sub ecx, 0x18
sub eax, ecx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
mov ax, word [eax + 0x14]
mov word [ebp - 0x24], ax
mov dword [ebp - 0x9c], 0xa4e96327
jmp 0x40e4b2
mov ax, word [ebp - 0x24]
movzx eax, ax
mov ecx, dword [ebp - 0x28]
sub ecx, 0x66818051
add ecx, eax
add ecx, 0x66818051
mov eax, dword [ebp - 0x6c]
movzx eax, word [eax]
imul eax, eax, 0x28
add ecx, 0x252f9f4
add ecx, eax
sub ecx, 0x252f9f4
mov eax, dword [ebp - 0x68]
mov dword [eax], ecx
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x435e4e
call fcn.0042a5f0
add esp, 8
mov edx, eax
mov eax, 0x27cfc413
mov ecx, 0x6a563ec
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
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, 0x50b52e9d
mov ecx, 0xb83020df
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x64]
mov dword [eax], 0
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
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, 0x324148c1
add edx, eax
sub edx, 0x324148c1
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 al
and al, 1
mov byte [ebp - 0x21], al
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
sub edx, 0x92ad5058
sub edx, 1
add edx, 0x92ad5058
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, 0x50b52e9d
mov ecx, 0xd31fe2af
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xd26d82ec
jmp 0x40e4b2
mov eax, dword [ebp - 0x60]
mov cl, byte [ebp - 0x21]
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]
add eax, 0x4a0c6998
add eax, ecx
sub eax, 0x4a0c6998
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x78]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x9c], 0x305845d
jmp 0x40e4b2
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0x1c]
add ecx, 0xe05aef89
add ecx, eax
sub ecx, 0xe05aef89
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 0x20]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00426e50
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 eax, dword [eax + 0xc]
sub esi, 0x7f53c7c5
add esi, eax
add esi, 0x7f53c7c5
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 - 0x9c], 0x6a563ec
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0x90204151
jmp 0x40e4b2
mov eax, dword [ebp - 0x6c]
mov ax, word [eax]
mov word [ebp - 0x16], ax
mov dword [ebp - 0x9c], 0xfe10a489
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 0x6c3042c4
mov ecx, 0x522d7f2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov cx, word [ebp - 0x16]
sub cx, 0x9bc2
add cx, 1
add cx, 0x9bc2
mov eax, dword [ebp - 0x6c]
mov word [eax], cx
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
add edx, 0x22eb5f7
sub edx, 1
sub edx, 0x22eb5f7
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, 0x6c3042c4
mov ecx, 0x3d97b40d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0xa90933cd
sub edx, 1
sub edx, 0xa90933cd
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, 0xf0f0f06e
mov ecx, 0x20321780
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
sub edx, 0xe1979ce0
sub edx, 1
add edx, 0xe1979ce0
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, 0xf0f0f06e
mov ecx, 0x7b698fc4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
add edx, 0x5668eee3
sub edx, 1
sub edx, 0x5668eee3
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, 0x9b590680
mov ecx, 0x336c36c0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x80]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
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, 0x9b590680
mov ecx, 0x57f35f75
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 0x3f24ecf
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0xc9e56788
sub edx, 1
sub edx, 0xc9e56788
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, 0xc45f4578
mov ecx, 0xc5624b70
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [ebp - 0x10]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
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, 0xc45f4578
mov ecx, 0x99e7d7d4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xbf50dc62
jmp 0x40e4b2
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
sub edx, 0x1294d9b8
sub edx, 1
add edx, 0x1294d9b8
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, 0x22f9b948
mov ecx, 0x1362499a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
add edx, 0xd7a33510
sub edx, 1
sub edx, 0xd7a33510
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, 0x22f9b948
mov ecx, 0x8d9717c4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x9c], eax
jmp 0x40e4b2
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00426000
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
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.00426cf0
add esp, 0xc
mov eax, dword [ebp - 0x98]
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 - 0x9c], 0xba690bb4
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0xd02abc60
jmp 0x40e4b2
mov eax, dword [ebp - 0x54]
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 - 0x9c], 0xb55ea812
jmp 0x40e4b2
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x9c], 0x3a0d4a20
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0x1456046f
jmp 0x40e4b2
mov eax, dword [ebp - 0x38]
mov edx, dword [eax]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x3c]
xor eax, eax
sub eax, edx
sub ecx, eax
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
mov eax, dword [ebp - 0x6c]
mov word [eax], 0
mov dword [ebp - 0x9c], 0x66d6e144
jmp 0x40e4b2
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x9c], 0x9d914003
jmp 0x40e4b2
mov ax, word [ebp - 0x30]
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x9c], 0x82b93ab4
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0x20321780
jmp 0x40e4b2
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x9c], 0x336c36c0
jmp 0x40e4b2
mov eax, dword [ebp - 0x10]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x94]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x9c], 0xc5624b70
jmp 0x40e4b2
mov dword [ebp - 0x9c], 0x1362499a
jmp 0x40c938