Function at 0x40ae90
Capabilities:
Hide graphical window
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xb0
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [0x4a7584]
xor edx, ebp
mov dword [ebp - 0x10], edx
mov edx, dword [0x4a812c]
mov esi, dword [0x4a8130]
mov edi, edx
sub edi, 0x37a59b35
sub edi, 1
add edi, 0x37a59b35
imul edx, edi
and edx, 1
cmp edx, 0
sete bl
and bl, 1
mov byte [ebp - 0x36], bl
cmp esi, 0xa
setl bl
and bl, 1
mov byte [ebp - 0x35], bl
mov dword [ebp - 0x3c], 0xc1ff5c81
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, eax
sub ecx, 0x82dbed7b
mov dword [ebp - 0x48], eax
je 0x40b367
jmp 0x40af0e
mov eax, dword [ebp - 0x48]
sub eax, 0x85a3d832
je 0x40b83d
jmp 0x40af21
mov eax, dword [ebp - 0x48]
sub eax, 0x8eb6053d
je 0x40bcf2
jmp 0x40af34
mov eax, dword [ebp - 0x48]
sub eax, 0x96b6701d
je 0x40b981
jmp 0x40af47
mov eax, dword [ebp - 0x48]
sub eax, 0xa1ba5868
je 0x40ba99
jmp 0x40af5a
mov eax, dword [ebp - 0x48]
sub eax, 0xa3918451
je 0x40bc11
jmp 0x40af6d
mov eax, dword [ebp - 0x48]
sub eax, 0xada18e6a
je 0x40b8bc
jmp 0x40af80
mov eax, dword [ebp - 0x48]
sub eax, 0xb1fdf47a
je 0x40b5a6
jmp 0x40af93
mov eax, dword [ebp - 0x48]
sub eax, 0xb82ec918
je 0x40bd07
jmp 0x40afa6
mov eax, dword [ebp - 0x48]
sub eax, 0xbb30a6a0
je 0x40b967
jmp 0x40afb9
mov eax, dword [ebp - 0x48]
sub eax, 0xc1532f91
je 0x40b62c
jmp 0x40afcc
mov eax, dword [ebp - 0x48]
sub eax, 0xc1ff5c81
je 0x40b1ac
jmp 0x40afdf
mov eax, dword [ebp - 0x48]
sub eax, 0xc2f028c2
je 0x40bd8e
jmp 0x40aff2
mov eax, dword [ebp - 0x48]
sub eax, 0xc7af8dbe
je 0x40bf42
jmp 0x40b005
mov eax, dword [ebp - 0x48]
sub eax, 0xcc18504f
je 0x40ba99
jmp 0x40b018
mov eax, dword [ebp - 0x48]
sub eax, 0xd81d491b
je 0x40b430
jmp 0x40b02b
mov eax, dword [ebp - 0x48]
sub eax, 0xe0bee6d1
je 0x40b6fa
jmp 0x40b03e
mov eax, dword [ebp - 0x48]
sub eax, 0xeac22aa4
je 0x40b34d
jmp 0x40b051
mov eax, dword [ebp - 0x48]
sub eax, 0xeca7150a
je 0x40b4af
jmp 0x40b064
mov eax, dword [ebp - 0x48]
sub eax, 0xf6da1bbf
je 0x40bed7
jmp 0x40b077
mov eax, dword [ebp - 0x48]
sub eax, 0x3997627
je 0x40bae6
jmp 0x40b08a
mov eax, dword [ebp - 0x48]
sub eax, 0xa52f837
je 0x40bbbc
jmp 0x40b09d
mov eax, dword [ebp - 0x48]
sub eax, 0x13bb7742
je 0x40b9f4
jmp 0x40b0b0
mov eax, dword [ebp - 0x48]
sub eax, 0x27ef30ca
je 0x40bb6f
jmp 0x40b0c3
mov eax, dword [ebp - 0x48]
sub eax, 0x41684c30
je 0x40be9c
jmp 0x40b0d6
mov eax, dword [ebp - 0x48]
sub eax, 0x41f02c9f
je 0x40bc2c
jmp 0x40b0e9
mov eax, dword [ebp - 0x48]
sub eax, 0x43b26a62
je 0x40b1f9
jmp 0x40b0fc
mov eax, dword [ebp - 0x48]
sub eax, 0x4aade269
je 0x40b3b4
jmp 0x40b10f
mov eax, dword [ebp - 0x48]
sub eax, 0x4ad74d0c
je 0x40bda3
jmp 0x40b122
mov eax, dword [ebp - 0x48]
sub eax, 0x57cd8b82
je 0x40b849
jmp 0x40b135
mov eax, dword [ebp - 0x48]
sub eax, 0x57e4f09b
je 0x40bf25
jmp 0x40b148
mov eax, dword [ebp - 0x48]
sub eax, 0x59eb8baf
je 0x40b5c0
jmp 0x40b15b
mov eax, dword [ebp - 0x48]
sub eax, 0x6c4b9e25
je 0x40b6ad
jmp 0x40b16e
mov eax, dword [ebp - 0x48]
sub eax, 0x6c55c6cd
je 0x40b43c
jmp 0x40b181
mov eax, dword [ebp - 0x48]
sub eax, 0x737672db
je 0x40bb63
jmp 0x40b194
mov eax, dword [ebp - 0x48]
sub eax, 0x777d5c89
je 0x40b6a1
jmp 0x40b1a7
jmp 0x40bf4c
mov al, byte [ebp - 0x36]
mov cl, byte [ebp - 0x35]
mov dl, al
xor dl, 0xff
mov ah, cl
xor ah, 0xff
mov ch, 1
xor ch, 1
mov dh, dl
and dh, 0xff
and al, ch
mov bl, ah
and bl, 0xff
and cl, ch
or dh, al
or bl, cl
xor dh, bl
or dl, ah
xor dl, 0xff
or ch, 1
and dl, ch
or dh, dl
test dh, 1
mov esi, 0x43b26a62
mov edi, 0x41f02c9f
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
xor eax, eax
lea ecx, str.Sample_Window_Class
push eax
mov edx, esp
mov dword [ebp - 0x34], edx
push eax
mov edx, esp
push eax
mov esi, esp
sub esp, 0x28
mov edi, esp
mov dword [ebp - 0x30], edi
sub esp, 0x28
mov edi, esp
mov dword [ebp - 0x2c], edi
push eax
mov edi, esp
mov dword [ebp - 0x28], edi
sub esp, 0x1c
mov edi, esp
mov dword [ebp - 0x24], edi
sub esp, 0x104
mov edi, esp
mov dword [ebp - 0x20], edi
sub esp, 8
mov edi, esp
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 0x34]
mov dword [edi], 0
mov edi, dword [ebp - 0x40]
mov dword [edx], edi
mov edx, dword [ebp - 0x44]
mov dword [esi], edx
mov esi, dword [ebp - 0x30]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x28
mov dword [ebp - 0x4c], eax
call fcn.0048a7f0
add esp, 0xc
mov eax, dword [ebp - 0x2c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x28
call fcn.0048ad70
add esp, 0xc
mov eax, dword [ebp - 0x2c]
lea ecx, [0x40a580]
mov dword [eax + 4], ecx
sub esp, 4
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp - 0x2c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.USER32.dll_RegisterClassW]
cmp ax, 0
setne bl
and bl, 1
mov byte [ebp - 0x17], bl
mov ecx, dword [0x4a812c]
mov edx, dword [0x4a8130]
mov esi, ecx
sub esi, 0xc2630b5
sub esi, 1
add esi, 0xc2630b5
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov ch, al
and ch, 0
and bl, cl
mov dl, ah
and dl, 0
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or ch, al
test ch, 1
mov esi, 0xeac22aa4
mov edi, 0x41f02c9f
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov al, byte [ebp - 0x17]
test al, 1
mov ecx, 0x6c55c6cd
mov edx, 0x82dbed7b
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
add edx, 0xf7ff20db
sub edx, 1
sub edx, 0xf7ff20db
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov ecx, 0x4aade269
mov edx, 0x8eb6053d
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
sub edx, 0xcc35b3b8
sub edx, 1
add edx, 0xcc35b3b8
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov ch, al
and ch, 0
and bl, cl
mov dl, ah
and dl, 0
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or ch, al
test ch, 1
mov esi, 0xd81d491b
mov edi, 0x8eb6053d
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov dword [ebp - 0x3c], 0x27ef30ca
jmp 0x40bf4c
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
sub edx, 0xa4afc71
sub edx, 1
add edx, 0xa4afc71
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov ch, al
and ch, 0xff
and bl, cl
mov dl, ah
and dl, 0xff
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or ch, al
test ch, 1
mov esi, 0xeca7150a
mov edi, 0xb82ec918
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
xor eax, eax
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0x30]
sub esp, 0x30
mov dword [esp], 0
mov dword [esp + 4], edx
lea edx, str.Window
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xcf0000
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x18], 0x80000000
mov dword [esp + 0x1c], 0x80000000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 0
mov dword [ebp - 0x50], eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
sete bl
and bl, 1
mov byte [ebp - 0x16], bl
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
add edx, 0xce2b5dcc
sub edx, 1
sub edx, 0xce2b5dcc
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov ch, al
and ch, 0
and bl, cl
mov dl, ah
and dl, 0
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or ch, al
test ch, 1
mov esi, 0xb1fdf47a
mov edi, 0xb82ec918
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov al, byte [ebp - 0x16]
test al, 1
mov ecx, 0x59eb8baf
mov edx, 0x6c4b9e25
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
xor eax, eax
mov ecx, dword [0x4a812c]
mov edx, dword [0x4a8130]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov ch, al
and ch, 0xff
and bl, cl
mov dl, ah
and dl, 0xff
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or ch, al
test ch, 1
mov esi, 0xc1532f91
mov edi, 0xc2f028c2
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
xor eax, eax
mov ecx, dword [ebp - 0x34]
mov dword [ecx], 0
mov ecx, dword [0x4a812c]
mov edx, dword [0x4a8130]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov ch, al
and ch, 0
and bl, cl
mov dl, ah
and dl, 0
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or ch, al
test ch, 1
mov esi, 0x777d5c89
mov edi, 0xc2f028c2
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov dword [ebp - 0x3c], 0x27ef30ca
jmp 0x40bf4c
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
add edx, 0x45d59b74
sub edx, 1
sub edx, 0x45d59b74
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov ecx, 0xe0bee6d1
mov edx, 0x4ad74d0c
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 1
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], ecx
mov dword [ebp - 0x54], eax
call dword [sym.imp.USER32.dll_UpdateWindow]
xor ecx, ecx
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], ecx
call dword [sym.imp.USER32.dll_ShowWindow]
xor ecx, ecx
mov edx, dword [ebp - 0x24]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x1c
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], ecx
call fcn.0048ad70
add esp, 0xc
mov eax, dword [ebp - 0x20]
sub esp, 4
mov dword [esp], 0
mov dword [ebp - 0x68], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub esp, 0xc
mov dword [esp], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x104
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [esp], edx
lea edx, [0x405e30]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [ebp - 0x6c], eax
call fcn.0040bf60
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
call fcn.0040c200
xor ecx, ecx
mov edx, dword [0x4a812c]
mov esi, dword [0x4a8130]
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 0xff
mov cl, bl
xor cl, 0xff
mov ch, 1
xor ch, 0
mov dl, bh
and dl, 0
and ah, ch
mov dh, cl
and dh, 0
and bl, ch
or dl, ah
or dh, bl
xor dl, dh
or bh, cl
xor bh, 0xff
or ch, 0
and bh, ch
or dl, bh
test dl, 1
mov esi, 0x85a3d832
mov edi, 0x4ad74d0c
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov dword [ebp - 0x3c], 0x57cd8b82
jmp 0x40bf4c
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
sub edx, 0xa2741da6
sub edx, 1
add edx, 0xa2741da6
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov ch, al
and ch, 0
and bl, cl
mov dl, ah
and dl, 0
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or ch, al
test ch, 1
mov esi, 0xada18e6a
mov edi, 0x41684c30
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
xor eax, eax
mov ecx, dword [ebp - 0x24]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [ebp - 0x70], eax
call dword [sym.imp.USER32.dll_GetMessageW]
cmp eax, 0
setne dl
and dl, 1
mov byte [ebp - 0x15], dl
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov esi, eax
sub esi, 0xad920455
sub esi, 1
add esi, 0xad920455
imul eax, esi
and eax, 1
cmp eax, 0
sete dl
cmp ecx, 0xa
setl dh
mov bl, dl
xor bl, 0xff
mov bh, dh
xor bh, 0xff
mov al, 1
xor al, 1
mov ah, bl
and ah, 0xff
and dl, al
mov cl, bh
and cl, 0xff
and dh, al
or ah, dl
or cl, dh
xor ah, cl
or bl, bh
xor bl, 0xff
or al, 1
and bl, al
or ah, bl
test ah, 1
mov esi, 0xbb30a6a0
mov edi, 0x41684c30
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov al, byte [ebp - 0x15]
test al, 1
mov ecx, 0x96b6701d
mov edx, 0xcc18504f
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
sub edx, 0x28259535
sub edx, 1
add edx, 0x28259535
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov ch, al
and ch, 0
and bl, cl
mov dl, ah
and dl, 0
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or ch, al
test ch, 1
mov esi, 0x13bb7742
mov edi, 0xf6da1bbf
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov eax, dword [ebp - 0x24]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.USER32.dll_TranslateMessage]
mov ecx, dword [ebp - 0x24]
sub esp, 4
mov dword [esp], ecx
mov dword [ebp - 0x74], eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
xor ecx, ecx
sub esp, 4
mov dword [esp], 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], ecx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
add edx, 0x924ce7dd
sub edx, 1
sub edx, 0x924ce7dd
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov ecx, 0x3997627
mov edx, 0x57e4f09b
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
mov ecx, dword [ebp - 0x1c]
call fcn.0040c410
xor eax, eax
mov ecx, dword [0x4a812c]
mov edx, dword [0x4a8130]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
xor al, 0xff
mov ah, bh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov ch, al
and ch, 0xff
and bl, cl
mov dl, ah
and dl, 0xff
and bh, cl
or ch, bl
or dl, bh
xor ch, dl
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or ch, al
test ch, 1
mov esi, 0x737672db
mov edi, 0x57e4f09b
cmovne edi, esi
mov dword [ebp - 0x3c], edi
jmp 0x40bf4c
mov dword [ebp - 0x3c], 0x27ef30ca
jmp 0x40bf4c
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
add edx, 0x2ac71755
sub edx, 1
sub edx, 0x2ac71755
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov ecx, 0xa52f837
mov edx, 0xc7af8dbe
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [0x4a812c]
mov ecx, dword [0x4a8130]
mov edx, eax
add edx, 0x721c3e0
sub edx, 1
sub edx, 0x721c3e0
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov ecx, 0xa3918451
mov edx, 0xc7af8dbe
cmovne edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x40bf4c
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
mov dword [ebp - 0x80], eax
call fcn.00487d26
mov eax, dword [ebp - 0x80]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
lea ecx, str.Sample_Window_Class
push eax
mov edx, esp
push eax
mov esi, esp
push eax
mov edi, esp
sub esp, 0x28
mov ebx, esp
sub esp, 0x28
mov dword [ebp - 0x84], eax
mov eax, esp
mov dword [edx], 0
mov edx, dword [ebp - 0x40]
mov dword [esi], edx
mov esi, dword [ebp - 0x44]
mov dword [edi], esi
mov edi, ebx
sub esp, 0xc
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x28
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x8c], eax
call fcn.0048a7f0
add esp, 0xc
mov eax, dword [ebp - 0x8c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x28
call fcn.0048ad70
add esp, 0xc
lea eax, [0x40a580]
mov ecx, dword [ebp - 0x8c]
mov dword [ecx + 4], eax
sub esp, 4
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov ecx, dword [ebp - 0x8c]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x88]
mov dword [ecx + 0x24], eax
sub esp, 4
mov dword [esp], ecx
call dword [sym.imp.USER32.dll_RegisterClassW]
mov dword [ebp - 0x3c], 0x43b26a62
jmp 0x40bf4c
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
mov dword [ebp - 0x3c], 0x4aade269
jmp 0x40bf4c
xor eax, eax
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [ecx + 0x10]
mov edx, dword [ebp - 0x30]
sub esp, 0x30
mov dword [esp], 0
mov dword [esp + 4], edx
lea edx, str.Window
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0xcf0000
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0x14], 0x80000000
mov dword [esp + 0x18], 0x80000000
mov dword [esp + 0x1c], 0x80000000
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 0
mov dword [ebp - 0x90], eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ecx, dword [ebp - 0x28]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], 0xeca7150a
jmp 0x40bf4c
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
mov dword [ebp - 0x3c], 0xc1532f91
jmp 0x40bf4c
mov eax, dword [ebp - 0x28]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 1
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [ebp - 0x28]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], ecx
mov dword [ebp - 0x94], eax
call dword [sym.imp.USER32.dll_UpdateWindow]
xor ecx, ecx
mov edx, dword [ebp - 0x28]
mov edx, dword [edx]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x9c], ecx
call dword [sym.imp.USER32.dll_ShowWindow]
xor ecx, ecx
mov edx, dword [ebp - 0x24]
sub esp, 0xc
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x1c
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0xa4], ecx
call fcn.0048ad70
add esp, 0xc
mov eax, dword [ebp - 0x20]
sub esp, 4
mov dword [esp], 0
mov dword [ebp - 0xa8], eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
sub esp, 0xc
mov dword [esp], eax
mov eax, dword [ebp - 0xa8]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x104
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub esp, 0xc
mov dword [esp], edx
lea edx, [0x405e30]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [ebp - 0xac], eax
call fcn.0040bf60
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
call fcn.0040c200
mov dword [ebp - 0x3c], 0xe0bee6d1
jmp 0x40bf4c
xor eax, eax
mov ecx, dword [ebp - 0x24]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [ebp - 0xb0], eax
call dword [sym.imp.USER32.dll_GetMessageW]
mov dword [ebp - 0x3c], 0xada18e6a
jmp 0x40bf4c
mov eax, dword [ebp - 0x24]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.USER32.dll_TranslateMessage]
mov ecx, dword [ebp - 0x24]
sub esp, 4
mov dword [esp], ecx
mov dword [ebp - 0xb4], eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
xor ecx, ecx
sub esp, 4
mov dword [esp], 0
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xbc], ecx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov eax, dword [ebp - 0x34]
mov dword [eax], 0
mov ecx, dword [ebp - 0x1c]
call fcn.0040c410
mov dword [ebp - 0x3c], 0x3997627
jmp 0x40bf4c
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], 0xa52f837
jmp 0x40aef5