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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
sub esp, 0x94
mov eax, dword [ebp + 8]
mov dword [ebp - 0x98], eax
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0x9394a8b2
sub edx, 1
sub edx, 0x9394a8b2
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], 0x2082d7b0
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x9c], eax
sub eax, 0x8403d444
je 0x402a70
jmp 0x401f53
mov eax, dword [ebp - 0x9c]
sub eax, 0x89336c38
je 0x40388e
jmp 0x401f69
mov eax, dword [ebp - 0x9c]
sub eax, 0x9611e769
je 0x402a1e
jmp 0x401f7f
mov eax, dword [ebp - 0x9c]
sub eax, 0x9a080777
je 0x4033cc
jmp 0x401f95
mov eax, dword [ebp - 0x9c]
sub eax, 0x9ab97382
je 0x402651
jmp 0x401fab
mov eax, dword [ebp - 0x9c]
sub eax, 0xa21946fa
je 0x4037aa
jmp 0x401fc1
mov eax, dword [ebp - 0x9c]
sub eax, 0xa5f70f8c
je 0x403599
jmp 0x401fd7
mov eax, dword [ebp - 0x9c]
sub eax, 0xa8d5ffa7
je 0x4030d4
jmp 0x401fed
mov eax, dword [ebp - 0x9c]
sub eax, 0xaa268940
je 0x403680
jmp 0x402003
mov eax, dword [ebp - 0x9c]
sub eax, 0xaa66f96b
je 0x4037c8
jmp 0x402019
mov eax, dword [ebp - 0x9c]
sub eax, 0xaa7d32e1
je 0x402642
jmp 0x40202f
mov eax, dword [ebp - 0x9c]
sub eax, 0xac94d2ce
je 0x40336c
jmp 0x402045
mov eax, dword [ebp - 0x9c]
sub eax, 0xb67d8d78
je 0x4029cd
jmp 0x40205b
mov eax, dword [ebp - 0x9c]
sub eax, 0xbaff66dc
je 0x402b64
jmp 0x402071
mov eax, dword [ebp - 0x9c]
sub eax, 0xbb362a8b
je 0x402eb2
jmp 0x402087
mov eax, dword [ebp - 0x9c]
sub eax, 0xbcc4718b
je 0x4033db
jmp 0x40209d
mov eax, dword [ebp - 0x9c]
sub eax, 0xc8956901
je 0x402f28
jmp 0x4020b3
mov eax, dword [ebp - 0x9c]
sub eax, 0xd3bd7818
je 0x40282b
jmp 0x4020c9
mov eax, dword [ebp - 0x9c]
sub eax, 0xde23af54
je 0x402781
jmp 0x4020df
mov eax, dword [ebp - 0x9c]
sub eax, 0xdfe3ca5c
je 0x4027d2
jmp 0x4020f5
mov eax, dword [ebp - 0x9c]
sub eax, 0xe3e3fc57
je 0x4029be
jmp 0x40210b
mov eax, dword [ebp - 0x9c]
sub eax, 0xe9939d90
je 0x403419
jmp 0x402121
mov eax, dword [ebp - 0x9c]
sub eax, 0xfc173d57
je 0x403738
jmp 0x402137
mov eax, dword [ebp - 0x9c]
sub eax, 0x172bcea
je 0x4031fa
jmp 0x40214d
mov eax, dword [ebp - 0x9c]
sub eax, 0x27d5c32
je 0x402d4d
jmp 0x402163
mov eax, dword [ebp - 0x9c]
sub eax, 0x3bbbcaa
je 0x402ac1
jmp 0x402179
mov eax, dword [ebp - 0x9c]
sub eax, 0x3fe3ac1
je 0x402d5c
jmp 0x40218f
mov eax, dword [ebp - 0x9c]
sub eax, 0x695cfbf
je 0x40374a
jmp 0x4021a5
mov eax, dword [ebp - 0x9c]
sub eax, 0x807c12a
je 0x403030
jmp 0x4021bb
mov eax, dword [ebp - 0x9c]
sub eax, 0xaaed2ec
je 0x402a3b
jmp 0x4021d1
mov eax, dword [ebp - 0x9c]
sub eax, 0xc4be394
je 0x40335d
jmp 0x4021e7
mov eax, dword [ebp - 0x9c]
sub eax, 0x157eafa2
je 0x4028b4
jmp 0x4021fd
mov eax, dword [ebp - 0x9c]
sub eax, 0x166d9e86
je 0x403400
jmp 0x402213
mov eax, dword [ebp - 0x9c]
sub eax, 0x19b1743a
je 0x402c76
jmp 0x402229
mov eax, dword [ebp - 0x9c]
sub eax, 0x1d42a4f3
je 0x403662
jmp 0x40223f
mov eax, dword [ebp - 0x9c]
sub eax, 0x1e5f799d
je 0x4036f1
jmp 0x402255
mov eax, dword [ebp - 0x9c]
sub eax, 0x2082d7b0
je 0x402588
jmp 0x40226b
mov eax, dword [ebp - 0x9c]
sub eax, 0x22d97bba
je 0x403615
jmp 0x402281
mov eax, dword [ebp - 0x9c]
sub eax, 0x22f23525
je 0x4034fd
jmp 0x402297
mov eax, dword [ebp - 0x9c]
sub eax, 0x28538b92
je 0x4028d2
jmp 0x4022ad
mov eax, dword [ebp - 0x9c]
sub eax, 0x2a1671eb
je 0x40327f
jmp 0x4022c3
mov eax, dword [ebp - 0x9c]
sub eax, 0x2d0e2097
je 0x4026fc
jmp 0x4022d9
mov eax, dword [ebp - 0x9c]
sub eax, 0x3697735f
je 0x402a59
jmp 0x4022ef
mov eax, dword [ebp - 0x9c]
sub eax, 0x37a47a39
je 0x402fab
jmp 0x402305
mov eax, dword [ebp - 0x9c]
sub eax, 0x37e9e1e0
je 0x402730
jmp 0x40231b
mov eax, dword [ebp - 0x9c]
sub eax, 0x3d361805
je 0x4030f2
jmp 0x402331
mov eax, dword [ebp - 0x9c]
sub eax, 0x3f0ac6b6
je 0x403624
jmp 0x402347
mov eax, dword [ebp - 0x9c]
sub eax, 0x436a7736
je 0x403523
jmp 0x40235d
mov eax, dword [ebp - 0x9c]
sub eax, 0x47fef715
je 0x402bad
jmp 0x402373
mov eax, dword [ebp - 0x9c]
sub eax, 0x488371e9
je 0x4027e1
jmp 0x402389
mov eax, dword [ebp - 0x9c]
sub eax, 0x4b65a160
je 0x40348f
jmp 0x40239f
mov eax, dword [ebp - 0x9c]
sub eax, 0x4dc6295f
je 0x4025dc
jmp 0x4023b5
mov eax, dword [ebp - 0x9c]
sub eax, 0x4f911a12
je 0x403653
jmp 0x4023cb
mov eax, dword [ebp - 0x9c]
sub eax, 0x50991145
je 0x40350c
jmp 0x4023e1
mov eax, dword [ebp - 0x9c]
sub eax, 0x53e6b358
je 0x402e81
jmp 0x4023f7
mov eax, dword [ebp - 0x9c]
sub eax, 0x5738da12
je 0x402fba
jmp 0x40240d
mov eax, dword [ebp - 0x9c]
sub eax, 0x577e555c
je 0x402b55
jmp 0x402423
mov eax, dword [ebp - 0x9c]
sub eax, 0x5ab9bf4b
je 0x403642
jmp 0x402439
mov eax, dword [ebp - 0x9c]
sub eax, 0x5ea5fb7e
je 0x403168
jmp 0x40244f
mov eax, dword [ebp - 0x9c]
sub eax, 0x63d32d24
je 0x402ce9
jmp 0x402465
mov eax, dword [ebp - 0x9c]
sub eax, 0x67f87734
je 0x402b46
jmp 0x40247b
mov eax, dword [ebp - 0x9c]
sub eax, 0x68d0c39e
je 0x402c67
jmp 0x402491
mov eax, dword [ebp - 0x9c]
sub eax, 0x68ec86ea
je 0x403209
jmp 0x4024a7
mov eax, dword [ebp - 0x9c]
sub eax, 0x69870c69
je 0x403778
jmp 0x4024bd
mov eax, dword [ebp - 0x9c]
sub eax, 0x6af0a8a8
je 0x402948
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, 0x4f911a12
mov ecx, 0x4dc6295f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
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
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
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, 0x4f911a12
mov ecx, 0xaa7d32e1
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x9ab97382
jmp 0x4038be
mov ecx, dword [ebp - 0x98]
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.0040c860
add esp, 0xc
mov eax, dword [ebp - 0x8c]
mov eax, dword [eax]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x94], 0x2d0e2097
jmp 0x4038be
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, 0x37e9e1e0
mov ecx, 0x488371e9
cmp dword [edx], 0
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
mov edx, eax
sub edx, 0xc38aa6d7
sub edx, 1
add edx, 0xc38aa6d7
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, 0x1d42a4f3
mov ecx, 0xde23af54
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
mov edx, eax
sub edx, 0x9a8897b2
sub edx, 1
add edx, 0x9a8897b2
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, 0x1d42a4f3
mov ecx, 0xdfe3ca5c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x5ab9bf4b
jmp 0x4038be
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 dword [ebp - 0x94], 0xd3bd7818
jmp 0x4038be
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 eax, dword [ebp - 0x78]
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 eax, dword [ebp - 0x74]
mov ecx, 0xffffffff
cmp dword [eax], ecx
sete al
and al, 1
mov byte [ebp - 0x4a], al
mov dword [ebp - 0x94], 0x157eafa2
jmp 0x4038be
mov dl, byte [ebp - 0x4a]
mov eax, 0xb67d8d78
mov ecx, 0x28538b92
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
sub edx, 0xd0a17b3a
sub edx, 1
add edx, 0xd0a17b3a
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, 0x7b6e66fc
mov ecx, 0x6af0a8a8
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x5ab9bf4b
jmp 0x4038be
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 ecx, eax
mov eax, dword [ebp - 0x70]
mov dword [eax], ecx
mov dword [ebp - 0x94], 0x9611e769
jmp 0x4038be
mov eax, dword [ebp - 0x70]
cmp dword [eax], 0
setne al
and al, 1
mov byte [ebp - 0x49], al
mov dword [ebp - 0x94], 0xaaed2ec
jmp 0x4038be
mov dl, byte [ebp - 0x49]
mov eax, 0x3697735f
mov ecx, 0xbaff66dc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x94], 0x8403d444
jmp 0x4038be
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
mov edx, eax
sub edx, 0x5a5bc235
sub edx, 1
add edx, 0x5a5bc235
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, 0xaa268940
mov ecx, 0x3bbbcaa
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0x5d3eb787
sub edx, 1
sub edx, 0x5d3eb787
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, 0xaa268940
mov ecx, 0x67f87734
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x577e555c
jmp 0x4038be
mov dword [ebp - 0x94], 0x5ab9bf4b
jmp 0x4038be
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
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, 0x712c9185
mov ecx, 0x47fef715
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
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 ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0x41c254c4
sub edx, 1
sub edx, 0x41c254c4
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, 0x712c9185
mov ecx, 0x68d0c39e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x19b1743a
jmp 0x4038be
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
add eax, 0x3c
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x94], 0x7f8f81f6
jmp 0x4038be
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x44]
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 eax, dword [0x42138c]
mov ecx, dword [0x421388]
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, 0x1e5f799d
mov ecx, 0x27d5c32
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x3fe3ac1
jmp 0x4038be
mov eax, dword [ebp - 0x60]
movzx eax, word [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x94], 0x73e96ea3
jmp 0x4038be
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
sub eax, 0xe7e95396
add eax, 0x18
add eax, 0xe7e95396
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov ax, word [eax + 0x14]
mov word [ebp - 0x2a], ax
mov dword [ebp - 0x94], 0xbb362a8b
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0x4d0d545d
sub edx, 1
sub edx, 0x4d0d545d
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, 0x695cfbf
mov ecx, 0xc8956901
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov ax, word [ebp - 0x2a]
movzx edx, ax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, dword [ebp - 0x60]
movzx ecx, word [ecx]
imul edx, ecx, 0x28
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 [0x42138c]
mov ecx, dword [0x421388]
mov edx, eax
sub edx, 0x2a1a0cc1
sub edx, 1
add edx, 0x2a1a0cc1
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, 0x695cfbf
mov ecx, 0x37a47a39
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x5738da12
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0xd8b13d0e
sub edx, 1
sub edx, 0xd8b13d0e
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, 0x69870c69
mov ecx, 0x807c12a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov ecx, dword [ebp - 0x28]
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], 0x4193c0
call fcn.0040eaf0
add esp, 8
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x21], al
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0x9fd59a04
sub edx, 1
sub edx, 0x9fd59a04
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, 0x69870c69
mov ecx, 0xa8d5ffa7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dl, byte [ebp - 0x21]
mov eax, 0x3d361805
mov ecx, 0x9a080777
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0xf10b565
sub edx, 1
sub edx, 0xf10b565
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, 0xa21946fa
mov ecx, 0x5ea5fb7e
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [ebp - 0x58]
mov dword [eax], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 8]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
sub edx, 0xb4d55ce7
sub edx, 1
add edx, 0xb4d55ce7
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, 0xa21946fa
mov ecx, 0x172bcea
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x68ec86ea
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
sub edx, 0xc723545c
sub edx, 1
add edx, 0xc723545c
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, 0xaa66f96b
mov ecx, 0x2a1671eb
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov edx, dword [ebp - 0x1c]
xor eax, eax
sub eax, ecx
sub edx, eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x20]
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 edx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
xor eax, eax
sub eax, ecx
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, 0xd781b76b
add ecx, eax
add ecx, 0xd781b76b
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.0040c9c0
add esp, 0xc
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
mov edx, eax
sub edx, 0x9e6524ee
sub edx, 1
add edx, 0x9e6524ee
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, 0xaa66f96b
mov ecx, 0xc4be394
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0xac94d2ce
jmp 0x4038be
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]
add esi, 0xf382aac5
add esi, eax
sub esi, 0xf382aac5
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], 0x9a080777
jmp 0x4038be
mov dword [ebp - 0x94], 0xbcc4718b
jmp 0x4038be
mov eax, dword [ebp - 0x60]
mov ax, word [eax]
add ax, 0xd97a
add ax, 1
sub ax, 0xd97a
mov word [ebp - 0x16], ax
mov dword [ebp - 0x94], 0x166d9e86
jmp 0x4038be
mov eax, dword [ebp - 0x60]
mov cx, word [ebp - 0x16]
mov word [eax], cx
mov dword [ebp - 0x94], 0xe9939d90
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
add edx, 0x767886bc
sub edx, 1
sub edx, 0x767886bc
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, 0x781aac07
mov ecx, 0x4b65a160
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
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, 0x781aac07
mov ecx, 0x22f23525
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x3fe3ac1
jmp 0x4038be
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x94], 0x436a7736
jmp 0x4038be
mov ecx, dword [0x42138c]
mov eax, dword [0x421388]
mov edx, ecx
sub edx, 0x1a574935
sub edx, 1
add edx, 0x1a574935
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, 0x89336c38
mov ecx, 0xa5f70f8c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x88]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [0x42138c]
mov ecx, dword [0x421388]
mov edx, eax
sub edx, 0x952c0886
sub edx, 1
add edx, 0x952c0886
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, 0x89336c38
mov ecx, 0x22d97bba
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x94], eax
jmp 0x4038be
mov dword [ebp - 0x94], 0x3f0ac6b6
jmp 0x4038be
mov eax, dword [ebp - 0x10]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x5ab9bf4b
jmp 0x4038be
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0040bb90
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov dword [ebp - 0x94], 0x4dc6295f
jmp 0x4038be
mov dword [ebp - 0x94], 0xde23af54
jmp 0x4038be
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x94], 0x3bbbcaa
jmp 0x4038be
mov eax, dword [ebp - 0x40]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x44]
add ecx, 0x8a9378a3
add ecx, eax
sub ecx, 0x8a9378a3
mov eax, dword [ebp - 0x64]
mov dword [eax], ecx
mov eax, dword [ebp - 0x60]
mov word [eax], 0
mov dword [ebp - 0x94], 0x63d32d24
jmp 0x4038be
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x94], 0x72874a6f
jmp 0x4038be
mov ax, word [ebp - 0x2a]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x94], 0xc8956901
jmp 0x4038be
mov ecx, dword [ebp - 0x28]
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], 0x4193c0
call fcn.0040eaf0
add esp, 8
mov dword [ebp - 0x94], 0x807c12a
jmp 0x4038be
mov eax, dword [ebp - 0x58]
mov dword [eax], 0
mov eax, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x94], 0x5ea5fb7e
jmp 0x4038be
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
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 - 0x58]
mov ecx, dword [ebp - 0x20]
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 edx, dword [eax]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
xor eax, eax
sub eax, ecx
sub edx, eax
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.0040c9c0
add esp, 0xc
mov dword [ebp - 0x94], 0x2a1671eb
jmp 0x4038be
mov eax, dword [ebp - 0x14]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x94], 0xa5f70f8c
jmp 0x401f37